You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(115) |
Aug
(120) |
Sep
(137) |
Oct
(170) |
Nov
(461) |
Dec
(263) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
(120) |
Feb
(74) |
Mar
(35) |
Apr
(74) |
May
(245) |
Jun
(356) |
Jul
(240) |
Aug
(115) |
Sep
(78) |
Oct
(225) |
Nov
(98) |
Dec
(271) |
| 2009 |
Jan
(132) |
Feb
(84) |
Mar
(74) |
Apr
(56) |
May
(90) |
Jun
(79) |
Jul
(83) |
Aug
(296) |
Sep
(214) |
Oct
(76) |
Nov
(82) |
Dec
(66) |
| 2010 |
Jan
(46) |
Feb
(58) |
Mar
(51) |
Apr
(77) |
May
(58) |
Jun
(126) |
Jul
(128) |
Aug
(64) |
Sep
(50) |
Oct
(44) |
Nov
(48) |
Dec
(54) |
| 2011 |
Jan
(68) |
Feb
(52) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <jd...@us...> - 2008-05-30 20:06:01
|
Revision: 5336
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5336&view=rev
Author: jdh2358
Date: 2008-05-30 13:05:57 -0700 (Fri, 30 May 2008)
Log Message:
-----------
faq updates
Modified Paths:
--------------
trunk/matplotlib/doc/faq/index.rst
trunk/matplotlib/doc/faq/installing_faq.rst
trunk/matplotlib/doc/faq/troubleshooting_faq.rst
Added Paths:
-----------
trunk/matplotlib/doc/faq/howto_faq.rst
Removed Paths:
-------------
trunk/matplotlib/doc/faq/plotting_faq.rst
Copied: trunk/matplotlib/doc/faq/howto_faq.rst (from rev 5335, trunk/matplotlib/doc/faq/plotting_faq.rst)
===================================================================
--- trunk/matplotlib/doc/faq/howto_faq.rst (rev 0)
+++ trunk/matplotlib/doc/faq/howto_faq.rst 2008-05-30 20:05:57 UTC (rev 5336)
@@ -0,0 +1,61 @@
+*****
+HOWTO
+*****
+
+How do I use matplotlib in a web application server?
+====================================================
+
+Many users report initial problems trying to use maptlotlib in web
+application servers, because by default matplotlib ships configured to
+work with a graphical user interface which may require an X11
+connection. Since many barebones application servers do not have X11
+enabled, you may get errors if you don't configure matplotlib for use
+in these environments. Most importantly, you need to decide what
+kinds of images you want to generate (PNG, PDF, SVG) and configure the
+appropriate default backend. For 99% of users, this will be the Agg
+backend, which uses the C++ `antigrain <http://antigrain.com`_
+rendering engine to make nice PNGs. The Agg backend is also
+configured to recognize requests to generate other output formats
+(PDF, PS, EPS, SVG). The easiest way to configure matplotlib to use
+Agg is to call::
+
+ # do this before importing pylab or pyplot
+ import matplotlib
+ matplotlib.use('Agg')
+ import matplotlib.pyplot as plt
+
+Alternatively, you can avoid pylab/pyplot altogeher, which will give
+you a little more control, by calling the API directly as shown in
+`agg_oo.py <http://matplotlib.sf.net/examples/api/agg_oo.py`_ .
+
+You can either generate hardcopy on the filesystem by calling savefig::
+
+ # do this before importing pylab or pyplot
+ import matplotlib
+ matplotlib.use('Agg')
+ import matplotlib.pyplot as plt
+ fig = plt.figure()
+ ax = fig.add_subplot(111)
+ ax.plot([1,2,3])
+ fig.savefig('test.png')
+
+or by saving to a file handle::
+
+ import sys
+ fig.savefig(sys.stdout)
+
+
+How do I use matplotlib with apache?
+------------------------------------
+
+TODO
+
+How do I use matplotlib with dhango?
+------------------------------------
+
+TODO
+
+How do I use matplotlib with zope?
+----------------------------------
+
+TODO
\ No newline at end of file
Modified: trunk/matplotlib/doc/faq/index.rst
===================================================================
--- trunk/matplotlib/doc/faq/index.rst 2008-05-30 19:39:37 UTC (rev 5335)
+++ trunk/matplotlib/doc/faq/index.rst 2008-05-30 20:05:57 UTC (rev 5336)
@@ -13,5 +13,5 @@
installing_faq.rst
troubleshooting_faq.rst
- plotting_faq.rst
+ howto_faq.rst
Modified: trunk/matplotlib/doc/faq/installing_faq.rst
===================================================================
--- trunk/matplotlib/doc/faq/installing_faq.rst 2008-05-30 19:39:37 UTC (rev 5335)
+++ trunk/matplotlib/doc/faq/installing_faq.rst 2008-05-30 20:05:57 UTC (rev 5336)
@@ -21,3 +21,9 @@
* delete ``site-packages/matplotlib`` directory in the Python
installation. The location of ``site-packages`` is
platform-specific.
+ * you may also want to clear some of the cache data that
+ matplotlib stores in your ``.matplotlib`` directory. You can
+ find the location of this directory by doing::
+
+ import matplotlib
+ print matplotlib.get_configdir()
\ No newline at end of file
Deleted: trunk/matplotlib/doc/faq/plotting_faq.rst
===================================================================
--- trunk/matplotlib/doc/faq/plotting_faq.rst 2008-05-30 19:39:37 UTC (rev 5335)
+++ trunk/matplotlib/doc/faq/plotting_faq.rst 2008-05-30 20:05:57 UTC (rev 5336)
@@ -1,5 +0,0 @@
-************
-Plotting FAQ
-************
-
-
Modified: trunk/matplotlib/doc/faq/troubleshooting_faq.rst
===================================================================
--- trunk/matplotlib/doc/faq/troubleshooting_faq.rst 2008-05-30 19:39:37 UTC (rev 5335)
+++ trunk/matplotlib/doc/faq/troubleshooting_faq.rst 2008-05-30 20:05:57 UTC (rev 5336)
@@ -12,15 +12,20 @@
your problem.
If not, please provide the following information in your e-mail to the
-mailing list:
+`mailing list
+<http://lists.sourceforge.net/mailman/listinfo/matplotlib-users>`_:
- * your operating system
- * matplotlib version
+ * your operating system; on Linux/UNIX post the output of ``uname -a``
+ * matplotlib version : ``import matplotlib; print matplotlib.__version__``
* where you obtained matplotlib (e.g. your Linux distribution's
packages or the matplotlib Sourceforge site)
* any customizations to your ``matplotlibrc`` file
- * if the problem is reproducible, please try to provide a minimal,
+ * if the problem is reproducible, please try to provide a *minimal*,
standalone Python script that demonstrates the problem
+ * you can get very helpful debugging output from matlotlib by
+ running your script with a ``verbose-helpful`` or
+ ``--verbose-debug`` flags and posting the verbose output the
+ lists.
If you compiled matplotlib yourself, please also provide
@@ -34,6 +39,8 @@
platform that are useful for the matplotlib developers to diagnose
your problem.
+ * your compiler version -- eg, ``gcc --version``
+
Including this information in your first e-mail to the mailing list
will save a lot of time.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-05-30 19:39:38
|
Revision: 5335
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5335&view=rev
Author: jdh2358
Date: 2008-05-30 12:39:37 -0700 (Fri, 30 May 2008)
Log Message:
-----------
Merged revisions 5334 via svnmerge from
https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint
........
r5334 | jdh2358 | 2008-05-30 12:38:58 -0700 (Fri, 30 May 2008) | 1 line
removed debug print statement
........
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/texmanager.py
Property Changed:
----------------
trunk/matplotlib/
Property changes on: trunk/matplotlib
___________________________________________________________________
Name: svnmerge-integrated
- /branches/v0_91_maint:1-5330
+ /branches/v0_91_maint:1-5334
Modified: trunk/matplotlib/lib/matplotlib/texmanager.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/texmanager.py 2008-05-30 19:38:58 UTC (rev 5334)
+++ trunk/matplotlib/lib/matplotlib/texmanager.py 2008-05-30 19:39:37 UTC (rev 5335)
@@ -370,7 +370,7 @@
hack = rcParams['text.dvipnghack']
else:
hack = self._dvipng_hack_alpha
- print 'using hack', hack
+
if hack:
# hack the alpha channel
# dvipng assumed a constant background, whereas we want to
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-05-30 19:38:59
|
Revision: 5334
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5334&view=rev
Author: jdh2358
Date: 2008-05-30 12:38:58 -0700 (Fri, 30 May 2008)
Log Message:
-----------
removed debug print statement
Modified Paths:
--------------
branches/v0_91_maint/lib/matplotlib/texmanager.py
Modified: branches/v0_91_maint/lib/matplotlib/texmanager.py
===================================================================
--- branches/v0_91_maint/lib/matplotlib/texmanager.py 2008-05-30 19:38:42 UTC (rev 5333)
+++ branches/v0_91_maint/lib/matplotlib/texmanager.py 2008-05-30 19:38:58 UTC (rev 5334)
@@ -338,7 +338,7 @@
hack = rcParams['text.dvipnghack']
else:
hack = self._dvipng_hack_alpha
- print 'using hack', hack
+
if hack:
# hack the alpha channel
# dvipng assumed a constant background, whereas we want to
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-05-30 19:38:43
|
Revision: 5333
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5333&view=rev
Author: jdh2358
Date: 2008-05-30 12:38:42 -0700 (Fri, 30 May 2008)
Log Message:
-----------
Merged revisions 5312-5313,5329 via svnmerge from
https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint
........
r5312 | cmoad | 2008-05-29 15:59:43 -0700 (Thu, 29 May 2008) | 1 line
tagging new version
........
r5313 | cmoad | 2008-05-29 20:07:39 -0700 (Thu, 29 May 2008) | 1 line
minor rev bump
........
r5329 | jdh2358 | 2008-05-30 12:21:56 -0700 (Fri, 30 May 2008) | 1 line
added support for None for dvipng and removed the sqrt in the hack which I think is wrong
........
Modified Paths:
--------------
trunk/matplotlib/MIGRATION.txt
trunk/matplotlib/lib/matplotlib/rcsetup.py
trunk/matplotlib/lib/matplotlib/texmanager.py
trunk/matplotlib/matplotlibrc.template
Property Changed:
----------------
trunk/matplotlib/
Property changes on: trunk/matplotlib
___________________________________________________________________
Name: svnmerge-integrated
- /branches/v0_91_maint:1-5307
+ /branches/v0_91_maint:1-5330
Modified: trunk/matplotlib/MIGRATION.txt
===================================================================
--- trunk/matplotlib/MIGRATION.txt 2008-05-30 19:29:09 UTC (rev 5332)
+++ trunk/matplotlib/MIGRATION.txt 2008-05-30 19:38:42 UTC (rev 5333)
@@ -31,7 +31,7 @@
If you already have a working copy of the trunk, your next "svn up" will
include the latest transforms changes.
-Before installing, make sure you completely remove the old matplotlib
+IMPORTANT: Before installing, make sure you completely remove the old matplotlib
build and install directories, eg:
> cd matplotlib
Modified: trunk/matplotlib/lib/matplotlib/rcsetup.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/rcsetup.py 2008-05-30 19:29:09 UTC (rev 5332)
+++ trunk/matplotlib/lib/matplotlib/rcsetup.py 2008-05-30 19:38:42 UTC (rev 5333)
@@ -43,6 +43,16 @@
else:
raise ValueError('Could not convert "%s" to boolean' % b)
+def validate_bool_maybe_none(b):
+ 'Convert b to a boolean or raise'
+ if type(b) is str:
+ b = b.lower()
+ if b=='none': return None
+ if b in ('t', 'y', 'yes', 'on', 'true', '1', 1, True): return True
+ elif b in ('f', 'n', 'no', 'off', 'false', '0', 0, False): return False
+ else:
+ raise ValueError('Could not convert "%s" to boolean' % b)
+
def validate_float(s):
'convert s to float or raise'
try: return float(s)
@@ -338,7 +348,7 @@
'text.usetex' : [False, validate_bool],
'text.latex.unicode' : [False, validate_bool],
'text.latex.preamble' : [[''], validate_stringlist],
- 'text.dvipnghack' : [False, validate_bool],
+ 'text.dvipnghack' : [None, validate_bool_maybe_none],
'text.fontstyle' : ['normal', str],
'text.fontangle' : ['normal', str],
'text.fontvariant' : ['normal', str],
Modified: trunk/matplotlib/lib/matplotlib/texmanager.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/texmanager.py 2008-05-30 19:29:09 UTC (rev 5332)
+++ trunk/matplotlib/lib/matplotlib/texmanager.py 2008-05-30 19:38:42 UTC (rev 5333)
@@ -366,7 +366,12 @@
pngfile = self.make_png(tex, fontsize, dpi)
X = readpng(os.path.join(self.texcache, pngfile))
- if self._dvipng_hack_alpha or rcParams['text.dvipnghack']:
+ if rcParams['text.dvipnghack'] is not None:
+ hack = rcParams['text.dvipnghack']
+ else:
+ hack = self._dvipng_hack_alpha
+ print 'using hack', hack
+ if hack:
# hack the alpha channel
# dvipng assumed a constant background, whereas we want to
# overlay these rasters with antialiasing over arbitrary
@@ -388,7 +393,8 @@
#
# Since the foreground is black (0) and the background is
# white (1) this reduces to red = 1-alpha or alpha = 1-red
- alpha = np.sqrt(1-X[:,:,0])
+ #alpha = npy.sqrt(1-X[:,:,0]) # should this be sqrt here?
+ alpha = 1-X[:,:,0]
else:
alpha = X[:,:,-1]
Modified: trunk/matplotlib/matplotlibrc.template
===================================================================
--- trunk/matplotlib/matplotlibrc.template 2008-05-30 19:29:09 UTC (rev 5332)
+++ trunk/matplotlib/matplotlibrc.template 2008-05-30 19:38:42 UTC (rev 5333)
@@ -147,9 +147,14 @@
# beware of package collisions: color, geometry, graphicx,
# type1cm, textcomp. Adobe Postscript (PSSNFS) font packages
# may also be loaded, depending on your font settings
-#text.dvipnghack : False # some versions of dvipng don't handle
- # alpha channel properly. Use True to correct and flush
- # ~/.matplotlib/tex.cache before testing
+
+#text.dvipnghack : None # some versions of dvipng don't handle alpha
+ # channel properly. Use True to correct
+ # and flush ~/.matplotlib/tex.cache
+ # before testing and False to force
+ # correction off. None will try and
+ # guess based on your dvipng version
+
#text.markup : 'plain' # Affects how text, such as titles and labels, are
# interpreted by default.
# 'plain': As plain, unformatted text
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2008-05-30 19:29:13
|
Revision: 5332
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5332&view=rev
Author: mdboom
Date: 2008-05-30 12:29:09 -0700 (Fri, 30 May 2008)
Log Message:
-----------
Correcting typo
Modified Paths:
--------------
trunk/matplotlib/doc/users/mathtext.rst
Modified: trunk/matplotlib/doc/users/mathtext.rst
===================================================================
--- trunk/matplotlib/doc/users/mathtext.rst 2008-05-30 19:28:56 UTC (rev 5331)
+++ trunk/matplotlib/doc/users/mathtext.rst 2008-05-30 19:29:09 UTC (rev 5332)
@@ -202,7 +202,7 @@
-------
You can also use a large number of the TeX symbols, as in ``\infty``,
-``\leftarrow``, ``\sum``, ``\int``; see :class:`matplotlib.mathtext` for a
+``\leftarrow``, ``\sum``, ``\int``; see :mod:`matplotlib.mathtext` for a
complete list.
If a particular symbol does not have a name (as is true of many of the
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2008-05-30 19:28:57
|
Revision: 5331
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5331&view=rev
Author: mdboom
Date: 2008-05-30 12:28:56 -0700 (Fri, 30 May 2008)
Log Message:
-----------
Adding some FAQs
Modified Paths:
--------------
trunk/matplotlib/doc/faq/index.rst
trunk/matplotlib/doc/faq/installing_faq.rst
Added Paths:
-----------
trunk/matplotlib/doc/faq/troubleshooting_faq.rst
Modified: trunk/matplotlib/doc/faq/index.rst
===================================================================
--- trunk/matplotlib/doc/faq/index.rst 2008-05-30 19:24:37 UTC (rev 5330)
+++ trunk/matplotlib/doc/faq/index.rst 2008-05-30 19:28:56 UTC (rev 5331)
@@ -12,5 +12,6 @@
.. toctree::
installing_faq.rst
+ troubleshooting_faq.rst
plotting_faq.rst
Modified: trunk/matplotlib/doc/faq/installing_faq.rst
===================================================================
--- trunk/matplotlib/doc/faq/installing_faq.rst 2008-05-30 19:24:37 UTC (rev 5330)
+++ trunk/matplotlib/doc/faq/installing_faq.rst 2008-05-30 19:28:56 UTC (rev 5331)
@@ -1,7 +1,23 @@
-****************
-Installation FAQ
-****************
+==================
+ Installation FAQ
+==================
+How do I report a compilation problem?
+======================================
+See :ref:`reporting_problems`.
+How do I cleanly rebuild and reinstall everything?
+==================================================
+Unfortunately::
+
+ python setup.py clean
+
+does not properly clean the build directory, and does nothing to the
+install directory. To cleanly rebuild:
+
+ * delete the ``build`` directory in the source tree
+ * delete ``site-packages/matplotlib`` directory in the Python
+ installation. The location of ``site-packages`` is
+ platform-specific.
Added: trunk/matplotlib/doc/faq/troubleshooting_faq.rst
===================================================================
--- trunk/matplotlib/doc/faq/troubleshooting_faq.rst (rev 0)
+++ trunk/matplotlib/doc/faq/troubleshooting_faq.rst 2008-05-30 19:28:56 UTC (rev 5331)
@@ -0,0 +1,45 @@
+===================
+Troubleshooting FAQ
+===================
+
+.. _reporting_problems:
+
+How do I report a problem?
+==========================
+
+If you are having a problem with matplotlib, search the mailing
+lists first: There's a good chance someone else has already run into
+your problem.
+
+If not, please provide the following information in your e-mail to the
+mailing list:
+
+ * your operating system
+ * matplotlib version
+ * where you obtained matplotlib (e.g. your Linux distribution's
+ packages or the matplotlib Sourceforge site)
+ * any customizations to your ``matplotlibrc`` file
+ * if the problem is reproducible, please try to provide a minimal,
+ standalone Python script that demonstrates the problem
+
+If you compiled matplotlib yourself, please also provide
+
+ * any changes you have made to ``setup.py`` or ``setupext.py``
+ * the output of::
+
+ rm -rf build
+ python setup.py build
+
+ The beginning of the build output contains lots of details about your
+ platform that are useful for the matplotlib developers to diagnose
+ your problem.
+
+Including this information in your first e-mail to the mailing list
+will save a lot of time.
+
+You will likely get a faster response writing to the mailing list than
+filing a bug in the bug tracker. Most developers check the bug
+tracker only periodically. If your problem has been determined to be
+a bug and can not be quickly solved, you may be asked to file a bug in
+the tracker so the issue doesn't get lost.
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-05-30 19:24:46
|
Revision: 5330
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5330&view=rev
Author: jdh2358
Date: 2008-05-30 12:24:37 -0700 (Fri, 30 May 2008)
Log Message:
-----------
fixed some finance mod bugs
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/finance.py
Modified: trunk/matplotlib/lib/matplotlib/finance.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/finance.py 2008-05-30 19:21:56 UTC (rev 5329)
+++ trunk/matplotlib/lib/matplotlib/finance.py 2008-05-30 19:24:37 UTC (rev 5330)
@@ -335,7 +335,7 @@
scale = ax.figure.dpi * (1.0/72.0)
- tickTransform = Affine2D().scaled(scale, 0.0)
+ tickTransform = Affine2D().scale(scale, 0.0)
r,g,b = colorConverter.to_rgb(colorup)
colorup = r,g,b,1
@@ -411,24 +411,14 @@
# note this code assumes if any value open, close, low, high is
# missing they all are missing
- right = width/2.0
- left = -width/2.0
+
+ delta = width/2.
+ barVerts = [ ( (i-delta, open), (i-delta, close), (i+delta, close), (i+delta, open) ) for i, open, close in zip(xrange(len(opens)), opens, closes) if open != -1 and close!=-1 ]
- barVerts = [ ( (left, 0), (left, close-open), (right, close-open), (right, 0) ) for open, close in zip(opens, closes) if open != -1 and close!=-1 ]
-
rangeSegments = [ ((i, low), (i, high)) for i, low, high in zip(xrange(len(lows)), lows, highs) if low != -1 ]
- offsetsBars = [ (i, open) for i,open in zip(xrange(len(opens)), opens) if open != -1 ]
-
- sx = ax.figure.dpi * (1.0/72.0) # scale for points
- sy = (ax.bbox.ur().y() - ax.bbox.ll().y()) / (ax.viewLim.ur().y() - ax.viewLim.ll().y())
-
- barTransform = Affine2D().scaled(sx,sy)
-
-
-
r,g,b = colorConverter.to_rgb(colorup)
colorup = r,g,b,alpha
r,g,b = colorConverter.to_rgb(colordown)
@@ -440,8 +430,6 @@
assert(len(barVerts)==len(rangeSegments))
- assert(len(rangeSegments)==len(offsetsBars))
- assert(len(offsetsBars)==len(colors))
useAA = 0, # use tuple here
lw = 0.5, # and here
@@ -457,19 +445,13 @@
edgecolors = ( (0,0,0,1), ),
antialiaseds = useAA,
linewidths = lw,
- offsets = offsetsBars,
- transOffset = ax.transData,
)
- barCollection.set_transform(barTransform)
-
-
-
- minpy, maxx = (0, len(rangeSegments))
+ minx, maxx = 0, len(rangeSegments)
miny = min([low for low in lows if low !=-1])
maxy = max([high for high in highs if high != -1])
- corners = (minpy, miny), (maxx, maxy)
+ corners = (minx, miny), (maxx, maxy)
ax.update_datalim(corners)
ax.autoscale_view()
@@ -504,38 +486,17 @@
}
colors = [colord[open<close] for open, close in zip(opens, closes) if open!=-1 and close !=-1]
- right = width/2.0
- left = -width/2.0
+ delta = width/2.
+ bars = [ ( (i-delta, 0), (i-delta, v), (i+delta, v), (i+delta, 0)) for i, v in enumerate(volumes) if v != -1 ]
-
- bars = [ ( (left, 0), (left, v), (right, v), (right, 0)) for v in volumes if v != -1 ]
-
- sx = ax.figure.dpi * (1.0/72.0) # scale for points
- sy = (ax.bbox.ur().y() - ax.bbox.ll().y()) / (ax.viewLim.ur().y() - ax.viewLim.ll().y())
-
- barTransform = Affine2D().scaled(sx,sy)
-
- offsetsBars = [ (i, 0) for i,v in enumerate(volumes) if v != -1 ]
-
barCollection = PolyCollection(bars,
facecolors = colors,
edgecolors = ( (0,0,0,1), ),
antialiaseds = (0,),
linewidths = (0.5,),
- offsets = offsetsBars,
- transOffset = ax.transData,
)
- barCollection.set_transform(barTransform)
-
-
-
-
-
- minpy, maxx = (0, len(offsetsBars))
- miny = 0
- maxy = max([v for v in volumes if v!=-1])
- corners = (minpy, miny), (maxx, maxy)
+ corners = (0, 0), (len(bars), max(volumes))
ax.update_datalim(corners)
ax.autoscale_view()
@@ -601,9 +562,9 @@
bars = [ ( (left, 0), (left, volume), (right, volume), (right, 0)) for d, open, close, high, low, volume in quotes]
sx = ax.figure.dpi * (1.0/72.0) # scale for points
- sy = (ax.bbox.ur().y() - ax.bbox.ll().y()) / (ax.viewLim.ur().y() - ax.viewLim.ll().y())
+ sy = ax.bbox.height / ax.viewLim.height
- barTransform = Affine2D().scaled(sx,sy)
+ barTransform = Affine2D().scale(sx,sy)
dates = [d for d, open, close, high, low, volume in quotes]
offsetsBars = [(d, 0) for d in dates]
@@ -661,9 +622,9 @@
bars = [ ( (left, 0), (left, v), (right, v), (right, 0)) for v in vals if v != -1 ]
sx = ax.figure.dpi * (1.0/72.0) # scale for points
- sy = (ax.bbox.ur().y() - ax.bbox.ll().y()) / (ax.viewLim.ur().y() - ax.viewLim.ll().y())
+ sy = ax.bbox.height / ax.viewLim.height
- barTransform = Affine2D().scaled(sx,sy)
+ barTransform = Affine2D().scale(sx,sy)
offsetsBars = [ (i, 0) for i,v in enumerate(vals) if v != -1 ]
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-05-30 19:22:12
|
Revision: 5329
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5329&view=rev
Author: jdh2358
Date: 2008-05-30 12:21:56 -0700 (Fri, 30 May 2008)
Log Message:
-----------
added support for None for dvipng and removed the sqrt in the hack which I think is wrong
Modified Paths:
--------------
branches/v0_91_maint/lib/matplotlib/rcsetup.py
branches/v0_91_maint/lib/matplotlib/texmanager.py
branches/v0_91_maint/matplotlibrc.template
Modified: branches/v0_91_maint/lib/matplotlib/rcsetup.py
===================================================================
--- branches/v0_91_maint/lib/matplotlib/rcsetup.py 2008-05-30 18:59:44 UTC (rev 5328)
+++ branches/v0_91_maint/lib/matplotlib/rcsetup.py 2008-05-30 19:21:56 UTC (rev 5329)
@@ -42,6 +42,16 @@
else:
raise ValueError('Could not convert "%s" to boolean' % b)
+def validate_bool_maybe_none(b):
+ 'Convert b to a boolean or raise'
+ if type(b) is str:
+ b = b.lower()
+ if b=='none': return None
+ if b in ('t', 'y', 'yes', 'on', 'true', '1', 1, True): return True
+ elif b in ('f', 'n', 'no', 'off', 'false', '0', 0, False): return False
+ else:
+ raise ValueError('Could not convert "%s" to boolean' % b)
+
def validate_float(s):
'convert s to float or raise'
try: return float(s)
@@ -339,7 +349,7 @@
'text.usetex' : [False, validate_bool],
'text.latex.unicode' : [False, validate_bool],
'text.latex.preamble' : [[''], validate_stringlist],
- 'text.dvipnghack' : [False, validate_bool],
+ 'text.dvipnghack' : [None, validate_bool_maybe_none],
'text.fontstyle' : ['normal', str],
'text.fontangle' : ['normal', str],
'text.fontvariant' : ['normal', str],
Modified: branches/v0_91_maint/lib/matplotlib/texmanager.py
===================================================================
--- branches/v0_91_maint/lib/matplotlib/texmanager.py 2008-05-30 18:59:44 UTC (rev 5328)
+++ branches/v0_91_maint/lib/matplotlib/texmanager.py 2008-05-30 19:21:56 UTC (rev 5329)
@@ -334,7 +334,12 @@
pngfile = self.make_png(tex, fontsize, dpi)
X = readpng(os.path.join(self.texcache, pngfile))
- if self._dvipng_hack_alpha or rcParams['text.dvipnghack']:
+ if rcParams['text.dvipnghack'] is not None:
+ hack = rcParams['text.dvipnghack']
+ else:
+ hack = self._dvipng_hack_alpha
+ print 'using hack', hack
+ if hack:
# hack the alpha channel
# dvipng assumed a constant background, whereas we want to
# overlay these rasters with antialiasing over arbitrary
@@ -356,7 +361,9 @@
#
# Since the foreground is black (0) and the background is
# white (1) this reduces to red = 1-alpha or alpha = 1-red
- alpha = npy.sqrt(1-X[:,:,0])
+ #alpha = npy.sqrt(1-X[:,:,0]) # should this be sqrt here?
+ alpha = 1-X[:,:,0]
+
else:
alpha = X[:,:,-1]
Modified: branches/v0_91_maint/matplotlibrc.template
===================================================================
--- branches/v0_91_maint/matplotlibrc.template 2008-05-30 18:59:44 UTC (rev 5328)
+++ branches/v0_91_maint/matplotlibrc.template 2008-05-30 19:21:56 UTC (rev 5329)
@@ -147,9 +147,14 @@
# beware of package collisions: color, geometry, graphicx,
# type1cm, textcomp. Adobe Postscript (PSSNFS) font packages
# may also be loaded, depending on your font settings
-#text.dvipnghack : False # some versions of dvipng don't handle
- # alpha channel properly. Use True to correct and flush
- # ~/.matplotlib/tex.cache before testing
+
+#text.dvipnghack : None # some versions of dvipng don't handle alpha
+ # channel properly. Use True to correct
+ # and flush ~/.matplotlib/tex.cache
+ # before testing and False to force
+ # correction off. None will try and
+ # guess based on your dvipng version
+
#text.markup : 'plain' # Affects how text, such as titles and labels, are
# interpreted by default.
# 'plain': As plain, unformatted text
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2008-05-30 18:59:47
|
Revision: 5328
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5328&view=rev
Author: mdboom
Date: 2008-05-30 11:59:44 -0700 (Fri, 30 May 2008)
Log Message:
-----------
Elaborate on mathtext documentation.
Modified Paths:
--------------
trunk/matplotlib/doc/users/index.rst
trunk/matplotlib/doc/users/pyplot_tutorial.rst
Added Paths:
-----------
trunk/matplotlib/doc/users/mathtext.rst
Modified: trunk/matplotlib/doc/users/index.rst
===================================================================
--- trunk/matplotlib/doc/users/index.rst 2008-05-30 17:34:24 UTC (rev 5327)
+++ trunk/matplotlib/doc/users/index.rst 2008-05-30 18:59:44 UTC (rev 5328)
@@ -93,6 +93,7 @@
.. toctree::
pyplot_tutorial.rst
+ mathtext.rst
navigation_toolbar.rst
customizing.rst
artists.rst
Added: trunk/matplotlib/doc/users/mathtext.rst
===================================================================
--- trunk/matplotlib/doc/users/mathtext.rst (rev 0)
+++ trunk/matplotlib/doc/users/mathtext.rst 2008-05-30 18:59:44 UTC (rev 5328)
@@ -0,0 +1,225 @@
+Writing mathematical expressions
+================================
+
+You can use TeX markup in any matplotlib text string; see the
+:mod:`matplotlib.mathtext` module documentation for details. Note
+that you do not need to have TeX installed, since matplotlib ships its
+own TeX expression parser, layout engine and fonts. The layout engine
+is a fairly direct adaptation of the layout algorithms in Donald
+Knuth's TeX, so the quality is quite good (matplotlib also provides a
+``usetex`` option for those who do want to call out to TeX to generate
+their text).
+
+Any text element can use math text. You need to use raw strings
+(preceed the quotes with an ``'r'``), and surround the string text
+with dollar signs, as in TeX. Regular text and mathtext can be
+interleaved within the same string. Mathtext can use the Computer
+Modern fonts (from (La)TeX), `STIX <http://www.aip.org/stixfonts/>`_
+fonts (with are designed to blend well with Times) or a Unicode font
+that you provide. The mathtext font can be selected with the
+customization variable ``mathtext.fontset``.
+
+Here is a simple example::
+
+ # plain text
+ plt.title('alpha > beta')
+
+produces "alpha > beta".
+
+Whereas this::
+
+ # math text
+ plt.title(r'$\alpha > \beta$')
+
+produces ":math:`\alpha > \beta`".
+
+.. TODO: Include a complete list here
+
+Subscripts and superscripts
+---------------------------
+
+To make subscripts and superscripts, use the ``'_'`` and ``'^'`` symbols::
+
+ r'$\alpha_i > \beta_i$'
+
+.. math::
+
+ \alpha_i > \beta_i
+
+Some symbols automatically put their sub/superscripts under and over
+the operator. For example, to write the sum of :math:`x_i` from :math:`0` to
+:math:`\infty`, you could do::
+
+ r'$\sum_{i=0}^\infty x_i$'
+
+.. math::
+
+ \sum_{i=0}^\infty x_i
+
+Fractions
+---------
+
+Fractions can be created with the ``\frac{}{}`` command::
+
+ r'$\frac{3}{4}$'
+
+produces
+
+.. math::
+
+ \frac{3}{4}
+
+Fractions can be arbitrarily nested::
+
+ r'$\frac{5 - \frac{1}{x}}{4}$'
+
+produces
+
+.. math::
+
+ \frac{5 - \frac{1}{x}}{4}
+
+Note that special care needs to be taken to place parentheses and brackets around
+fractions. Doing things the obvious way produces brackets that are
+too small::
+
+ r'$(\frac{5 - \frac{1}{x}}{4})$'
+
+.. math ::
+
+ (\frac{5 - \frac{1}{x}}{4})
+
+The solution is to precede the bracket with ``\left`` and ``\right``
+to inform the parser that those brackets encompass the entire object::
+
+ r'$\left(\frac{5 - \frac{1}{x}}{4}\right)$'
+
+.. math ::
+
+ \left(\frac{5 - \frac{1}{x}}{4}\right)
+
+Radicals
+--------
+
+Radicals can be produced with the ``\sqrt[]{}`` command. For example:
+
+ r'$\sqrt{2}$'
+
+.. math ::
+
+ \sqrt{2}
+
+Any base can (optionally) be provided inside square brackets. Note
+that the base must be a simple expression, and can not contain layout
+commands such as fractions or sub/superscripts.
+
+ r'$\sqrt[3]{x}$'
+
+.. math ::
+
+ \sqrt[3]{x}
+
+Fonts
+-----
+
+The default font is *italics* for mathematical symbols. To change
+fonts, eg, to write "sin" in a Roman font, enclose the text in a font
+command::
+
+ r'$s(t) = \mathcal{A}\mathrm{sin}(2 \omega t)$'
+
+.. math::
+
+ s(t) = \mathcal{A}\mathrm{sin}(2 \omega t)
+
+More conveniently, many commonly used function names that are typeset in a
+Roman font have shortcuts. So the expression above could be written
+as follows::
+
+ r'$s(t) = \mathcal{A}\sin(2 \omega t)$'
+
+.. math::
+
+ s(t) = \mathcal{A}\sin(2 \omega t)
+
+Here "s" and "t" are variable in italics font (default), "sin" is in
+Roman font, and the amplitude "A" is in calligraphy font.
+
+The choices available with all fonts are:
+
+ =============== =================================
+ Command Result
+ =============== =================================
+ ``\mathrm`` :math:`\mathrm{Roman}`
+ ``\mathit`` :math:`\mathit{Italic}`
+ ``\mathtt`` :math:`\mathtt{Typewriter}`
+ ``\mathcal`` :math:`\mathcal{CALLIGRAPHY}`
+ =============== =================================
+
+When using the STIX fonts, you also have the choice of:
+
+ ================ =================================
+ Command Result
+ ================ =================================
+ ``\mathbb`` :math:`\mathbb{Blackboard}`
+ ``\mathcircled`` :math:`\mathcircled{Circled}`
+ ``\mathfrak`` :math:`\mathfrak{Fraktur}`
+ ``\mathsf`` :math:`\mathsf{sans-serif}`
+ ================ =================================
+
+Accents
+-------
+
+An accent command may precede any symbol to add an accent above it.
+There are long and short forms for some of them.
+
+ ============================== =================================
+ Command Result
+ ============================== =================================
+ ``\acute a`` or ``\'a`` :math:`\acute a`
+ ``\bar a`` :math:`\bar a`
+ ``\breve a`` :math:`\breve a`
+ ``\ddot a`` or ``\"a`` :math:`\ddot a`
+ ``\dot a`` or ``\.a`` :math:`\dot a`
+ ``\grave a`` or ``\\`a`` :math:`\grave a`
+ ``\hat a`` or ``\^a`` :math:`\hat a`
+ ``\tilde a`` or ``\~a`` :math:`\tilde a`
+ ``\vec a`` :math:`\vec a`
+ ============================== =================================
+
+In addition, there are two special accents that automatically adjust
+to the width of the symbols below:
+
+ ============================== =================================
+ Command Result
+ ============================== =================================
+ ``\widehat{xyz}`` :math:`\widehat{xyz}`
+ ``\widetilde{xyz}`` :math:`\widetilde{xyz}`
+ ============================== =================================
+
+
+Symbols
+-------
+
+You can also use a large number of the TeX symbols, as in ``\infty``,
+``\leftarrow``, ``\sum``, ``\int``; see :class:`matplotlib.mathtext` for a
+complete list.
+
+If a particular symbol does not have a name (as is true of many of the
+more obscure symbols in the STIX fonts), Unicode characters can
+also be used::
+
+ ur'Generic symbol: $\u23ce$'
+
+Example
+-------
+
+Here is an example illustrating many of these features in context.
+
+.. literalinclude:: figures/pyplot_mathtext.py
+
+.. image:: figures/pyplot_mathtext.png
+ :scale: 50
+
+
+
Modified: trunk/matplotlib/doc/users/pyplot_tutorial.rst
===================================================================
--- trunk/matplotlib/doc/users/pyplot_tutorial.rst 2008-05-30 17:34:24 UTC (rev 5327)
+++ trunk/matplotlib/doc/users/pyplot_tutorial.rst 2008-05-30 18:59:44 UTC (rev 5328)
@@ -76,7 +76,7 @@
* Use the setter methods of the ``Line2D`` instance. ``plot`` returns a list
of lines; eg ``line1, line2 = plot(x1,y1,x2,x2)``. Below I have only
- one line so it is a list of length 1. I use tuple unpacking in the
+ one line so it is a list of7 length 1. I use tuple unpacking in the
``line, = plot(x, y, 'o')`` to get the first element of the list::
line, = plt.plot(x, y, 'o')
@@ -266,77 +266,3 @@
-Writing mathematical expressions
-================================
-
-You may have noticed in the histogram example above that we slipped a
-little TeX markup into the expression ``r'$\mu=100,\ \sigma=15$')``
-You can use TeX markup in any matplotlib text string; see the
-:mod:`matplotlib.mathtext` module documentation for details. Note
-that you do not need to have TeX installed, since matplotlib ships
-its own TeX expression parser, layout engine and fonts. Michael
-Droettboom has implemented the Knuth layout algorithms in python, so
-the quality is quite good (matplotlib also provides a ``usetex`` option
-for those who do want to call out to TeX to generate their text).
-
-Any text element can use math text. You need to use raw strings
-(preceed the quotes with an ``'r'``), and surround the string text
-with dollar signs, as in TeX. Regular text and mathtext can be
-interleaved within the same string. Mathtext can use the Bakoma
-Computer Modern fonts, STIX fonts or a Unicode font that you provide.
-The mathtext font can be selected with the customization variable
-``mathtext.fontset``::
-
- # plain text
- plt.title('alpha > beta')
-
- # math text
- plt.title(r'$\alpha > \beta$')
-
-
-To make subscripts and superscripts use the '_' and '^' symbols::
-
- plt.title(r'$\alpha_i > \beta_i$')
-
-You can also use a large number of the TeX symbols, as in ``\infty,
-\leftarrow, \sum, \int``; see :class:`matplotlib.mathtext` for a
-complete list. The over/under subscript/superscript style is also
-supported. To write the sum of x_i from 0 to infinity, you could do::
-
- plt.text(1, -0.6, r'$\sum_{i=0}^\infty x_i$')
-
-The default font is *italics* for mathematical symbols. To change
-fonts, eg, to write "sin" in a Roman font, enclose the text in a font
-command::
-
- plt.text(1,2, r's(t) = $\mathcal{A}\mathrm{sin}(2 \omega t)$')
-
-
-Even better, many commonly used function names that are typeset in a
-Roman font have shortcuts. So the expression above could be written
-as follows::
-
- plt.text(1,2, r's(t) = $\mathcal{A}\sin(2 \omega t)$')
-
-
-Here "s" and "t" are variable in italics font (default), "sin" is in
-Roman font, and the amplitude "A" is in caligraphy font. The font
-choices are Roman ``\mathrm``, italics ``\mathit``, caligraphy
-``\mathcal``, and typewriter ``\mathtt``. If using the STIX fonts,
-you also have the choice of blackboard (double-struck) ``\mathbb``,
-circled ``\mathcircled``, Fraktur ``\mathfrak``, script (cursive)
-``\mathscr`` and sans-serif ``\mathsf``.
-
-The following accents are provided: ``\hat``, ``\breve``, ``\grave``,
-``\bar``, ``\acute``, ``\tilde``, ``\vec``, ``\dot``, ``\ddot``. All
-of them have the same syntax, eg to make an overbar you do ``\bar{o}``
-or to make an o umlaut you do ``\ddot{o}``.
-
-.. literalinclude:: figures/pyplot_mathtext.py
-
-.. image:: figures/pyplot_mathtext.png
- :scale: 50
-
-
-
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-05-30 17:35:03
|
Revision: 5327
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5327&view=rev
Author: jdh2358
Date: 2008-05-30 10:34:24 -0700 (Fri, 30 May 2008)
Log Message:
-----------
updated site docs for 0.98
Modified Paths:
--------------
trunk/htdocs/API_CHANGES
trunk/htdocs/CHANGELOG
trunk/htdocs/convert.py
trunk/htdocs/credits.html.template
trunk/htdocs/license.html.template
trunk/htdocs/make.py
trunk/htdocs/matplotlib.afm.html.template
trunk/htdocs/matplotlib.artist.html.template
trunk/htdocs/matplotlib.axes.html.template
trunk/htdocs/matplotlib.axis.html.template
trunk/htdocs/matplotlib.backend_bases.html.template
trunk/htdocs/matplotlib.backends.backend_agg.html.template
trunk/htdocs/matplotlib.backends.backend_cairo.html.template
trunk/htdocs/matplotlib.backends.backend_gtk.html.template
trunk/htdocs/matplotlib.backends.backend_gtkagg.html.template
trunk/htdocs/matplotlib.backends.backend_gtkcairo.html.template
trunk/htdocs/matplotlib.backends.backend_ps.html.template
trunk/htdocs/matplotlib.backends.backend_qt.html.template
trunk/htdocs/matplotlib.backends.backend_qtagg.html.template
trunk/htdocs/matplotlib.backends.backend_svg.html.template
trunk/htdocs/matplotlib.backends.backend_template.html.template
trunk/htdocs/matplotlib.backends.backend_tkagg.html.template
trunk/htdocs/matplotlib.backends.backend_wx.html.template
trunk/htdocs/matplotlib.backends.backend_wxagg.html.template
trunk/htdocs/matplotlib.cbook.html.template
trunk/htdocs/matplotlib.cm.html.template
trunk/htdocs/matplotlib.collections.html.template
trunk/htdocs/matplotlib.colorbar.html.template
trunk/htdocs/matplotlib.colors.html.template
trunk/htdocs/matplotlib.contour.html.template
trunk/htdocs/matplotlib.dates.html.template
trunk/htdocs/matplotlib.dviread.html.template
trunk/htdocs/matplotlib.figure.html.template
trunk/htdocs/matplotlib.finance.html.template
trunk/htdocs/matplotlib.font_manager.html.template
trunk/htdocs/matplotlib.fontconfig_pattern.html.template
trunk/htdocs/matplotlib.ft2font.html.template
trunk/htdocs/matplotlib.image.html.template
trunk/htdocs/matplotlib.legend.html.template
trunk/htdocs/matplotlib.lines.html.template
trunk/htdocs/matplotlib.mathtext.html
trunk/htdocs/matplotlib.mathtext.html.template
trunk/htdocs/matplotlib.mlab.html.template
trunk/htdocs/matplotlib.numerix.html.template
trunk/htdocs/matplotlib.patches.html.template
trunk/htdocs/matplotlib.pylab.html.template
trunk/htdocs/matplotlib.pyplot.html.template
trunk/htdocs/matplotlib.quiver.html.template
trunk/htdocs/matplotlib.rcsetup.html.template
trunk/htdocs/matplotlib.table.html.template
trunk/htdocs/matplotlib.texmanager.html.template
trunk/htdocs/matplotlib.text.html.template
trunk/htdocs/matplotlib.ticker.html.template
trunk/htdocs/matplotlib.transforms.html.template
trunk/htdocs/matplotlib.type1font.html.template
trunk/htdocs/matplotlib.units.html.template
trunk/htdocs/matplotlib.widgets.html.template
trunk/htdocs/matplotlibrc
trunk/htdocs/screenshots/makeshots.py
trunk/htdocs/screenshots.html.template
trunk/htdocs/tut/custom_axes.png
trunk/htdocs/tut/date_demo2.png
trunk/htdocs/tut/firstfig.png
trunk/htdocs/tut/mathtext_tut.png
trunk/htdocs/tut/secondfig.png
trunk/htdocs/tut/subplot.png
trunk/htdocs/tut/text_dict.png
trunk/htdocs/tut/text_simple.png
trunk/htdocs/tut/thirdfig.png
trunk/htdocs/whats_new.html.template
Added Paths:
-----------
trunk/htdocs/screenshots/ellipse_demo.py
Removed Paths:
-------------
trunk/htdocs/screenshots/ellipse_large.py
Modified: trunk/htdocs/API_CHANGES
===================================================================
--- trunk/htdocs/API_CHANGES 2008-05-30 17:30:59 UTC (rev 5326)
+++ trunk/htdocs/API_CHANGES 2008-05-30 17:34:24 UTC (rev 5327)
@@ -1,3 +1,209 @@
+
+ matplotlib.image.imread now no longer always returns RGBA -- if
+ the image is luminance or RGB, it will return a MxN or MxNx3 array
+ if possible. Also uint8 is no longer always forced to float.
+
+ Rewrote the cm.ScalarMappable callback infrastructure to use
+ cbook.CallbackRegistry rather than custom callback handling. Amy
+ users of add_observer/notify of the cm.ScalarMappable should uae
+ the cm.ScalarMappable.callbacksSM CallbackRegistry instead.
+
+ New axes function and Axes method provide control over the plot
+ color cycle: axes.set_default_color_cycle(clist) and
+ Axes.set_color_cycle(clist).
+
+ matplotlib now requires python2.4, so matplotlib.cbook will no
+ loner provide set, enumerate, reversed or izip compatability functions
+
+ In numpy 1.0 bins are specified by the left edges only. The axes
+ method "hist" now uses future numpy 1.3 semantic for histograms.
+ Providing binedges, the last value gives the upper-right edge now,
+ which was implicitly set to +infinity in numpy 1.0. This also means
+ that the last bin doesn't contain upper outliers any more by default.
+
+ New axes method and pyplot function, hexbin, is an alternative
+ to scatter for large datasets. It makes something like a
+ pcolor of a 2-D histogram, but uses hexagonal bins.
+
+ New kwarg, "symmetric", in MaxNLocator
+ allows one require an axis to be centered on zero.
+
+ toolkits must now be imported from mpl_toolkits (not matplotlib.toolkits)
+
+TRANSFORMS REFACTORING
+
+ The primary goal of this refactoring was to make it easier to
+ extend matplotlib to support new kinds of projections. This is
+ primarily an internal improvement, and the possible user-visible
+ changes it allows are yet to come.
+
+ See transforms.py for a description of the design of the new
+ transformation framework.
+
+ The view intervals are now stored only in one place -- in the Axes
+ instance, not in the formatter instances as well. This means
+ formatters must get their limits from their Axis, which in turn
+ looks up its limits from the Axes. If a Locator is used
+ temporarily and not assigned to an Axis or Axes, (e.g. in
+ contour.py), a dummy axis must be created to store its bounds.
+ Call Locator.create_dummy_axis() to do so.
+
+ The functionality of Pbox has been merged with Bbox. Its methods
+ now all return copies rather than modifying in place.
+
+ The following lists many of the simple changes necessary to update
+ code from the old transformation framework to the new one. In
+ particular, methods that return a copy are named with a verb in
+ the past tense, whereas methods that alter an object in place are
+ named with a very in the present tense.
+
+ transforms.py
+ Bbox.get_bounds() Bbox.bounds
+
+ Bbox.width() Bbox.width
+
+ Bbox.height() Bbox.height
+
+ Bbox.intervalx().get_bounds() Bbox.intervalx
+ Bbox.intervalx().set_bounds()
+ [Bbox.intervalx is now a property.]
+
+ Bbox.intervaly().get_bounds() Bbox.intervaly
+ Bbox.intervaly().set_bounds()
+ [Bbox.intervaly is now a property.]
+
+ Bbox.xmin() Bbox.x0 or Bbox.xmin
+ Bbox.ymin() Bbox.y0 or Bbox.ymin
+ Bbox.xmax() Bbox.x1 or Bbox.xmax
+ Bbox.ymax() Bbox.y1 or Bbox.ymax
+ [The Bbox is bound by the points (x0, y0) to (x1, y1) and
+ there is no defined order to these points, that is, x0 is not
+ necessarily the left edge of the box. To get the left edge of
+ the Bbox, use the read-only property xmin.]
+
+ Bbox.overlaps(bboxes) Bbox.count_overlaps(bboxes)
+
+ bbox_all(bboxes) Bbox.union(bboxes)
+ [Bbox.union is a staticmethod.]
+
+ lbwh_to_bbox(l, b, w, h) Bbox.from_bounds(x0, y0, w, h)
+
+ inverse_transform_bbox(trans, bbox) bbox.inverse_transformed(trans)
+
+ Interval.contains_open(v) interval_contains_open(tuple, v)
+ Interval.contains(v) interval_contains_open(tuple, v)
+
+ identity_transform() IdentityTransform()
+
+ blend_xy_sep_transform(xtrans, ytrans) blended_transform_factory(xtrans, ytrans)
+
+ scale_transform(xs, ys) Affine2D().scale(xs[, ys])
+
+ get_bbox_transform(boxin, boxout) BboxTransform(boxin, boxout) or
+ BboxTransformFrom(boxin) or
+ BboxTransformTo(boxout)
+
+ Transform.seq_xy_tup(points) Transform.transform(points)
+
+ Transform.inverse_xy_tup(points) Transform.inverted().transform(points)
+
+ axes.py
+ Axes.get_position() Axes.get_position()
+ [Axes.get_position() used to return a list of points, not it
+ returns a transforms.Bbox instance.]
+
+ Axes.set_position() Axes.set_position()
+ [Axes.set_position() now accepts either four scalars or a
+ transforms Bbox instance.]
+
+ [also returns a Bbox]
+ Axes.toggle_log_lineary() Axes.set_yscale()
+ [Since the recfactoring allows for more than two scale types
+ ('log' or 'linear'), it no longer makes sense to have a
+ toggle. Axes.toggle_log_lineary() has been removed.]
+
+ Axes.hlines(linestyle=) Axes.hlines(linestyles=)
+ Axes.vlines(linestyle=) Axes.vlines(linestyles=)
+ [The kwarg 'linestyle' has been replaced with 'linestyles',
+ which accepts either a single linestyle or a list of
+ linestyles to use.]
+
+ Subplot class is gone -- now there is only SubplotBase.
+
+ The Polar class has moved to projections/polar.py
+
+ artist.py
+ Artist.set_clip_path(path) Artist.set_clip_path(path, transform)
+ [set_clip_path now accepts a path.Path instance and a
+ transformation that will be applied to the path immediately
+ before clipping.]
+
+ collections.py
+ linestyle linestyles
+ [Linestyles are now treated like all other collection
+ attributes -- a single value or multiple values may be
+ provided.]
+
+ colors.py
+ ColorConvertor.to_rgba_list(c) ColorConvertor.to_rgba_array(c)
+ [ColorConvertor.to_rgba_array(c) returns an Nx4 Numpy array of
+ RGBA color quadruples.]
+
+ contour.py
+ Contour._segments Contour.get_paths()
+ [Contour.get_paths() now returns a list of path.Path instances.]
+
+ figure.py
+ Figure.dpi.get()/set() Figure.dpi (a property)
+
+ patches.py
+ get_verts() get_path()
+ [Patch.get_path() returns a path.Path instance.]
+
+ backend_bases.py
+ GraphicsContext.set_clip_rectangle(tuple) GraphicsContext.set_clip_rectangle(bbox)
+
+ GraphicsContext.get_clip_path() GraphicsContext.get_clip_path()
+ [GraphicsContext.get_clip_path() returns a tuple of the form
+ (path, affine_transform), where path is a path.Path instance
+ and affine_transform is a transforms.Affine2D instance.]
+
+ GraphicsContext.set_clip_path(clippath) GraphicsContext.set_clip_path(clippath)
+ [Now accepts only an instance of transforms.TransformedPath.]
+
+ RendererBase class:
+ **new methods** --->
+ draw_path(self, gc, path, transform, rgbFace)
+
+ draw_markers(self, gc, marker_path, marker_trans, path, trans, rgbFace)
+
+ draw_path_collection(self, master_transform, cliprect, clippath,
+ clippath_trans, paths, all_transforms, offsets,
+ offsetTrans, facecolors, edgecolors, linewidths,
+ linestyles, antialiaseds) [optional]
+
+
+ **changed methods** --->
+ draw_image(self, x, y, im, bbox) draw_image(self, x, y, im, bbox,
+ clippath, clippath_trans)
+
+ **removed methods** --->
+ draw_arc
+ draw_line_collection
+ draw_line
+ draw_lines
+ draw_point
+ draw_quad_mesh
+ draw_poly_collection
+ draw_polygon
+ draw_rectangle
+ draw_regpoly_collection
+
+END OF TRANSFORMS REFACTORING
+
+
+
+
0.91.2 Released
For csv2rec, checkrows=0 is the new default indicating all rows
Modified: trunk/htdocs/CHANGELOG
===================================================================
--- trunk/htdocs/CHANGELOG 2008-05-30 17:30:59 UTC (rev 5326)
+++ trunk/htdocs/CHANGELOG 2008-05-30 17:34:24 UTC (rev 5327)
@@ -1,4 +1,255 @@
===============================================================
+2008-05-29 Released 0.98.0 at revision 5314
+
+2008-05-29 matplotlib.image.imread now no longer always returns RGBA
+ -- if the image is luminance or RGB, it will return a MxN
+ or MxNx3 array if possible. Also uint8 is no longer always
+ forced to float.
+
+2008-05-29 Implement path clipping in PS backend - JDH
+
+2008-05-29 Fixed two bugs in texmanager.py:
+ improved comparison of dvipng versions
+ fixed a bug introduced when get_grey method was added
+ - DSD
+
+2008-05-28 Fix crashing of PDFs in xpdf and ghostscript when two-byte
+ characters are used with Type 3 fonts - MGD
+
+2008-05-28 Allow keyword args to configure widget properties as
+ requested in
+ http://sourceforge.net/tracker/index.php?func=detail&aid=1866207&group_id=80706&atid=560722
+ - JDH
+
+2008-05-28 Replaced '-' with u'\u2212' for minus sign as requested in
+ http://sourceforge.net/tracker/index.php?func=detail&aid=1962574&group_id=80706&atid=560720
+
+2008-05-28 zero width/height Rectangles no longer influence the
+ autoscaler. Useful for log histograms with empty bins -
+ JDH
+
+2008-05-28 Fix rendering of composite glyphs in Type 3 conversion
+ (particularly as evidenced in the Eunjin.ttf Korean font)
+ Thanks Jae-Joon Lee for finding this!
+
+2008-05-27 Rewrote the cm.ScalarMappable callback infrastructure to
+ use cbook.CallbackRegistry rather than custom callback
+ handling. Amy users of add_observer/notify of the
+ cm.ScalarMappable should uae the
+ cm.ScalarMappable.callbacksSM CallbackRegistry instead. JDH
+
+2008-05-27 Fix TkAgg build on Ubuntu 8.04 (and hopefully a more
+ general solution for other platforms, too.)
+
+2008-05-24 Added PIL support for loading images to imread (if PIL is
+ available) - JDH
+
+2008-05-23 Provided a function and a method for controlling the
+ plot color cycle. - EF
+
+2008-05-23 Major revision of hist(). Can handle 2D arrays and create
+ stacked histogram plots; keyword 'width' deprecated and
+ rwidth (relative width) introduced; align='edge' changed
+ to center of bin - MM
+
+2008-05-22 Added support for ReST-based doumentation using Sphinx.
+ Documents are located in doc/, and are broken up into
+ a users guide and an API reference. To build, run the
+ make.py files. Sphinx-0.4 is needed to build generate xml,
+ which will be useful for rendering equations with mathml,
+ use sphinx from svn until 0.4 is released - DSD
+
+2008-05-21 Fix segfault in TkAgg backend - MGD
+
+2008-05-21 Fix a "local variable unreferenced" bug in plotfile - MM
+
+2008-05-19 Fix crash when Windows can not access the registry to
+ determine font path [Bug 1966974, thanks Patrik Simons] - MGD
+
+2008-05-16 removed some unneeded code w/ the python 2.4 requirement.
+ cbook no longer provides compatibility for reversed,
+ enumerate, set or izip. removed lib/subprocess, mpl1,
+ sandbox/units, and the swig code. This stuff should remain
+ on the maintenance branch for archival purposes. JDH
+
+2008-05-16 Reorganized examples dir - JDH
+
+2008-05-16 Added 'elinewidth' keyword arg to errorbar, based on patch
+ by Christopher Brown - MM
+
+2008-05-16 Added 'cumulative' keyword arg to hist to plot cumulative
+ histograms. For normed hists, this is normalized to one - MM
+
+2008-05-15 Fix Tk backend segfault on some machines - MGD
+
+2008-05-14 Don't use stat on Windows (fixes font embedding problem) - MGD
+
+2008-05-09 Fix /singlequote (') in Postscript backend - MGD
+
+2008-05-08 Fix kerning in SVG when embedding character outlines - MGD
+
+2008-05-07 Switched to future numpy histogram semantic in hist - MM
+
+2008-05-06 Fix strange colors when blitting in QtAgg and Qt4Agg - MGD
+
+2008-05-05 pass notify_axes_change to the figure's add_axobserver
+ in the qt backends, like we do for the other backends.
+ Thanks Glenn Jones for the report - DSD
+
+2008-05-02 Added step histograms, based on patch by Erik Tollerud. - MM
+
+2008-05-02 On PyQt <= 3.14 there is no way to determine the underlying
+ Qt version. [1851364] - MGD
+
+2008-05-02 Don't call sys.exit() when pyemf is not found [1924199] -
+ MGD
+
+2008-05-02 Update _subprocess.c from upstream Python 2.5.2 to get a
+ few memory and reference-counting-related bugfixes. See
+ bug 1949978. - MGD
+
+2008-04-30 Added some record array editing widgets for gtk -- see
+ examples/rec_edit*.py - JDH
+
+2008-04-29 Fix bug in mlab.sqrtm - MM
+
+2008-04-28 Fix bug in SVG text with Mozilla-based viewers (the symbol
+ tag is not supported) - MGD
+
+2008-04-27 Applied patch by Michiel de Hoon to add hexbin
+ axes method and pyplot function - EF
+
+2008-04-25 Enforce python >= 2.4; remove subprocess build - EF
+
+2008-04-25 Enforce the numpy requirement at build time - JDH
+
+2008-04-24 Make numpy 1.1 and python 2.3 required when importing
+ matplotlib - EF
+
+2008-04-24 Fix compilation issues on VS2003 (Thanks Martin Spacek for
+ all the help) - MGD
+
+2008-04-24 Fix sub/superscripts when the size of the font has been
+ changed - MGD
+
+2008-04-22 Use "svg.embed_char_paths" consistently everywhere - MGD
+
+2008-04-20 Add support to MaxNLocator for symmetric axis autoscaling. - EF
+
+2008-04-20 Fix double-zoom bug. - MM
+
+2008-04-15 Speed up color mapping. - EF
+
+2008-04-12 Speed up zooming and panning of dense images. - EF
+
+2008-04-11 Fix global font rcParam setting after initialization
+ time. - MGD
+
+2008-04-11 Revert commits 5002 and 5031, which were intended to
+ avoid an unnecessary call to draw(). 5002 broke saving
+ figures before show(). 5031 fixed the problem created in
+ 5002, but broke interactive plotting. Unnecessary call to
+ draw still needs resolution - DSD
+
+2008-04-07 Improve color validation in rc handling, suggested
+ by Lev Givon - EF
+
+2008-04-02 Allow to use both linestyle definition arguments, '-' and
+ 'solid' etc. in plots/collections - MM
+
+2008-03-27 Fix saving to Unicode filenames with Agg backend
+ (other backends appear to already work...)
+ (Thanks, Christopher Barker) - MGD
+
+2008-03-26 Fix SVG backend bug that prevents copying and pasting in
+ Inkscape (thanks Kaushik Ghose) - MGD
+
+2008-03-24 Removed an unnecessary call to draw() in the backend_qt*
+ mouseReleaseEvent. Thanks to Ted Drain - DSD
+
+2008-03-23 Fix a pdf backend bug which sometimes caused the outermost
+ gsave to not be balanced with a grestore. - JKS
+
+2008-03-20 Fixed a minor bug in ContourSet._process_linestyles when
+ len(linestyles)==Nlev - MM
+
+2008-03-19 Changed ma import statements to "from numpy import ma";
+ this should work with past and future versions of
+ numpy, whereas "import numpy.ma as ma" will work only
+ with numpy >= 1.05, and "import numerix.npyma as ma"
+ is obsolete now that maskedarray is replacing the
+ earlier implementation, as of numpy 1.05.
+
+2008-03-14 Removed an apparently unnecessary call to
+ FigureCanvasAgg.draw in backend_qt*agg. Thanks to Ted
+ Drain - DSD
+
+2008-03-10 Workaround a bug in backend_qt4agg's blitting due to a
+ buffer width/bbox width mismatch in _backend_agg's
+ copy_from_bbox - DSD
+
+2008-02-29 Fix class Wx toolbar pan and zoom functions (Thanks Jeff
+ Peery) - MGD
+
+2008-02-16 Added some new rec array functionality to mlab
+ (rec_summarize, rec2txt and rec_groupby). See
+ examples/rec_groupby_demo.py. Thanks to Tim M for rec2txt.
+
+2008-02-12 Applied Erik Tollerud's span selector patch - JDH
+
+2008-02-11 Update plotting() doc string to refer to getp/setp. - JKS
+
+2008-02-10 Fixed a problem with square roots in the pdf backend with
+ usetex. - JKS
+
+2008-02-08 Fixed minor __str__ bugs so getp(gca()) works. - JKS
+
+2008-02-05 Added getters for title, xlabel, ylabel, as requested
+ by Brandon Kieth - EF
+
+2008-02-05 Applied Gael's ginput patch and created
+ examples/ginput_demo.py - JDH
+
+2008-02-03 Expose interpnames, a list of valid interpolation
+ methods, as an AxesImage class attribute. - EF
+
+2008-02-03 Added BoundaryNorm, with examples in colorbar_only.py
+ and image_masked.py. - EF
+
+2008-02-03 Force dpi=72 in pdf backend to fix picture size bug. - JKS
+
+2008-02-01 Fix doubly-included font problem in Postscript backend - MGD
+
+2008-02-01 Fix reference leak in ft2font Glyph objects. - MGD
+
+2008-01-31 Don't use unicode strings with usetex by default - DSD
+
+2008-01-31 Fix text spacing problems in PDF backend with *some* fonts,
+ such as STIXGeneral.
+
+2008-01-31 Fix \sqrt with radical number (broken by making [ and ]
+ work below) - MGD
+
+2008-01-27 Applied Martin Teichmann's patch to improve the Qt4
+ backend. Uses Qt's builtin toolbars and statusbars.
+ See bug 1828848 - DSD
+
+2008-01-10 Moved toolkits to mpl_toolkits, made mpl_toolkits
+ a namespace package - JSWHIT
+
+2008-01-10 Use setup.cfg to set the default parameters (tkagg,
+ numpy) when building windows installers - DSD
+
+2008-01-10 Fix bug displaying [ and ] in mathtext - MGD
+
+2008-01-10 Fix bug when displaying a tick value offset with scientific
+ notation. (Manifests itself as a warning that the \times
+ symbol can not be found). - MGD
+
+2008-01-10 Use setup.cfg to set the default parameters (tkagg,
+ numpy) when building windows installers - DSD
+
+===============================================================
2008-01-06 Released 0.91.2 at revision 4802
2007-12-26 Reduce too-late use of matplotlib.use() to a warning
@@ -136,6 +387,75 @@
2007-10-31 Made log color scale easier to use with contourf;
automatic level generation now works. - EF
+2007-10-29 TRANSFORMS REFACTORING
+
+ The primary goal of this refactoring was to make it easier
+ to extend matplotlib to support new kinds of projections.
+ This is primarily an internal improvement, and the possible
+ user-visible changes it allows are yet to come.
+
+ The transformation framework was completely rewritten in
+ Python (with Numpy). This will make it easier to add news
+ kinds of transformations without writing C/C++ code.
+
+ Transforms are composed into a 'transform tree', made of
+ transforms whose value depends on other transforms (their
+ children). When the contents of children change, their
+ parents are automatically updated to reflect those changes.
+ To do this an "invalidation" method is used: when children
+ change, all of their ancestors are marked as "invalid".
+ When the value of a transform is accessed at a later time,
+ its value is recomputed only if it is invalid, otherwise a
+ cached value may be used. This prevents unnecessary
+ recomputations of transforms, and contributes to better
+ interactive performance.
+
+ The framework can be used for both affine and non-affine
+ transformations. However, for speed, we want use the
+ backend renderers to perform affine transformations
+ whenever possible. Therefore, it is possible to perform
+ just the affine or non-affine part of a transformation on a
+ set of data. The affine is always assumed to occur after
+ the non-affine. For any transform:
+
+ full transform == non-affine + affine
+
+ Much of the drawing has been refactored in terms of
+ compound paths. Therefore, many methods have been removed
+ from the backend interface and replaced with a a handful to
+ draw compound paths. This will make updating the backends
+ easier, since there is less to update. It also should make
+ the backends more consistent in terms of functionality.
+
+ User visible changes:
+
+ - POLAR PLOTS: Polar plots are now interactively zoomable,
+ and the r-axis labels can be interactively rotated.
+ Straight line segments are now interpolated to follow the
+ curve of the r-axis.
+
+ - Non-rectangular clipping works in more backends and with
+ more types of objects.
+
+ - Sharing an axis across figures is now done in exactly
+ the same way as sharing an axis between two axes in the
+ same figure:
+
+ fig1 = figure()
+ fig2 = figure()
+
+ ax1 = fig1.add_subplot(111)
+ ax2 = fig2.add_subplot(111, sharex=ax1, sharey=ax1)
+
+ - linestyles now include steps-pre, steps-post and
+ steps-mid. The old step still works and is equivalent to
+ step-pre.
+
+ - Multiple line styles may be provided to a collection.
+
+ See API_CHANGES for more low-level information about this
+ refactoring.
+
2007-10-24 Added ax kwarg to Figure.colorbar and pyplot.colorbar - EF
2007-10-19 Removed a gsave/grestore pair surrounding _draw_ps, which
@@ -3251,3 +3571,4 @@
2003-11-21 - make a dash-dot dict for the GC
2003-12-15 - fix install path bug
+t
Modified: trunk/htdocs/convert.py
===================================================================
--- trunk/htdocs/convert.py 2008-05-30 17:30:59 UTC (rev 5326)
+++ trunk/htdocs/convert.py 2008-05-30 17:34:24 UTC (rev 5327)
@@ -187,17 +187,15 @@
# re-add news to the params dict 'tables' entry below for news
-news1= NewsBox("""We have recetly merged significant changes in the internal matplotlib transformation infrastructure into the main matplotlib codebase. While this will not affect typical pylab users, some users of the API and transformation code will to make some code changes to work with the new transformations. Please see <a href=MIGRATION.txt>migration</a> and <a href=API_CHANGES>API_CHANGES</a> for a summary of the migration path and changes in the API, and let us know on the <a href=http://sourceforge.net/mail/?group_id=80706>mailing lists</a> if you are experiecing problems""", title='Major changes in matplotlib svn')
+news1= NewsBox("""matplotlib <a
+href=http://sourceforge.net/project/showfiles.php?group_id=80706&package_id=278194&release_id=603020>0.98.0</a> is a major release which requires python2.4 and numpy 1.1. It contains a number of internal improvements and may require some power users to update their code; see <a href=MIGRATION.txt>migration</a> and <a href=API_CHANGES>API_CHANGES</a>. We are supporting a maintenance branch of the older code available at matplotlib <a
+href=http://sourceforge.net/project/showfiles.php?group_id=80706&package_id=82474&release_id=603021>0.91.3</a>""", title='New release')
news2 = NewsBox("""Help support matplotlib development by <a href=http://sourceforge.net/project/project_donations.php?group_id=80706>donating</a> to fund developer sprints and other matplotlib development costs.""", title='Donate')
-news3 = NewsBox("""matplotlib <a
-href=http://sourceforge.net/project/platformdownload.php?group_id=80706>0.91.2</a>
-is out. See <a href=whats_new.html>what's new</a> for a summary of new features. """, title='New release')
-
table1 = LinkBox(header='Matplotlib', links=(
('Home', 'http://matplotlib.sourceforge.net'),
("What's New", 'whats_new.html'),
@@ -211,8 +209,10 @@
table2 = LinkBox(header='Documentation', links=(
('Tutorial', 'tutorial.html'),
- ("User's Guide (pdf)", 'users_guide_%s.pdf'%matplotlib.__version__),
- ("API (pdf)", 'api.pdf'),
+ ("User's Guide ", 'users_guide_%s.pdf'%matplotlib.__version__),
+ ('API tutorial', 'pycon/event_handling_tut.pdf'),
+ ('Event handling', 'pycon/artist_api_tut.pdf'),
+ ("API ", 'api.pdf'),
('FAQ', 'faq.html'),
('Cookbook / wiki', 'http://www.scipy.org/wikis/topical_software/MatplotlibCookbook'),
('pylab interface', 'pylab_commands.html'),
@@ -232,7 +232,7 @@
params = {
'myemail' : '<a href=mailto:jdh...@ac...> (jdh...@ac...)</a>',
- 'tables' : (news1, news2, news3, table1, table2, table3),
+ 'tables' : (news1, news2, table1, table2, table3),
'default_table' : 'border=1 cellpadding=3 cellspacing=2',
}
Modified: trunk/htdocs/credits.html.template
===================================================================
--- trunk/htdocs/credits.html.template 2008-05-30 17:30:59 UTC (rev 5326)
+++ trunk/htdocs/credits.html.template 2008-05-30 17:34:24 UTC (rev 5327)
@@ -140,7 +140,7 @@
support, implementing Knuth's box layout algorithms, saving to
file-like objects across backends, and is responsible for numerous
bug-fixes, much better font and unicode support, and feature and
- performance enhancements across the matplotlib code base. </li>
+ performance enhancements across the matplotlib code base. He also rewrote the transformation infrastructure to support custom projections and scales/li>
Modified: trunk/htdocs/license.html.template
===================================================================
--- trunk/htdocs/license.html.template 2008-05-30 17:30:59 UTC (rev 5326)
+++ trunk/htdocs/license.html.template 2008-05-30 17:34:24 UTC (rev 5327)
@@ -6,7 +6,7 @@
<pre>
-LICENSE AGREEMENT FOR MATPLOTLIB 0.91.2svn
+LICENSE AGREEMENT FOR MATPLOTLIB 0.98.0
--------------------------------------
1. This LICENSE AGREEMENT is between the John D. Hunter ("JDH"), and the
@@ -17,30 +17,30 @@
2. Subject to the terms and conditions of this License Agreement, JDH
hereby grants Licensee a nonexclusive, royalty-free, world-wide license
to reproduce, analyze, test, perform and/or display publicly, prepare
-derivative works, distribute, and otherwise use matplotlib 0.91.2svn
+derivative works, distribute, and otherwise use matplotlib 0.98.0
alone or in any derivative version, provided, however, that JDH's
License Agreement and JDH's notice of copyright, i.e., "Copyright (c)
2002-2004 John D. Hunter; All Rights Reserved" are retained in
-matplotlib 0.91.2svn alone or in any derivative version prepared by
+matplotlib 0.98.0 alone or in any derivative version prepared by
Licensee.
3. In the event Licensee prepares a derivative work that is based on or
-incorporates matplotlib 0.91.2svn or any part thereof, and wants to
+incorporates matplotlib 0.98.0 or any part thereof, and wants to
make the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
-the changes made to matplotlib 0.91.2svn.
+the changes made to matplotlib 0.98.0.
-4. JDH is making matplotlib 0.91.2svn available to Licensee on an "AS
+4. JDH is making matplotlib 0.98.0 available to Licensee on an "AS
IS" basis. JDH MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, JDH MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB 0.91.2svn
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB 0.98.0
WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
5. JDH SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB
-0.91.2svn FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR
+0.98.0 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR
LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING
-MATPLOTLIB 0.91.2svn, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF
+MATPLOTLIB 0.98.0, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF
THE POSSIBILITY THEREOF.
6. This License Agreement will automatically terminate upon a material
@@ -52,7 +52,7 @@
trademarks or trade name in a trademark sense to endorse or promote
products or services of Licensee, or any third party.
-8. By copying, installing or otherwise using matplotlib 0.91.2svn,
+8. By copying, installing or otherwise using matplotlib 0.98.0,
Licensee agrees to be bound by the terms and conditions of this License
Agreement.
Modified: trunk/htdocs/make.py
===================================================================
--- trunk/htdocs/make.py 2008-05-30 17:30:59 UTC (rev 5326)
+++ trunk/htdocs/make.py 2008-05-30 17:34:24 UTC (rev 5327)
@@ -1,39 +1,17 @@
import os, sys, glob, shutil
import matplotlib
-MPL_SRC = os.environ.get('MPL_SRC', '/home/darren/src/matplotlib/matplotlib')
+MPL_SRC = os.environ.get('MPL_SRC', '/home/jdhunter/mpl')
MPL_SRC = '/home/jdhunter/mpl'
-#copy all the examples to the htdocs examples dir
-for fname in glob.glob('examples/*.py*'):
- os.remove(fname)
-
-for pathname in glob.glob(os.path.join(MPL_SRC, 'examples', '*.py')):
- path, fname = os.path.split(pathname)
- if fname.startswith('_tmp'): continue
- newname = os.path.join('examples', fname)
- print 'copying %s to %s' % (pathname, newname)
- shutil.copy(pathname, newname)
-widgetfiles = glob.glob(os.path.join(MPL_SRC, 'examples', 'widgets', '*.py'))
-widgetfiles.append(os.path.join(MPL_SRC, 'examples', 'widgets', 'README'))
-for pathname in widgetfiles:
- path, fname = os.path.split(pathname)
- if fname.startswith('_tmp'): continue
- newname = os.path.join('examples', 'widgets', fname)
- print 'copying %s to %s' % (pathname, newname)
- shutil.copy(pathname, newname)
-
-widgetfiles = glob.glob(os.path.join(MPL_SRC, 'examples', 'units', '*.py'))
-for pathname in widgetfiles:
- path, fname = os.path.split(pathname)
- if fname.startswith('_tmp'): continue
- newname = os.path.join('examples', 'units', fname)
- print 'copying %s to %s' % (pathname, newname)
- shutil.copy(pathname, newname)
-
+os.system('rm -rf examples')
+os.system('tar -cv -C ~/mpl examples --exclude .svn --exclude Agg --exclude PDF --exclude PS --exclude Template|tar x')
os.system('zip -r -o matplotlib_examples_%s.zip examples'%matplotlib.__version__)
+os.system('rm -rf doc')
+os.system('tar -cv -C ~/mpl doc/devel doc/users --exclude .svn --exclude png |tar x')
+
os.system('cp ../users_guide/users_guide.pdf users_guide_%s.pdf'%matplotlib.__version__)
filenames = ( 'INSTALL', 'CHANGELOG', 'API_CHANGES', 'MIGRATION.txt')
@@ -53,16 +31,16 @@
#os.system('cd screenshots; python makeshots.py; rm -f _tmp*.py')
print 'Making tutorial images'
-#os.system('cd tut; python runall.py')
+os.system('cd tut; python runall.py')
-#print 'Running process_docs'
-os.system('python process_docs.py')
+print 'Running process_docs'
+#os.system('python process_docs.py')
print 'Running convert'
os.system('python convert.py')
print 'Building archive'
version = matplotlib.__version__
-tarcommand = 'tar cfz site.tar.gz *.html api.pdf users_guide_%(version)s.pdf matplotlib_examples_%(version)s.zip screenshots tut examples matplotlibrc CHANGELOG API_CHANGES MIGRATION.txt set_begone.py -X exclude.txt'%locals()
+tarcommand = 'tar cfz site.tar.gz *.html api.pdf users_guide_%(version)s.pdf matplotlib_examples_%(version)s.zip screenshots tut doc examples matplotlibrc CHANGELOG API_CHANGES MIGRATION.txt set_begone.py -X exclude.txt'%locals()
print tarcommand
os.system(tarcommand)
Modified: trunk/htdocs/matplotlib.afm.html.template
===================================================================
--- trunk/htdocs/matplotlib.afm.html.template 2008-05-30 17:30:59 UTC (rev 5326)
+++ trunk/htdocs/matplotlib.afm.html.template 2008-05-30 17:34:24 UTC (rev 5327)
@@ -4,7 +4,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="matplotlib.html"><font color="#ffffff">matplotlib</font></a>.afm</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jdhunter/dev/lib/python2.5/site-packages/matplotlib/afm.py">/home/jdhunter/dev/lib/python2.5/site-packages/matplotlib/afm.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jdhunter/dev/lib64/python2.5/site-packages/matplotlib/afm.py">/home/jdhunter/dev/lib64/python2.5/site-packages/matplotlib/afm.py</a></font></td></tr></table>
<p><tt>This is a python interface to Adobe Font Metrics Files. Although a<br>
number of other python implementations exist (and may be more complete<br>
than mine) I decided not to go with them because either they were<br>
Modified: trunk/htdocs/matplotlib.artist.html.template
===================================================================
--- trunk/htdocs/matplotlib.artist.html.template 2008-05-30 17:30:59 UTC (rev 5326)
+++ trunk/htdocs/matplotlib.artist.html.template 2008-05-30 17:34:24 UTC (rev 5327)
@@ -4,7 +4,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="matplotlib.html"><font color="#ffffff">matplotlib</font></a>.artist</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jdhunter/dev/lib/python2.5/site-packages/matplotlib/artist.py">/home/jdhunter/dev/lib/python2.5/site-packages/matplotlib/artist.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jdhunter/dev/lib64/python2.5/site-packages/matplotlib/artist.py">/home/jdhunter/dev/lib64/python2.5/site-packages/matplotlib/artist.py</a></font></td></tr></table>
<p></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -14,9 +14,8 @@
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="re.html">re</a><br>
-</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td><td width="25%" valign=top><a href="matplotlib.units.html">matplotlib.units</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
+</td><td width="25%" valign=top><a href="warnings.html">warnings</a><br>
+</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom> <br>
@@ -24,14 +23,19 @@
<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
<td width="100%"><dl>
+<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
+</font></dt><dd>
+<dl>
<dt><font face="helvetica, arial"><a href="matplotlib.artist.html#Artist">Artist</a>
-</font></dt><dt><font face="helvetica, arial"><a href="matplotlib.artist.html#ArtistInspector">ArtistInspector</a>
</font></dt></dl>
+</dd>
+<dt><font face="helvetica, arial"><a href="matplotlib.artist.html#ArtistInspector">ArtistInspector</a>
+</font></dt></dl>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Artist">class <strong>Artist</strong></a></font></td></tr>
+<font color="#000000" face="helvetica, arial"><a name="Artist">class <strong>Artist</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
<td colspan=2><tt>Abstract base class for someone who renders into a FigureCanvas<br> </tt></td></tr>
@@ -78,6 +82,9 @@
<dl><dt><a name="Artist-get_transform"><strong>get_transform</strong></a>(self)</dt><dd><tt>return the Transformation instance used by this artist</tt></dd></dl>
+<dl><dt><a name="Artist-get_transformed_clip_path_and_affine"><strong>get_transformed_clip_path_and_affine</strong></a>(self)</dt><dd><tt>Return the clip path with the non-affine part of its transformation applied,<br>
+and the remaining affine part of its transformation.</tt></dd></dl>
+
<dl><dt><a name="Artist-get_visible"><strong>get_visible</strong></a>(self)</dt><dd><tt>return the artist's visiblity</tt></dd></dl>
<dl><dt><a name="Artist-get_zorder"><strong>get_zorder</strong></a>(self)</dt></dl>
@@ -133,9 +140,22 @@
<br>
ACCEPTS: [True | False]</tt></dd></dl>
-<dl><dt><a name="Artist-set_clip_path"><strong>set_clip_path</strong></a>(self, path)</dt><dd><tt>Set the artist's clip path<br>
+<dl><dt><a name="Artist-set_clip_path"><strong>set_clip_path</strong></a>(self, path, transform<font color="#909090">=None</font>)</dt><dd><tt>Set the artist's clip path, which may be:<br>
<br>
-ACCEPTS: an agg.path_storage instance</tt></dd></dl>
+ a) a Patch (or subclass) instance<br>
+ <br>
+ b) a Path instance, in which cas aoptional transform may<br>
+ be provided, which will be applied to the path before using it<br>
+ for clipping.<br>
+ <br>
+ c) None, to remove the clipping path<br>
+ <br>
+For efficiency, if the path happens to be an axis-aligned<br>
+rectangle, this method will set the clipping box to the<br>
+corresponding rectangle and set the clipping path to None.<br>
+ <br>
+ACCEPTS: a Path instance and a Transform instance, a Patch<br>
+instance, or None</tt></dd></dl>
<dl><dt><a name="Artist-set_contains"><strong>set_contains</strong></a>(self, picker)</dt><dd><tt>Replace the contains test used by this artist. The new picker should<br>
be a callable function which determines whether the artist is hit by the<br>
@@ -207,6 +227,14 @@
<dl><dt><a name="Artist-update_from"><strong>update_from</strong></a>(self, other)</dt><dd><tt>copy properties from other to self</tt></dd></dl>
<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary for instance variables (if defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>aname</strong> = 'Artist'</dl>
@@ -236,11 +264,13 @@
property, which does not, return 'transform'</tt></dd></dl>
<dl><dt><a name="ArtistInspector-get_aliases"><strong>get_aliases</strong></a>(self)</dt><dd><tt>get a dict mapping fullname -> alias for each alias in o.<br>
-Eg for lines: {'markerfacecolor': 'mfc',<br>
- 'linewidth' : 'lw',<br>
- }</tt></dd></dl>
+Eg for lines::<br>
+ <br>
+ {'markerfacecolor': 'mfc',<br>
+ 'linewidth' : 'lw',<br>
+ }</tt></dd></dl>
-<dl><dt><a name="ArtistInspector-get_setters"><strong>get_setters</strong></a>(self)</dt><dd><tt>Get the attribute strings with setters for object h. Eg, for a line,<br>
+<dl><dt><a name="ArtistInspector-get_setters"><strong>get_setters</strong></a>(self)</dt><dd><tt>Get the attribute strings with setters for <a href="__builtin__.html#object">object</a> h. Eg, for a line,<br>
return ['markerfacecolor', 'linewidth', ....]</tt></dd></dl>
<dl><dt><a name="ArtistInspector-get_valid_values"><strong>get_valid_values</strong></a>(self, attr)</dt><dd><tt>get the legal arguments for the setter associated with attr<br>
@@ -251,7 +281,7 @@
Eg, for a line linestyle, return<br>
[ '-' | '--' | '-.' | ':' | 'steps' | 'None' ]</tt></dd></dl>
-<dl><dt><a name="ArtistInspector-is_alias"><strong>is_alias</strong></a>(self, o)</dt><dd><tt>return true if method object o is an alias for another function</tt></dd></dl>
+<dl><dt><a name="ArtistInspector-is_alias"><strong>is_alias</strong></a>(self, o)</dt><dd><tt>return true if method <a href="__builtin__.html#object">object</a> o is an alias for another function</tt></dd></dl>
<dl><dt><a name="ArtistInspector-pprint_getters"><strong>pprint_getters</strong></a>(self)</dt><dd><tt>return the getters and actual values as list of strings'</tt></dd></dl>
@@ -305,8 +335,8 @@
linewidth or lw = 2</tt></dd></dl>
<dl><dt><a name="-kwdoc"><strong>kwdoc</strong></a>(a)</dt></dl>
<dl><dt><a name="-setp"><strong>setp</strong></a>(h, *args, **kwargs)</dt><dd><tt>matplotlib supports the use of setp ("set property") and getp to set<br>
-and get object properties, as well as to do introspection on the<br>
-object For example, to set the linestyle of a line to be dashed, you<br>
+and get <a href="__builtin__.html#object">object</a> properties, as well as to do introspection on the<br>
+<a href="__builtin__.html#object">object</a> For example, to set the linestyle of a line to be dashed, you<br>
can do<br>
<br>
>>> line, = plot([1,2,3])<br>
Modified: trunk/htdocs/matplotlib.axes.html.template
===================================================================
--- trunk/htdocs/matplotlib.axes.html.template 2008-05-30 17:30:59 UTC (rev 5326)
+++ trunk/htdocs/matplotlib.axes.html.template 2008-05-30 17:34:24 UTC (rev 5327)
@@ -4,7 +4,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="matplotlib.html"><font color="#ffffff">matplotlib</font></a>.axes</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jdhunter/dev/lib/python2.5/site-packages/matplotlib/axes.py">/home/jdhunter/dev/lib/python2.5/site-packages/matplotlib/axes.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jdhunter/dev/lib64/python2.5/site-packages/matplotlib/axes.py">/home/jdhunter/dev/lib64/python2.5/site-packages/matplotlib/axes.py</a></font></td></tr></table>
<p></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -13,31 +13,30 @@
<font color="#fffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="matplotlib.agg.html">matplotlib.agg</a><br>
-<a href="matplotlib.cbook.html">matplotlib.cbook</a><br>
-<a href="matplotlib.cm.html">matplotlib.cm</a><br>
+<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="matplotlib.cbook.html">matplotlib.cbook</a><br>
<a href="matplotlib.font_manager.html">matplotlib.font_manager</a><br>
-<a href="matplotlib.numerix.npyma.html">matplotlib.numerix.npyma</a><br>
+<a href="numpy.ma.html">numpy.ma</a><br>
<a href="matplotlib.artist.html">matplotlib.artist</a><br>
<a href="math.html">math</a><br>
-</td><td width="25%" valign=top><a href="matplotlib.html">matplotlib</a><br>
+<a href="matplotlib.html">matplotlib</a><br>
<a href="matplotlib.axis.html">matplotlib.axis</a><br>
-<a href="matplotlib.collections.html">matplotlib.collections</a><br>
+</td><td width="25%" valign=top><a href="matplotlib.collections.html">matplotlib.collections</a><br>
<a href="matplotlib.colors.html">matplotlib.colors</a><br>
<a href="matplotlib.contour.html">matplotlib.contour</a><br>
<a href="matplotlib.dates.html">matplotlib.dates</a><br>
<a href="matplotlib.image.html">matplotlib.image</a><br>
-</td><td width="25%" valign=top><a href="matplotlib.mlab.html">matplotlib.mlab</a><br>
+<a href="matplotlib.mlab.html">matplotlib.mlab</a><br>
<a href="matplotlib.legend.html">matplotlib.legend</a><br>
-<a href="matplotlib.lines.html">matplotlib.lines</a><br>
+</td><td width="25%" valign=top><a href="matplotlib.lines.html">matplotlib.lines</a><br>
<a href="matplotlib.patches.html">matplotlib.patches</a><br>
<a href="matplotlib.quiver.html">matplotlib.quiver</a><br>
+<a href="matplotlib.scale.html">matplotlib.scale</a><br>
<a href="matplotlib.table.html">matplotlib.table</a><br>
<a href="matplotlib.text.html">matplotlib.text</a><br>
-</td><td width="25%" valign=top><a href="matplotlib.ticker.html">matplotlib.ticker</a><br>
-<a href="matplotlib.transforms.html">matplotlib.transforms</a><br>
+<a href="matplotlib.ticker.html">matplotlib.ticker</a><br>
+</td><td width="25%" valign=top><a href="matplotlib.transforms.html">matplotlib.transforms</a><br>
+<a href="new.html">new</a><br>
<a href="numpy.html">numpy</a><br>
-<a href="sys.html">sys</a><br>
<a href="warnings.html">warnings</a><br>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -47,22 +46,16 @@
<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="matplotlib.artist.html#Artist">matplotlib.artist.Artist</a>
+<dt><font face="helvetica, arial"><a href="matplotlib.artist.html#Artist">matplotlib.artist.Artist</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="matplotlib.axes.html#Axes">Axes</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="matplotlib.axes.html#PolarAxes">PolarAxes</a>
</font></dt></dl>
</dd>
-</dl>
-</dd>
<dt><font face="helvetica, arial"><a href="matplotlib.axes.html#SubplotBase">SubplotBase</a>
</font></dt><dd>
<dl>
-<dt><font face="helvetica, arial"><a href="matplotlib.axes.html#PolarSubplot">PolarSubplot</a>(<a href="matplotlib.axes.html#SubplotBase">SubplotBase</a>, <a href="matplotlib.axes.html#PolarAxes">PolarAxes</a>)
-</font></dt><dt><font face="helvetica, arial"><a href="matplotlib.axes.html#Subplot">Subplot</a>(<a href="matplotlib.axes.html#SubplotBase">SubplotBase</a>, <a href="matplotlib.axes.html#Axes">Axes</a>)
+<dt><font face="helvetica, arial">AxesSubplot(<a href="matplotlib.axes.html#SubplotBase">SubplotBase</a>, <a href="matplotlib.axes.html#Axes">Axes</a>)
</font></dt></dl>
</dd>
</dl>
@@ -81,48 +74,27 @@
connect to are 'xlim_changed' and 'ylim_changed' and the callback<br>
will be called with func(ax) where ax is the <a href="#Axes">Axes</a> instance<br> </tt></td></tr>
<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Axes-__init__"><strong>__init__</strong></a>(self, fig, rect, axisbg<font color="#909090">=None</font>, frameon<font color="#909090">=True</font>, sharex<font color="#909090">=None</font>, sharey<font color="#909090">=None</font>, label<font color="#909090">=''</font>, **kwargs)</dt><dd><tt>Build an <a href="#Axes">Axes</a> instance in Figure with<br>
-rect=[left, bottom, width,height in Figure coords<br>
- <br>
-adjustable: ['box' | 'datalim']<br>
-alpha: the alpha transparency<br>
-anchor: ['C', 'SW', 'S', 'SE', 'E', 'NE', 'N', 'NW', 'W']<br>
-aspect: ['auto' | 'equal' | aspect_ratio]<br>
-autoscale_on: boolean - whether or not to autoscale the viewlim<br>
-axis_bgcolor: any matplotlib color - see help(colors)<br>
-axisbelow: draw the grids and ticks below the other artists<br>
-cursor_props: a (float, color) tuple<br>
-figure: a Figure instance<br>
-frame_on: a boolean - draw the axes frame<br>
-label: the axes label<br>
-navigate: True|False<br>
-navigate_mode: the navigation toolbar button status: 'PAN', 'ZOOM', or None<br>
-position: [left, bottom, width,height in Figure coords<br>
-sharex : an <a href="#Axes">Axes</a> instance to share the x-axis with<br>
-sharey : an <a href="#Axes">Axes</a> instance to share the y-axis with<br>
-title: the title string<br>
-visible: a boolean - whether the axes is visible<br>
-xlabel: the xlabel<br>
-xlim: (xmin, xmax) view limits<br>
-xscale: ['log' | 'linear' ]<br>
-xticklabels: sequence of strings<br>
-xticks: sequence of floats<br>
-ylabel: the ylabel strings<br>
-ylim: (ymin, ymax) view limits<br>
-yscale: ['log' | 'linear']<br>
-yticklabels: sequence of strings<br>
-yticks: sequence of floats</tt></dd></dl>
+<td width="100%"><dl><dt>Method resolution order:</dt>
+<dd><a href="matplotlib.axes.html#Axes">Axes</a></dd>
+<dd><a href="matplotlib.artist.html#Artist">matplotlib.artist.Artist</a></dd>
+<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
+</dl>
+<hr>
+Methods defined here:<br>
+<dl><dt><a name="Axes-__init__"><strong>__init__</strong></a>(self, fig, rect, axisbg<font color="#909090">=None</font>, frameon<font color="#909090">=True</font>, sharex<font color="#909090">=None</font>, sharey<font color="#909090">=None</font>, label<font color="#909090">=''</font>, **kwargs)</dt></dl>
<dl><dt><a name="Axes-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-<dl><dt><a name="Axes-acorr"><strong>acorr</strong></a>(self, x, **kwargs)</dt><dd><tt>ACORR(x, normed=False, detrend=mlab.detrend_none, usevlines=False,<br>
- maxlags=None, **kwargs)<br>
+<dl><dt><a name="Axes-acorr"><strong>acorr</strong></a>(self, x, **kwargs)</dt><dd><tt>call signature::<br>
+ <br>
+ <a href="#Axes-acorr">acorr</a>(x, normed=False, detrend=mlab.detrend_none, usevlines=False,<br>
+ maxlags=None, **kwargs)<br>
+ <br>
Plot the autocorrelation of x. If normed=True, normalize the<br>
data but the autocorrelation at 0-th lag. x is detrended by<br>
the detrend callable (default no normalization.<br>
<br>
-data are plotted as <a href="#Axes-plot">plot</a>(lags, c, **kwargs)<br>
+data are plotted as ``<a href="#Axes-plot">plot</a>(lags, c, **kwargs)``<br>
<br>
return value is lags, c, line where lags are a length<br>
2*maxlags+1 lag vector, c is the 2*maxlags+1 auto correlation<br>
@@ -148,7 +120,7 @@
<dl><dt><a name="Axes-add_artist"><strong>add_artist</strong></a>(self, a)</dt><dd><tt>Add any artist to the axes</tt></dd></dl>
-<dl><dt><a name="Axes-add_collection"><strong>add_collection</strong></a>(self, collection, autolim<font color="#909090">=False</font>)</dt><dd><tt>add a Collection instance to <a href="#Axes">Axes</a></tt></dd></dl>
+<dl><dt><a name="Axes-add_collection"><strong>add_collection</strong></a>(self, collection, autolim<font color="#909090">=True</font>)</dt><dd><tt>add a Collection instance to <a href="#Axes">Axes</a></tt></dd></dl>
<dl><dt><a name="Axes-add_line"><strong>add_line</strong></a>(self, line)</dt><dd><tt>Add a line to the list of plot lines</tt></dd></dl>
@@ -158,13 +130,15 @@
<dl><dt><a name="Axes-add_table"><strong>add_table</strong></a>(self, tab)</dt><dd><tt>Add a table instance to the list of axes tables</tt></dd></dl>
-<dl><dt><a name="Axes-annotate"><strong>annotate</strong></a>(self, *args, **kwargs)</dt><dd><tt><a href="#Axes-annotate">annotate</a>(s, xy,<br>
- xytext=None,<br>
- xycoords='data',<br>
- textcoords='data',<br>
- arrowprops=None,<br>
- **props)<br>
+<dl><dt><a name="Axes-annotate"><strong>annotate</strong></a>(self, *args, **kwargs)</dt><dd><tt>call signature::<br>
<br>
+ <a href="#Axes-annotate">annotate</a>(s, xy,<br>
+ xytext=None,<br>
+ xycoords='data',<br>
+ textcoords='data',<br>
+ arrowprops=None,<br>
+ **props)<br>
+ <br>
Annotate the x,y point xy with text s at x,y location xytext<br>
(xytext if None defaults to xy and textcoords if None defaults<br>
to xycoords).<br>
@@ -173,36 +147,47 @@
(see matplotlib.lines.Line2D) for the arrow that connects<br>
annotation to the point. Valid keys are<br>
<br>
- - width : the width of the arrow in points<br>
- - frac : the fraction of the arrow lengt...
[truncated message content] |
|
From: <jd...@us...> - 2008-05-30 17:31:02
|
Revision: 5326
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5326&view=rev
Author: jdh2358
Date: 2008-05-30 10:30:59 -0700 (Fri, 30 May 2008)
Log Message:
-----------
added ellipse demo
Added Paths:
-----------
trunk/htdocs/screenshots/ellipse_large.py
Added: trunk/htdocs/screenshots/ellipse_large.py
===================================================================
--- trunk/htdocs/screenshots/ellipse_large.py (rev 0)
+++ trunk/htdocs/screenshots/ellipse_large.py 2008-05-30 17:30:59 UTC (rev 5326)
@@ -0,0 +1,149 @@
+
+# This example can be boiled down to a more simplistic example
+# to show the problem, but bu including the upper and lower
+# bound ellipses, it demonstrates how significant this error
+# is to our plots.
+
+import math
+from pylab import *
+from matplotlib.patches import Ellipse, Arc
+
+# given a point x, y
+x = 2692.440
+y = 6720.850
+
+# get is the radius of a circle through this point
+r = math.sqrt( x*x+y*y )
+
+# show some comparative circles
+delta = 6
+
+
+##################################################
+def custom_ellipse( ax, x, y, major, minor, theta, numpoints = 750, **kwargs ):
+ xs = []
+ ys = []
+ incr = 2.0*math.pi / numpoints
+ incrTheta = 0.0
+ while incrTheta <= (2.0*math.pi):
+ a = major * math.cos( incrTheta )
+ b = minor * math.sin( incrTheta )
+ l = math.sqrt( ( a**2 ) + ( b**2 ) )
+ phi = math.atan2( b, a )
+ incrTheta += incr
+
+ xs.append( x + ( l * math.cos( theta + phi ) ) )
+ ys.append( y + ( l * math.sin( theta + phi ) ) )
+ # end while
+
+ incrTheta = 2.0*math.pi
+ a = major * math.cos( incrTheta )
+ b = minor * math.sin( incrTheta )
+ l = sqrt( ( a**2 ) + ( b**2 ) )
+ phi = math.atan2( b, a )
+ xs.append( x + ( l * math.cos( theta + phi ) ) )
+ ys.append( y + ( l * math.sin( theta + phi ) ) )
+
+ ellipseLine = ax.plot( xs, ys, **kwargs )
+
+
+
+
+##################################################
+# make the axes
+ax1 = subplot( 311, aspect='equal' )
+ax1.set_aspect( 'equal', 'datalim' )
+
+# make the lower-bound ellipse
+diam = (r - delta) * 2.0
+lower_ellipse = Ellipse( (0.0, 0.0), diam, diam, 0.0, fill=False, edgecolor="darkgreen" )
+ax1.add_patch( lower_ellipse )
+
+# make the target ellipse
+diam = r * 2.0
+target_ellipse = Ellipse( (0.0, 0.0), diam, diam, 0.0, fill=False, edgecolor="darkred" )
+ax1.add_patch( target_ellipse )
+
+# make the upper-bound ellipse
+diam = (r + delta) * 2.0
+upper_ellipse = Ellipse( (0.0, 0.0), diam, diam, 0.0, fill=False, edgecolor="darkblue" )
+ax1.add_patch( upper_ellipse )
+
+# make the target
+diam = delta * 2.0
+target = Ellipse( (x, y), diam, diam, 0.0, fill=False, edgecolor="#DD1208" )
+ax1.add_patch( target )
+
+# give it a big marker
+ax1.plot( [x], [y], marker='x', linestyle='None', mfc='red', mec='red', markersize=10 )
+
+##################################################
+# make the axes
+ax = subplot( 312, aspect='equal' , sharex=ax1, sharey=ax1)
+ax.set_aspect( 'equal', 'datalim' )
+
+# make the lower-bound arc
+diam = (r - delta) * 2.0
+lower_arc = Arc( (0.0, 0.0), diam, diam, 0.0, fill=False, edgecolor="darkgreen" )
+ax.add_patch( lower_arc )
+
+# make the target arc
+diam = r * 2.0
+target_arc = Arc( (0.0, 0.0), diam, diam, 0.0, fill=False, edgecolor="darkred" )
+ax.add_patch( target_arc )
+
+# make the upper-bound arc
+diam = (r + delta) * 2.0
+upper_arc = Arc( (0.0, 0.0), diam, diam, 0.0, fill=False, edgecolor="darkblue" )
+ax.add_patch( upper_arc )
+
+# make the target
+diam = delta * 2.0
+target = Arc( (x, y), diam, diam, 0.0, fill=False, edgecolor="#DD1208" )
+ax.add_patch( target )
+
+# give it a big marker
+ax.plot( [x], [y], marker='x', linestyle='None', mfc='red', mec='red', markersize=10 )
+
+
+
+
+
+##################################################
+# now lets do the same thing again using a custom ellipse function
+
+
+
+# make the axes
+ax = subplot( 313, aspect='equal', sharex=ax1, sharey=ax1 )
+ax.set_aspect( 'equal', 'datalim' )
+
+# make the lower-bound ellipse
+custom_ellipse( ax, 0.0, 0.0, r-delta, r-delta, 0.0, color="darkgreen" )
+
+# make the target ellipse
+custom_ellipse( ax, 0.0, 0.0, r, r, 0.0, color="darkred" )
+
+# make the upper-bound ellipse
+custom_ellipse( ax, 0.0, 0.0, r+delta, r+delta, 0.0, color="darkblue" )
+
+# make the target
+custom_ellipse( ax, x, y, delta, delta, 0.0, color="#BB1208" )
+
+# give it a big marker
+ax.plot( [x], [y], marker='x', linestyle='None', mfc='red', mec='red', markersize=10 )
+
+
+# give it a big marker
+ax.plot( [x], [y], marker='x', linestyle='None', mfc='red', mec='red', markersize=10 )
+
+##################################################
+# lets zoom in to see the area of interest
+
+ax1.set_xlim(2650, 2735)
+ax1.set_ylim(6705, 6735)
+
+savefig("ellipse")
+show()
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ds...@us...> - 2008-05-30 17:29:27
|
Revision: 5325
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5325&view=rev
Author: dsdale
Date: 2008-05-30 10:29:25 -0700 (Fri, 30 May 2008)
Log Message:
-----------
temporary hack to make mathpng extension work with the way we organized
doc/
Modified Paths:
--------------
trunk/matplotlib/doc/sphinxext/mathpng.py
Modified: trunk/matplotlib/doc/sphinxext/mathpng.py
===================================================================
--- trunk/matplotlib/doc/sphinxext/mathpng.py 2008-05-30 17:11:35 UTC (rev 5324)
+++ trunk/matplotlib/doc/sphinxext/mathpng.py 2008-05-30 17:29:25 UTC (rev 5325)
@@ -100,6 +100,7 @@
for i in range(count):
if os.path.exists(path): break
path = '../'+path
+ path = '../'+path #specifically added for matplotlib
if inline and '_' in latex:
align = 'align="absmiddle" '
else:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-05-30 17:11:40
|
Revision: 5324
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5324&view=rev
Author: jdh2358
Date: 2008-05-30 10:11:35 -0700 (Fri, 30 May 2008)
Log Message:
-----------
removed the pngs from svn; they can be autogenerated
Removed Paths:
-------------
trunk/htdocs/screenshots/align_text_large.png
trunk/htdocs/screenshots/align_text_small.png
trunk/htdocs/screenshots/axes_demo_large.png
trunk/htdocs/screenshots/axes_demo_small.png
trunk/htdocs/screenshots/barchart_demo_large.png
trunk/htdocs/screenshots/barchart_demo_small.png
trunk/htdocs/screenshots/contour_small.png
trunk/htdocs/screenshots/date_demo_large.png
trunk/htdocs/screenshots/date_demo_small.png
trunk/htdocs/screenshots/eeg_large.png
trunk/htdocs/screenshots/eeg_small.png
trunk/htdocs/screenshots/fill_demo_large.png
trunk/htdocs/screenshots/fill_demo_small.png
trunk/htdocs/screenshots/finance_work2_large.png
trunk/htdocs/screenshots/finance_work2_small.png
trunk/htdocs/screenshots/histogram_demo_large.png
trunk/htdocs/screenshots/histogram_demo_small.png
trunk/htdocs/screenshots/layer_images_large.png
trunk/htdocs/screenshots/layer_images_small.png
trunk/htdocs/screenshots/legend_demo_large.png
trunk/htdocs/screenshots/legend_demo_small.png
trunk/htdocs/screenshots/log_shot.png
trunk/htdocs/screenshots/log_shot_large.png
trunk/htdocs/screenshots/log_shot_small.png
trunk/htdocs/screenshots/logo.png
trunk/htdocs/screenshots/mathtext_demo_large.png
trunk/htdocs/screenshots/mathtext_demo_small.png
trunk/htdocs/screenshots/mri_with_eeg_large.png
trunk/htdocs/screenshots/mri_with_eeg_small.png
trunk/htdocs/screenshots/pcolor_demo_large.png
trunk/htdocs/screenshots/pcolor_demo_small.png
trunk/htdocs/screenshots/pfm-lsm.png
trunk/htdocs/screenshots/pie_demo_large.png
trunk/htdocs/screenshots/pie_demo_small.png
trunk/htdocs/screenshots/plotmap_large.png
trunk/htdocs/screenshots/plotmap_small.png
trunk/htdocs/screenshots/polar_demo_large.png
trunk/htdocs/screenshots/polar_demo_small.png
trunk/htdocs/screenshots/scatter_demo2_large.png
trunk/htdocs/screenshots/scatter_demo2_small.png
trunk/htdocs/screenshots/simple_plot_large.png
trunk/htdocs/screenshots/simple_plot_small.png
trunk/htdocs/screenshots/slider_demo_large.png
trunk/htdocs/screenshots/slider_demo_small.png
trunk/htdocs/screenshots/subplot_demo_large.png
trunk/htdocs/screenshots/subplot_demo_small.png
trunk/htdocs/screenshots/table_demo_large.png
trunk/htdocs/screenshots/table_demo_small.png
trunk/htdocs/screenshots/tex_demo_large.png
trunk/htdocs/screenshots/tex_demo_small.png
trunk/htdocs/screenshots/text_themes_large.png
trunk/htdocs/screenshots/text_themes_small.png
trunk/htdocs/screenshots/wheeler_demo_large.png
trunk/htdocs/screenshots/wheeler_demo_small.png
Deleted: trunk/htdocs/screenshots/align_text_large.png
===================================================================
(Binary files differ)
Deleted: trunk/htdocs/screenshots/align_text_small.png
===================================================================
(Binary files differ)
Deleted: trunk/htdocs/screenshots/axes_demo_large.png
===================================================================
(Binary files differ)
Deleted: trunk/htdocs/screenshots/axes_demo_small.png
===================================================================
(Binary files differ)
Deleted: trunk/htdocs/screenshots/barchart_demo_large.png
===================================================================
(Binary files differ)
Deleted: trunk/htdocs/screenshots/barchart_demo_small.png
===================================================================
(Binary files differ)
Deleted: trunk/htdocs/screenshots/contour_small.png
===================================================================
--- trunk/htdocs/screenshots/contour_small.png 2008-05-30 17:09:53 UTC (rev 5323)
+++ trunk/htdocs/screenshots/contour_small.png 2008-05-30 17:11:35 UTC (rev 5324)
@@ -1,656 +0,0 @@
-\x89PNG
-
- |
|
From: <jd...@us...> - 2008-05-30 17:10:07
|
Revision: 5323
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5323&view=rev
Author: jdh2358
Date: 2008-05-30 10:09:53 -0700 (Fri, 30 May 2008)
Log Message:
-----------
updated hst and other demos
Modified Paths:
--------------
trunk/htdocs/screenshots/align_text_large.png
trunk/htdocs/screenshots/align_text_small.png
trunk/htdocs/screenshots/axes_demo_large.png
trunk/htdocs/screenshots/axes_demo_small.png
trunk/htdocs/screenshots/barchart_demo_large.png
trunk/htdocs/screenshots/barchart_demo_small.png
trunk/htdocs/screenshots/date_demo_large.png
trunk/htdocs/screenshots/date_demo_small.png
trunk/htdocs/screenshots/fill_demo_large.png
trunk/htdocs/screenshots/fill_demo_small.png
trunk/htdocs/screenshots/finance_work2.py
trunk/htdocs/screenshots/finance_work2_large.png
trunk/htdocs/screenshots/finance_work2_small.png
trunk/htdocs/screenshots/histogram_demo_large.png
trunk/htdocs/screenshots/histogram_demo_small.png
trunk/htdocs/screenshots/hstdemo.py
trunk/htdocs/screenshots/layer_images_large.png
trunk/htdocs/screenshots/layer_images_small.png
trunk/htdocs/screenshots/legend_demo_large.png
trunk/htdocs/screenshots/legend_demo_small.png
trunk/htdocs/screenshots/log_shot_large.png
trunk/htdocs/screenshots/log_shot_small.png
trunk/htdocs/screenshots/makeshots.py
trunk/htdocs/screenshots/mathtext_demo_large.png
trunk/htdocs/screenshots/mathtext_demo_small.png
trunk/htdocs/screenshots/mathtext_examples.py
trunk/htdocs/screenshots/mri_with_eeg.py
trunk/htdocs/screenshots/mri_with_eeg_large.png
trunk/htdocs/screenshots/mri_with_eeg_small.png
trunk/htdocs/screenshots/pcolor_demo_large.png
trunk/htdocs/screenshots/pcolor_demo_small.png
trunk/htdocs/screenshots/pfm-lsm.png
trunk/htdocs/screenshots/pie_demo_large.png
trunk/htdocs/screenshots/pie_demo_small.png
trunk/htdocs/screenshots/plotmap_large.png
trunk/htdocs/screenshots/plotmap_small.png
trunk/htdocs/screenshots/polar_demo.py
trunk/htdocs/screenshots/polar_demo_large.png
trunk/htdocs/screenshots/polar_demo_small.png
trunk/htdocs/screenshots/scatter_demo2_large.png
trunk/htdocs/screenshots/scatter_demo2_small.png
trunk/htdocs/screenshots/simple_plot_large.png
trunk/htdocs/screenshots/simple_plot_small.png
trunk/htdocs/screenshots/slider_demo_large.png
trunk/htdocs/screenshots/slider_demo_small.png
trunk/htdocs/screenshots/table_demo.py
trunk/htdocs/screenshots/table_demo_large.png
trunk/htdocs/screenshots/table_demo_small.png
trunk/htdocs/screenshots/tex_demo_large.png
trunk/htdocs/screenshots/tex_demo_small.png
trunk/htdocs/screenshots/text_themes_large.png
trunk/htdocs/screenshots/text_themes_small.png
trunk/htdocs/screenshots/wheeler_demo_large.png
trunk/htdocs/screenshots/wheeler_demo_small.png
Modified: trunk/htdocs/screenshots/align_text_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/align_text_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/axes_demo_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/axes_demo_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/barchart_demo_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/barchart_demo_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/date_demo_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/date_demo_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/fill_demo_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/fill_demo_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/finance_work2.py
===================================================================
--- trunk/htdocs/screenshots/finance_work2.py 2008-05-30 16:58:02 UTC (rev 5322)
+++ trunk/htdocs/screenshots/finance_work2.py 2008-05-30 17:09:53 UTC (rev 5323)
@@ -82,9 +82,9 @@
rect2 = [left, 0.3, width, 0.4]
rect3 = [left, 0.1, width, 0.2]
axUpper = axes(rect1, axisbg=axesBG) #left, bottom, width, height
-axMiddle = axes(rect2, axisbg=axesBG)
-axMiddleVol = axes(rect2, axisbg=axesBG, frameon=False) # the volume overlay
-axLower = axes(rect3, axisbg=axesBG)
+axMiddle = axes(rect2, axisbg=axesBG, sharex=axUpper)
+axMiddleVol = axes(rect2, axisbg=axesBG, frameon=False, sharex=axUpper) # the volume overlay
+axLower = axes(rect3, axisbg=axesBG, sharex=axUpper)
axUpper.xaxis.set_major_locator( get_locator() )
@@ -145,7 +145,7 @@
if 1: ############### Middle axes #################
#plot_day_summary2(axMiddle, opens, closes, highs, lows)
- candlestick2(axMiddle, opens, closes, highs, lows)
+ candlestick2(axMiddle, opens, closes, highs, lows, width=0.9)
# specify the text in axes (0,1) coords. 0,0 is lower left and 1,1 is
# upper right
@@ -215,7 +215,11 @@
allAxes = (axUpper, axMiddle, axMiddleVol, axLower)
xlim = 0, len(quotes)
for a in allAxes:
- a.dataLim.intervalx().set_bounds(*xlim)
+ #a.dataLim.intervalx = xlim
a.set_xlim(xlim)
+for ax in axUpper, axMiddle:
+ for ticklabel in ax.get_xticklabels():
+ ticklabel.set_visible(False)
+
show()
Modified: trunk/htdocs/screenshots/finance_work2_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/finance_work2_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/histogram_demo_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/histogram_demo_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/hstdemo.py
===================================================================
--- trunk/htdocs/screenshots/hstdemo.py 2008-05-30 16:58:02 UTC (rev 5322)
+++ trunk/htdocs/screenshots/hstdemo.py 2008-05-30 17:09:53 UTC (rev 5323)
@@ -1,73 +1,61 @@
"""Demo of image with contour overlay
-This demo displays an HST image of NGC 1275 taken with three different
-filters combined as an RGB image with contours of an aligned Chandra
-X-Ray image (smoothed) of the same object overplotted
+This demo displays an HST image of NGC 1275 taken with three different filters
+combined as an RGB image with contours of an aligned Chandra X-Ray image (smoothed)
+of the same object overplotted
-The data for the images are stored as simple binary files and the
-necessary shape and type info is added by the loaddata function (as
-well as decompression for the HST image).
+The data for the images are stored as simple binary files and the necessary shape
+and type info is added by the loaddata function (as well as decompression for the
+HST image).
-The demo creates a figure window that is the size of the HST image in
-pixels so that no resampling is done, scales the plot window (axes) to
-fill the figure window. Resizing the window will modify the aspect
-ratio, but correspondence between the HST image and contour image will
-always be correct
+The demo creates a figure window that is the size of the HST image in pixels so that
+no resampling is done, scales the plot window (axes) to fill the figure window.
+Resizing the window will modify the aspect ratio, but correspondence between the
+HST image and contour image will always be correct
-The HST image was obtained from the Hubble Heritage web pages
+The HST image was obtained from the Hubble Heritage web pages
(http://heritage.stsci.edu/2003/14/index.html)
(Credits: NASA and The Hubble Heritage Team (STScI/AURA))
The Chandra image was obtained from the Chandra web site
http://chandra.harvard.edu/photo/2000/perseus/index.html
(Credits: NASA/CXC/SAo)
"""
-from pylab import *
-import matplotlib.cm as cm
-import matplotlib.numerix as n
-import zlib
-import sys
+import sys, zlib
+import numpy as np
+import matplotlib.pyplot as plt
-from pylab import savefig
-
-def load_hst_data():
+def loaddata():
"""reconstruct the numerix arrays from the data files"""
-
- #hst = n.fromfile('hst.dat',typecode=n.UInt8, shape=(812,592,3))/255.
-
- str = open('data/hst.zdat').read()
- dstr = zlib.decompress(str)
- hst = n.fromstring(dstr, n.UInt8)
+ #hst = np.fromfile('hst.dat',typecode=np.UInt8, shape=(812,592,3))/255.
+ s = file('hst.zdat').read()
+ dstr = zlib.decompress(s)
+ hst = np.fromstring(dstr, np.uint8)
hst.shape = (812, 592, 3)
hst = hst/255.
- str = open('data/chandra.dat').read()
- chandra = n.fromstring(str, n.Int16)
+ s = file('chandra.dat').read()
+ chandra = np.fromstring(s, np.int16)
chandra.shape = (812,592)
if sys.byteorder == 'little':
- chandra = chandra.byteswapped()
-
+ chandra = chandra.byteswap()
# note that both HST and Chandra data are normalized to be between 0 and 1
return hst, chandra/16000.
def hstdemo():
- rc('image',origin='lower') # correct display requires setting origin to this
- hst, chandra = load_hst_data()
+ plt.rc('image',origin='lower') # correct display requires setting origin to this
+ hst, chandra = loaddata()
# set size of figure window to be exactly that of the image so no resampling is done
h, w, d = hst.shape
dpi=80.
- figure(figsize=(w/dpi, h/dpi), dpi=dpi)
+ plt.figure(figsize=(w/dpi, h/dpi), dpi=dpi)
# set plot region to full window size
- axes((0,0,1,1))
+ plt.axes((0,0,1,1))
# display rgb HST image
- imshow(hst)
+ plt.imshow(hst)
# overplot X-ray contour map
- contour(chandra, [.95,.85, .6], linewidths=2, cmap=cm.hot)
- clim(0,1.1)
- legend(loc='lower right')
- text(160, 75, 'HST image of NGC 1275\n with Chandra X-Ray contours',
+ plt.contour(chandra, [.95,.85, .6])
+ plt.legend()
+ plt.text(160, 75, 'HST image of NGC 1275\n with Chandra X-Ray contours',
color='white', size=22)
-
-
hstdemo()
-savefig('hstdemo')
-show()
+plt.show()
Modified: trunk/htdocs/screenshots/layer_images_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/layer_images_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/legend_demo_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/legend_demo_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/log_shot_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/log_shot_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/makeshots.py
===================================================================
--- trunk/htdocs/screenshots/makeshots.py 2008-05-30 16:58:02 UTC (rev 5322)
+++ trunk/htdocs/screenshots/makeshots.py 2008-05-30 17:09:53 UTC (rev 5323)
@@ -32,6 +32,7 @@
'pie_demo.py' : default,
'plotmap.py' : default,
'hstdemo.py' : default,
+ 'path_patch_demo.py' : default,
}
Modified: trunk/htdocs/screenshots/mathtext_demo_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/mathtext_demo_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/mathtext_examples.py
===================================================================
--- trunk/htdocs/screenshots/mathtext_examples.py 2008-05-30 16:58:02 UTC (rev 5322)
+++ trunk/htdocs/screenshots/mathtext_examples.py 2008-05-30 17:09:53 UTC (rev 5323)
@@ -40,7 +40,7 @@
r"$f^'$",
r'$\frac{x_2888}{y}$',
r"$\sqrt[3]{\frac{X_2}{Y}}=5$",
- r"$\sqrt[5x\pi]{\prod^\frac{x}{2\pi^2}_\infty}$",
+ r"$\sqrt[5]{\prod^\frac{x}{2\pi^2}_\infty}$",
r"$\sqrt[3]{x}=5$",
r'$\frac{X}{\frac{X}{Y}}$',
# From UTR #25
@@ -49,7 +49,7 @@
r'$\widehat{abc}\widetilde{def}$',
r'$\Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega$',
r'$\alpha \beta \gamma \delta \epsilon \zeta \eta \theta \iota \lambda \mu \nu \xi \pi \kappa \rho \sigma \tau \upsilon \phi \chi \psi$',
- #ur'Generic symbol: $\u23ce \mathrm{\ue0f2 \U0001D538}$'
+ ur'Generic symbol: $\u23ce \mathrm{\ue0f2 \U0001D538}$'
]
from pylab import *
Modified: trunk/htdocs/screenshots/mri_with_eeg.py
===================================================================
--- trunk/htdocs/screenshots/mri_with_eeg.py 2008-05-30 16:58:02 UTC (rev 5322)
+++ trunk/htdocs/screenshots/mri_with_eeg.py 2008-05-30 17:09:53 UTC (rev 5323)
@@ -4,24 +4,21 @@
faster*
"""
from __future__ import division
-import numpy
-
from pylab import *
from matplotlib.lines import Line2D
-from matplotlib.transforms import get_bbox_transform, Point, Value, Bbox,\
- unit_bbox
+from matplotlib.transforms import Bbox, BboxTransform, BboxTransformTo, Affine2D
# I use if 1 to break up the different regions of code visually
if 1: # load the data
# data are 256x256 16 bit integers
dfile = 'data/s1045.ima'
- im = fromstring(file(dfile, 'rb').read(), numpy.uint16).astype(numpy.float)
+ im = fromstring(file(dfile, 'rb').read(), uint16).astype(float)
im.shape = 256, 256
if 1: # plot the MRI in pcolor
subplot(221)
- imshow(im)
+ imshow(im, cmap=cm.jet)
axis('off')
if 1: # plot the histogram of MRI intensity
@@ -30,44 +27,39 @@
im = take(im, nonzero(im)) # ignore the background
im = im/(2.0**15) # normalize
hist(im, 100)
- xticks([])
+ xticks([-1, -.5, 0, .5, 1])
yticks([])
xlabel('intensity')
ylabel('MRI density')
if 1: # plot the EEG
# load the data
+
numSamples, numRows = 800,4
- data = fromstring(file('data/eeg.dat', 'rb').read(), numpy.float)
+ data = fromstring(file('data/eeg.dat', 'rb').read(), float)
data.shape = numSamples, numRows
t = arange(numSamples)/float(numSamples)*10.0
ticklocs = []
ax = subplot(212)
+ xlim(0,10)
+ xticks(arange(10))
- boxin = Bbox(
- Point(ax.viewLim.ll().x(), Value(-20)),
- Point(ax.viewLim.ur().x(), Value(20)))
+ boxin = Bbox.from_extents(ax.viewLim.x0, -20, ax.viewLim.x1, 20)
+ height = ax.bbox.height
+ boxout = Bbox.from_extents(ax.bbox.x0, -1.0 * height,
+ ax.bbox.x1, 1.0 * height)
- height = ax.bbox.ur().y() - ax.bbox.ll().y()
- boxout = Bbox(
- Point(ax.bbox.ll().x(), Value(-1)*height),
- Point(ax.bbox.ur().x(), Value(1) * height))
+ transOffset = BboxTransformTo(
+ Bbox.from_extents(0.0, ax.bbox.y0, 1.0, ax.bbox.y1))
- transOffset = get_bbox_transform(
- unit_bbox(),
- Bbox( Point( Value(0), ax.bbox.ll().y()),
- Point( Value(1), ax.bbox.ur().y())
- ))
-
-
for i in range(numRows):
# effectively a copy of transData
- trans = get_bbox_transform(boxin, boxout)
+ trans = BboxTransform(boxin, boxout)
offset = (i+1)/(numRows+1)
- trans.set_offset( (0, offset), transOffset)
+ trans += Affine2D().translate(*transOffset.transform_point((0, offset)))
thisLine = Line2D(
t, data[:,i]-data[0,i],
@@ -78,11 +70,8 @@
ax.add_line(thisLine)
ticklocs.append(offset)
- xlim(0,10)
- xticks(arange(10))
+ setp(gca(), 'yticklabels', ['PG3', 'PG5', 'PG7', 'PG9'])
- yticks(ticklocs, ['PG3', 'PG5', 'PG7', 'PG9'])
-
# set the yticks to use axes coords on the y axis
ax.set_yticks(ticklocs)
for tick in ax.yaxis.get_major_ticks():
Modified: trunk/htdocs/screenshots/mri_with_eeg_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/mri_with_eeg_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/pcolor_demo_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/pcolor_demo_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/pfm-lsm.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/pie_demo_large.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/pie_demo_small.png
===================================================================
(Binary files differ)
Modified: trunk/htdocs/screenshots/plotmap_large.png
===================================================================
--- trunk/htdocs/screenshots/plotmap_large.png 2008-05-30 16:58:02 UTC (rev 5322)
+++ trunk/htdocs/screenshots/plotmap_large.png 2008-05-30 17:09:53 UTC (rev 5323)
@@ -1,4333 +1,4195 @@
\x89PNG
|
|
From: <jd...@us...> - 2008-05-30 16:58:09
|
Revision: 5322
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5322&view=rev
Author: jdh2358
Date: 2008-05-30 09:58:02 -0700 (Fri, 30 May 2008)
Log Message:
-----------
updated path example
Modified Paths:
--------------
trunk/matplotlib/examples/api/path_patch_demo.py
trunk/matplotlib/examples/event_handling/path_editor.py
Modified: trunk/matplotlib/examples/api/path_patch_demo.py
===================================================================
--- trunk/matplotlib/examples/api/path_patch_demo.py 2008-05-30 16:57:43 UTC (rev 5321)
+++ trunk/matplotlib/examples/api/path_patch_demo.py 2008-05-30 16:58:02 UTC (rev 5322)
@@ -9,26 +9,28 @@
ax = fig.add_subplot(111)
pathdata = [
- (Path.MOVETO, (0, 0)),
- (Path.CURVE4, (-1, 0)),
- (Path.CURVE4, (-1, 1)),
- (Path.CURVE4, (0, 1)),
- (Path.LINETO, (2, 1)),
- (Path.CURVE4, (3, 1)),
- (Path.CURVE4, (3, 0)),
- (Path.CURVE4, (2, 0)),
- (Path.CLOSEPOLY, (0, 0)),
+ (Path.MOVETO, (1.58, -2.57)),
+ (Path.CURVE4, (0.35, -1.1)),
+ (Path.CURVE4, (-1.75, 2.0)),
+ (Path.CURVE4, (0.375, 2.0)),
+ (Path.LINETO, (0.85, 1.15)),
+ (Path.CURVE4, (2.2, 3.2)),
+ (Path.CURVE4, (3, 0.05)),
+ (Path.CURVE4, (2.0, -0.5)),
+ (Path.CLOSEPOLY, (1.58, -2.57)),
]
codes, verts = zip(*pathdata)
path = mpath.Path(verts, codes)
-patch = mpatches.PathPatch(path, facecolor='green', edgecolor='yellow', alpha=0.5)
+patch = mpatches.PathPatch(path, facecolor='red', edgecolor='yellow', alpha=0.5)
ax.add_patch(patch)
-
-ax.set_xlim(-5,5)
-ax.set_ylim(-5,5)
-
+x, y = zip(*path.vertices)
+line, = ax.plot(x, y, 'go-')
+ax.grid()
+ax.set_xlim(-3,4)
+ax.set_ylim(-3,4)
+ax.set_title('spline paths')
plt.show()
Modified: trunk/matplotlib/examples/event_handling/path_editor.py
===================================================================
--- trunk/matplotlib/examples/event_handling/path_editor.py 2008-05-30 16:57:43 UTC (rev 5321)
+++ trunk/matplotlib/examples/event_handling/path_editor.py 2008-05-30 16:58:02 UTC (rev 5322)
@@ -10,15 +10,15 @@
ax = fig.add_subplot(111)
pathdata = [
- (Path.MOVETO, (0, 0)),
- (Path.CURVE4, (-1, 0.1)),
- (Path.CURVE4, (-1, 0.9)),
- (Path.CURVE4, (0, 1)),
- (Path.LINETO, (2, 1)),
- (Path.CURVE4, (3, 0.9)),
- (Path.CURVE4, (3, 0.1)),
- (Path.CURVE4, (2, 0)),
- (Path.CLOSEPOLY, (0, 0)),
+ (Path.MOVETO, (1.58, -2.57)),
+ (Path.CURVE4, (0.35, -1.1)),
+ (Path.CURVE4, (-1.75, 2.0)),
+ (Path.CURVE4, (0.375, 2.0)),
+ (Path.LINETO, (0.85, 1.15)),
+ (Path.CURVE4, (2.2, 3.2)),
+ (Path.CURVE4, (3, 0.05)),
+ (Path.CURVE4, (2.0, -0.5)),
+ (Path.CLOSEPOLY, (1.58, -2.57)),
]
codes, verts = zip(*pathdata)
@@ -123,9 +123,8 @@
if event.button != 1: return
x,y = event.xdata, event.ydata
- # todo: expose me
vertices = self.pathpatch.get_path().vertices
-
+
vertices[self._ind] = x,y
self.line.set_data(zip(*vertices))
@@ -137,8 +136,8 @@
interactor = PathInteractor(patch)
ax.set_title('drag vertices to update path')
-ax.set_xlim(-5,5)
-ax.set_ylim(-5,5)
+ax.set_xlim(-3,4)
+ax.set_ylim(-3,4)
plt.show()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-05-30 16:57:45
|
Revision: 5321
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5321&view=rev
Author: jdh2358
Date: 2008-05-30 09:57:43 -0700 (Fri, 30 May 2008)
Log Message:
-----------
added htdocs path demo
Added Paths:
-----------
trunk/htdocs/screenshots/path_patch_demo.py
Added: trunk/htdocs/screenshots/path_patch_demo.py
===================================================================
--- trunk/htdocs/screenshots/path_patch_demo.py (rev 0)
+++ trunk/htdocs/screenshots/path_patch_demo.py 2008-05-30 16:57:43 UTC (rev 5321)
@@ -0,0 +1,36 @@
+import numpy as np
+import matplotlib.path as mpath
+import matplotlib.patches as mpatches
+import matplotlib.pyplot as plt
+
+Path = mpath.Path
+
+fig = plt.figure()
+ax = fig.add_subplot(111)
+
+pathdata = [
+ (Path.MOVETO, (1.58, -2.57)),
+ (Path.CURVE4, (0.35, -1.1)),
+ (Path.CURVE4, (-1.75, 2.0)),
+ (Path.CURVE4, (0.375, 2.0)),
+ (Path.LINETO, (0.85, 1.15)),
+ (Path.CURVE4, (2.2, 3.2)),
+ (Path.CURVE4, (3, 0.05)),
+ (Path.CURVE4, (2.0, -0.5)),
+ (Path.CLOSEPOLY, (1.58, -2.57)),
+ ]
+
+codes, verts = zip(*pathdata)
+path = mpath.Path(verts, codes)
+patch = mpatches.PathPatch(path, facecolor='red', edgecolor='yellow', alpha=0.5)
+ax.add_patch(patch)
+
+x, y = zip(*path.vertices)
+line, = ax.plot(x, y, 'go-')
+ax.grid()
+ax.set_xlim(-3,4)
+ax.set_ylim(-3,4)
+ax.set_title('spline paths')
+plt.show()
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2008-05-30 16:21:24
|
Revision: 5320
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5320&view=rev
Author: mdboom
Date: 2008-05-30 09:21:21 -0700 (Fri, 30 May 2008)
Log Message:
-----------
Formatting updates to the docs
Modified Paths:
--------------
trunk/matplotlib/doc/devel/coding_guide.rst
trunk/matplotlib/doc/users/artists.rst
trunk/matplotlib/doc/users/customizing.rst
trunk/matplotlib/doc/users/index.rst
trunk/matplotlib/doc/users/pyplot_tutorial.rst
Modified: trunk/matplotlib/doc/devel/coding_guide.rst
===================================================================
--- trunk/matplotlib/doc/devel/coding_guide.rst 2008-05-30 14:32:29 UTC (rev 5319)
+++ trunk/matplotlib/doc/devel/coding_guide.rst 2008-05-30 16:21:21 UTC (rev 5320)
@@ -18,7 +18,7 @@
Branch checkouts, eg the maintenance branch::
svn co https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/\
- v0_91_maint mpl91
+ v0_91_maint mpl91 --username=youruser --password=yourpass
Committing changes
==================
@@ -27,26 +27,25 @@
in mind.
* if your changes are non-trivial, please make an entry in the
- CHANGELOG
-* if you change the API, please document it in API_CHANGES, and
+ :file:`CHANGELOG`
+* if you change the API, please document it in :file:`API_CHANGES`, and
consider posting to mpl-devel
-* Are your changes python2.3 compatible? We are still trying to
- support 2.3, so avoid 2.4 only features like decorators until we
- remove 2.3 support
-* Can you pass examples/backend_driver.py? This is our poor man's
- unit test.
+* Are your changes python2.4 compatible? We are still trying to
+ support 2.4, so avoid features new to 2.5
+* Can you pass :file:`examples/tests/backend_driver.py`? This is our
+ poor man's unit test.
* If you have altered extension code, do you pass
- unit/memleak_hawaii.py?
-* if you have added new files or directories, or reorganized
- existing ones, are the new files included in the match patterns in
- MANIFEST.in. This file determines what goes into the src
+ :file:`unit/memleak_hawaii.py`?
+* if you have added new files or directories, or reorganized existing
+ ones, are the new files included in the match patterns in
+ :file:`MANIFEST.in`. This file determines what goes into the source
distribution of the mpl build.
* Keep the maintenance branch and trunk in sync where it makes sense.
- If there is a bug on both that needs fixing, use svnmerge.py to
- keep them in sync. http://www.orcaware.com/svn/wiki/Svnmerge.py. The
- basic procedure is:
+ If there is a bug on both that needs fixing, use `svnmerge.py
+ <http://www.orcaware.com/svn/wiki/Svnmerge.py>`_ to keep them in
+ sync. The basic procedure is:
- * install svnmerge.py in your PATH::
+ * install ``svnmerge.py`` in your PATH::
wget http://svn.collab.net/repos/svn/trunk/contrib/client-side/\
svnmerge/svnmerge.py
@@ -56,12 +55,23 @@
it. Make sure you svn upped on the trunk and have no local
modifications, and then from the svn trunk do::
- > svnmerge.py merge -rNNN1,NNN2
+ > svnmerge.py merge
- where the NNN* are the revision numbers. Ranges arealso acceptable.
- svnmergy.py automatically creates a file containing the commit messages,
- so you are ready to make the commit::
+ If you wish to merge only specific revisions (in an unusual
+ situation), do::
+ > svnmerge.py merge -rNNN1-NNN2
+
+ where the ``NNN`` are the revision numbers. Ranges are also
+ acceptable.
+
+ The merge may have found some conflicts (code that must be
+ manually resolved). Correct those conflicts, build matplotlib and
+ test your choices.
+
+ ``svnmerge.py`` automatically creates a file containing the commit
+ messages, so you are ready to make the commit::
+
> svn commit -F svnmerge-commit-message.txt
***********
@@ -71,7 +81,7 @@
Importing and name spaces
=========================
-For numpy, use::
+For `numpy <http://www.numpy.org>`_, use::
import numpy as np
a = np.array([1,2,3])
@@ -80,11 +90,11 @@
from numpy import ma
-(The earlier recommendation, 'import matplotlib.numerix.npyma as ma',
-was needed temporarily during the development of the maskedarray
-implementation as a separate package. As of numpy 1.1, it replaces the
-old implementation. Note: "from numpy import ma" works with numpy < 1.1
-*and* with numpy >= 1.1. "import numpy.ma as ma" works *only* with
+(The earlier recommendation, :samp:`import matplotlib.numerix.npyma as ma`,
+was needed temporarily during the development of the maskedarray
+implementation as a separate package. As of numpy 1.1, it replaces the
+old implementation. Note: ``from numpy import ma`` works with numpy < 1.1
+*and* with numpy >= 1.1. ``import numpy.ma as ma`` works *only* with
numpy >= 1.1, so for now we must not use it.)
For matplotlib main module, use::
@@ -99,8 +109,8 @@
if cbook.iterable(z):
pass
-We prefer this over the equivalent 'from matplotlib import cbook'
-because the latter is ambiguous whether cbook is a module or a
+We prefer this over the equivalent ``from matplotlib import cbook``
+because the latter is ambiguous whether ``cbook`` is a module or a
function to the new developer. The former makes it explcit that
you are importing a module or package.
@@ -108,15 +118,16 @@
===========================================
In general, we want to hew as closely as possible to the standard
-coding guidelines for python written by Guido in
-http://www.python.org/dev/peps/pep-0008, though we do not do this
+coding guidelines for python written by Guido in `PEP 0008
+<http://www.python.org/dev/peps/pep-0008>`_, though we do not do this
throughout.
-* functions and class methods: lower or lower_underscore_separated
+* functions and class methods: ``lower`` or
+ ``lower_underscore_separated``
-* attributes and variables: lower or lowerUpper
+* attributes and variables: ``lower`` or ``lowerUpper``
-* classes: Upper or MixedCase
+* classes: ``Upper`` or ``MixedCase``
Personally, I prefer the shortest names that are still readable.
@@ -129,28 +140,33 @@
a file.)
Keep docstrings uniformly indented as in the example below, with
-nothing to the left of the triple quotes. The dedent() function
-is needed to remove excess indentation only if something will be
-interpolated into the docstring, again as in the example above.
+nothing to the left of the triple quotes. The
+:func:`matplotlib.cbook.dedent` function is needed to remove excess
+indentation only if something will be interpolated into the docstring,
+again as in the example above.
Limit line length to 80 characters. If a logical line needs to be
-longer, use parentheses to break it; do not use an escaped
-newline. It may be preferable to use a temporary variable
-to replace a single long line with two shorter and more
-readable lines.
+longer, use parentheses to break it; do not use an escaped newline.
+It may be preferable to use a temporary variable to replace a single
+long line with two shorter and more readable lines.
Please do not commit lines with trailing white space, as it causes
-noise in svn diffs. If you are an emacs user, the following in your
-.emacs will cause emacs to strip trailing white space on save for
-python, C and C++::
+noise in svn diffs.
+If you are an emacs user, the following in your ``.emacs`` will cause
+emacs to strip trailing white space upon saving for python, C and C++:
+
+.. code-block:: cl
+
; and similarly for c++-mode-hook and c-mode-hook
(add-hook 'python-mode-hook
(lambda ()
(add-hook 'write-file-functions 'delete-trailing-whitespace)))
-for older versions of emacs (emacs<22) you need to do::
+for older versions of emacs (emacs<22) you need to do:
+.. code-block:: cl
+
(add-hook 'python-mode-hook
(lambda ()
(add-hook 'local-write-file-hooks 'delete-trailing-whitespace)))
@@ -160,8 +176,9 @@
Matplotlib makes extensive use of ``**kwargs`` for pass through
customizations from one function to another. A typical example is in
-pylab.text, The definition of the pylab text function is a simple
-pass-through to axes.Axes.text::
+:func:`matplotlib.pylab.text`. The definition of the pylab text
+function is a simple pass-through to
+:meth:`matplotlib.axes.Axes.text`::
# in pylab.py
def text(*args, **kwargs):
@@ -169,25 +186,27 @@
draw_if_interactive()
return ret
-axes.Axes.text in simplified form looks like this, ie it just passes
-them on to text.Text.__init__::
+:meth:`~matplotlib.axes.Axes.text` in simplified form looks like this,
+i.e., it just passes them on to :meth:`matplotlib.text.Text.__init__`::
# in axes.py
def text(self, x, y, s, fontdict=None, withdash=False, **kwargs):
t = Text(x=x, y=y, text=s, **kwargs)
-and Text.__init__ (again with liberties for illustration) just passes
-them on to the artist.Artist.update method::
+and :meth:`~matplotlib.text.Text.__init__` (again with liberties for
+illustration) just passes them on to the
+:meth:`matplotlib.artist.Artist.update` method::
# in text.py
def __init__(self, x=0, y=0, text='', **kwargs):
Artist.__init__(self)
self.update(kwargs)
-'update' does the work looking for methods named like 'set_property'
-if 'property' is a keyword argument. Ie, noone looks at the keywords,
-they just get passed through the API to the artist constructor which
-looks for suitably named methods and calls them with the value.
+``update`` does the work looking for methods named like
+``set_property`` if ``property`` is a keyword argument. I.e., no one
+looks at the keywords, they just get passed through the API to the
+artist constructor which looks for suitably named methods and calls
+them with the value.
As a general rule, the use of ``**kwargs`` should be reserved for
pass-through keyword arguments, as in the examaple above. If I intend
@@ -197,9 +216,10 @@
In some cases I want to consume some keys and pass through the others,
in which case I pop the ones I want to use locally and pass on the
-rest, eg I pop scalex and scaley in Axes.plot and assume the rest are
-Line2D keyword arguments. As an example of a pop, passthrough
-usage, see Axes.plot::
+rest, eg., I pop ``scalex`` and ``scaley`` in
+:meth:`~matplotlib.axes.Axes.plot` and assume the rest are
+:meth:`~matplotlib.lines.Line2D` keyword arguments. As an example of
+a pop, passthrough usage, see :meth:`~matplotlib.axes.Axes.plot`::
# in axes.py
def plot(self, *args, **kwargs):
@@ -211,16 +231,17 @@
self.add_line(line)
lines.append(line)
-The matplotlib.cbook function popd() is rendered
-obsolete by the pop() dictionary method introduced in Python 2.3,
+The :mod:`matplotlib.cbook` function :func:`~matplotlib.cbook.popd` is rendered
+obsolete by the :func:`~dict.pop` dictionary method introduced in Python 2.3,
so it should not be used for new code.
-Note there is a use case when kwargs are meant to be used locally in
-the function (not passed on), but you still need the ``**kwargs`` idiom.
-That is when you want to use ``*args`` to allow variable numbers of
-non-keyword args. In this case, python will not allow you to use
-named keyword args after the ``*args`` usage, so you will be forced to use
-``**kwargs``. An example is matplotlib.contour.ContourLabeler.clabel::
+Note there is a use case when ``kwargs`` are meant to be used locally
+in the function (not passed on), but you still need the ``**kwargs``
+idiom. That is when you want to use ``*args`` to allow variable
+numbers of non-keyword args. In this case, python will not allow you
+to use named keyword args after the ``*args`` usage, so you will be
+forced to use ``**kwargs``. An example is
+:meth:`matplotlib.contour.ContourLabeler.clabel`::
# in contour.py
def clabel(self, *args, **kwargs):
@@ -238,51 +259,54 @@
============================
matplotlib uses artist instrospection of docstrings to support
-properties. All properties that you want to support through setp and
-getp should have a set_property and get_property method in the Artist
-class. Yes, this is not ideal given python properties or enthought
-traits, but it is a historical legacy for now. The setter methods use
-the docstring with the ACCEPTS token to indicate the type of argument
-the method accepts. Eg in matplotlib.lines.Line2D::
+properties. All properties that you want to support through ``setp``
+and ``getp`` should have a ``set_property`` and ``get_property``
+method in the :class:`~matplotlib.artist.Artist` class. Yes, this is
+not ideal given python properties or enthought traits, but it is a
+historical legacy for now. The setter methods use the docstring with
+the ACCEPTS token to indicate the type of argument the method accepts.
+Eg. in :class:`matplotlib.lines.Line2D`::
# in lines.py
def set_linestyle(self, linestyle):
"""
Set the linestyle of the line
-
+
ACCEPTS: [ '-' | '--' | '-.' | ':' | 'steps' | 'None' | ' ' | '' ]
"""
-Since matplotlib uses a lot of pass through kwargs, eg in every
-function that creates a line (plot, semilogx, semilogy, etc...), it
-can be difficult for the new user to know which kwargs are supported.
-I have developed a docstring interpolation scheme to support
-documentation of every function that takes a ``**kwargs``. The
-requirements are:
+Since matplotlib uses a lot of pass through ``kwargs``, eg. in every
+function that creates a line (:func:`~matplotlib.pyplot.plot`,
+:func:`~matplotlib.pyplot.semilogx`,
+:func:`~matplotlib.pyplot.semilogy`, etc...), it can be difficult for
+the new user to know which ``kwargs`` are supported. I have developed a
+docstring interpolation scheme to support documentation of every
+function that takes a ``**kwargs``. The requirements are:
1. single point of configuration so changes to the properties don't
- require multiple docstring edits
+ require multiple docstring edits.
2. as automated as possible so that as properties change the docs
are updated automagically.
-I have added a matplotlib.artist.kwdocd and kwdoc() to faciliate this.
-They combines python string interpolation in the docstring with the
-matplotlib artist introspection facility that underlies setp and getp.
-The kwdocd is a single dictionary that maps class name to a docstring
-of kwargs. Here is an example from matplotlib.lines::
+I have added a :attr:`matplotlib.artist.kwdocd` and
+:func:`matplotlib.artist.kwdoc` to faciliate this. They combine
+python string interpolation in the docstring with the matplotlib
+artist introspection facility that underlies ``setp`` and ``getp``. The
+``kwdocd`` is a single dictionary that maps class name to a docstring of
+``kwargs``. Here is an example from :mod:`matplotlib.lines`::
# in lines.py
artist.kwdocd['Line2D'] = artist.kwdoc(Line2D)
-Then in any function accepting Line2D passthrough kwargs, eg
-matplotlib.axes.Axes.plot::
+Then in any function accepting :class:`~matplotlib.lines.Line2D`
+passthrough ``kwargs``, eg. :meth:`matplotlib.axes.Axes.plot`::
# in axes.py
def plot(self, *args, **kwargs):
"""
Some stuff omitted
-
+
The kwargs are Line2D properties:
%(Line2D)s
@@ -294,13 +318,14 @@
pass
plot.__doc__ = cbook.dedent(plot.__doc__) % artist.kwdocd
-Note there is a problem for Artist __init__ methods, eg Patch.__init__
-which supports Patch kwargs, since the artist inspector cannot work
+Note there is a problem for :class:`~matplotlib.artist.Artist`
+``__init__`` methods, eg. :meth:`matplotlib.patches.Patch.__init__`,
+which supports ``Patch`` ``kwargs``, since the artist inspector cannot work
until the class is fully defined and we can't modify the
-Patch.__init__.__doc__ docstring outside the class definition. I have
+``Patch.__init__.__doc__`` docstring outside the class definition. I have
made some manual hacks in this case which violates the "single entry
point" requirement above; hopefully we'll find a more elegant solution
-before too long
+before too long.
********
Licenses
@@ -314,4 +339,4 @@
distributing L/GPL code through an separate channel, possibly a
toolkit. If you include code, make sure you include a copy of that
code's license in the license directory if the code's license requires
-you to distribute the license with it.
\ No newline at end of file
+you to distribute the license with it.
Modified: trunk/matplotlib/doc/users/artists.rst
===================================================================
--- trunk/matplotlib/doc/users/artists.rst 2008-05-30 14:32:29 UTC (rev 5319)
+++ trunk/matplotlib/doc/users/artists.rst 2008-05-30 16:21:21 UTC (rev 5320)
@@ -2,50 +2,69 @@
Artist tutorial
***************
-There are three layers to the matplotlib API. The FigureCanvas is the
-area onto which the figure is drawn, the Renderer is the object which
-knows how to draw on the FigureCanvas, and the Artist is the object
-that knows how to use a renderer to paint onto the canvas. The
-FigureCanvas and Renderer handle all the details of talking to user
-interface toolkits like wxpython or drawing languages like postscript,
-and the Artist handles all the high level constructs like
-representing and laying out the figure, text, and lines. The typical
-user will spend 95% of his time working with the Artists.
+There are three layers to the matplotlib API. The
+:class:`matplotlib.backend_bases.FigureCanvas` is the area onto which
+the figure is drawn, the :class:`matplotlib.backend_bases.Renderer` is
+the object which knows how to draw on the
+:class:`~matplotlib.backend_bases.FigureCanvas`, and the
+:class:`matplotlib.artist.Artist` is the object that knows how to use
+a renderer to paint onto the canvas. The
+:class:`~matplotlib.backend_bases.FigureCanvas` and
+:class:`~matplotlib.backend_bases.Renderer` handle all the details of
+talking to user interface toolkits like `wxPython
+<http://www.wxpython.org>`_ or drawing languages like PostScript®, and
+the ``Artist`` handles all the high level constructs like representing
+and laying out the figure, text, and lines. The typical user will
+spend 95% of his time working with the ``Artists``.
-There are two types Artists: primitives and containers. The
+There are two types of ``Artists``: primitives and containers. The
primitives represent the standard graphical objects we want to paint
-onto our canvas: Line2D, Rectangle, Text, AxesImage, etc, and the
-containers are places to put them (Axis, Axes and Figure). The
-standard use is to create a Figure instance, use the Figure to create
-one or more Axes or Subplot instances, and use the Axes instance
-helper methods to create the primitives. In the example below, we
-create a Figure instance using pyplot.figure, which is a convenience
-method for instantiating Figure instances and connecting them with
-your user interface or drawing toolkit FigureCanvas. As we will
-discuss below, this is not necessary, and you can work directly with
-postscript, pdf gtk, or wxpython FigureCanvas es, instantiate your
-Figures directly and connect them yourselves, but since we are
-focusing here on the Artist API we'll let pyplot handle some of those
-details for us::
+onto our canvas: :class:`~matplotlib.lines.Line2D`,
+:class:`~matplotlib.patches.Rectangle`,
+:class:`~matplotlib.text.Text`, :class:`~matplotlib.image.AxesImage`,
+etc., and the containers are places to put them
+(:class:`~matplotlib.axis.Axis`, :class:`~matplotlib.axes.Axes` and
+:class:`~matplotlib.figure.Figure`). The standard use is to create a
+:class:`~matplotlib.figure.Figure` instance, use the ``Figure`` to
+create one or more :class:`~matplotlib.axes.Axes` or
+:class:`~matplotlib.axes.Subplot` instances, and use the ``Axes``
+instance helper methods to create the primitives. In the example
+below, we create a ``Figure`` instance using
+:func:`matplotlib.pyplot.figure`, which is a convenience method for
+instantiating ``Figure`` instances and connecting them with your user
+interface or drawing toolkit ``FigureCanvas``. As we will discuss
+below, this is not necessary, and you can work directly with
+PostScript, PDF Gtk+, or wxPython ``FigureCanvas`` instances. For
+example, instantiate your ``Figures`` directly and connect them
+yourselves, but since we are focusing here on the ``Artist`` API we'll let
+:mod:`~matplotlib.pyplot` handle some of those details for us::
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(2,1,1) # two rows, one column, first plot
-The Axes is probably the most important class in the matplotlib API,
-and the one you will be working with most of the time. This is
-because the Axes is the plotting area into which most of the objects
-go, and the Axes has many special helper methods (ax.plot, ax.text,
-ax.hist, ax.imshow) to create the most common graphics primitives
-(Line2D, Text, Rectangle, Image, respectively). These helper methods
-will take your data (eg numpy arrays and strings) create primitive
-Artist instances as needed (eg Line2D), add them to the relevant
-containers, and draw them when requested. Most of you are probably
-familiar with the Subplot, which is just a special case of an Axes
-that lives on a regular rows by columns grid of Subplot instances. If
-you want to create an Axes at an arbitrary location, simply use the
-add_axes method which takes a list of [left, bottom, width, height]
-values in 0-1 relative figure coordinates::
+The :class:`~matplotlib.axes.Axes` is probably the most important
+class in the matplotlib API, and the one you will be working with most
+of the time. This is because the ``Axes`` is the plotting area into
+which most of the objects go, and the ``Axes`` has many special helper
+methods (:meth:`~matplotlib.axes.Axes.plot`,
+:meth:`~matplotlib.axes.Axes.text`,
+:meth:`~matplotlib.axes.Axes.hist`,
+:meth:`~matplotlib.axes.Axes.imshow`) to create the most common
+graphics primitives (:class:`~matplotlib.lines.Line2D`,
+:class:`~matplotlib.text.Text`,
+:class:`~matplotlib.patches.Rectangle`,
+:class:`~matplotlib.image.Image`, respectively). These helper methods
+will take your data (eg. ``numpy`` arrays and strings) create
+primitive ``Artist`` instances as needed (eg. ``Line2D``), add them to
+the relevant containers, and draw them when requested. Most of you
+are probably familiar with the :class:`~matplotlib.axes.Subplot`,
+which is just a special case of an ``Axes`` that lives on a regular
+rows by columns grid of ``Subplot`` instances. If you want to create
+an ``Axes`` at an arbitrary location, simply use the
+:meth:`~matplotlib.figure.Figure.add_axes` method which takes a list
+of ``[left, bottom, width, height]`` values in 0-1 relative figure
+coordinates::
ax2 = fig.add_axes([0.15, 0.1, 0.7, 0.3])
@@ -56,12 +75,14 @@
s = np.sin(2*np.pi*t)
line, = ax1.plot(t, s, color='blue', lw=2)
-In this example, ax is the Axes instance created by the
-fig.add_subplot call above (remember Subplot is just a subclass of
-Axes) and when you call ax.plot, it creates a Line2D instance and adds
-it the the Axes.lines list. In the interactive ipython session below,
-you can see that Axes.lines list is length one and contains the same
-line that was returned by the "line, ax.plot(x, y, 'o')" call:
+In this example, ``ax`` is the ``Axes`` instance created by the
+``fig.add_subplot`` call above (remember ``Subplot`` is just a
+subclass of ``Axes``) and when you call ``ax.plot``, it creates a
+``Line2D`` instance and adds it the the :attr:`Axes.lines
+<matplotlib.axes.Axes.lines>` list. In the interactive `ipython
+<http://ipython.scipy.org/>`_ session below, you can see that
+``Axes.lines`` list is length one and contains the same line that was
+returned by the ``line, = ax.plot(x, y, 'o')`` call:
.. sourcecode:: ipython
@@ -71,7 +92,7 @@
In [102]: line
Out[102]: <matplotlib.lines.Line2D instance at 0x19a95710>
-If you make subsequent calls to ax.plot (and the hold state is "on"
+If you make subsequent calls to ``ax.plot`` (and the hold state is "on"
which is the default) then additional lines will be added to the list.
You can remove lines later simply by calling the list methods; either
of these will work::
@@ -79,52 +100,60 @@
del ax.lines[0]
ax.lines.remove(line) # one or the other, not both!
-The Axes also has helper methods to configure and decorate the xaxis
-and yaxis tick, ticklabels and axis labels::
+The Axes also has helper methods to configure and decorate the x-axis
+and y-axis tick, ticklabels and axis labels::
xtext = ax.set_xlabel('my xdata') # returns a Text instance
ytext = ax.set_ylabel('my xdata')
-When you call ax.set_xlabel, it passes the information on the Text
-instance of the XAxis. Each Axes instance contains an xaxis and a
-yaxis instance, which handle the layout and drawing of the ticks, tick
-labels and axis labels.
+When you call :meth:`ax.set_xlabel <matplotlib.axes.Axes.set_xlabel>`,
+it passes the information on the :class:`~matplotlib.text.Text`
+instance of the :class:`~matplotlib.axis.XAxis`. Each ``Axes``
+instance contains an :class:`~matplotlib.axis.XAxis` and a
+:class:`~matplotlib.axis.YAxis` instance, which handle the layout and
+drawing of the ticks, tick labels and axis labels.
-Here are the most important matplotlib modules that contain the
-classes referenced above
+.. I'm commenting this out, since the new Sphinx cross-references
+.. sort of take care of this above - MGD
-=============== ==================
-Artist Module
-=============== ==================
-Artist matplotlib.artist
-Rectangle matplotlib.patches
-Line2D matplotlib.lines
-Axes matplotlib.axes
-XAxis and YAxis matplotlib.axis
-Figure matplotlib.figure
-Text matplotlib.text
-=============== ==================
+.. Here are the most important matplotlib modules that contain the
+.. classes referenced above
-Try creating the figure below
+.. =============== ==================
+.. Artist Module
+.. =============== ==================
+.. Artist matplotlib.artist
+.. Rectangle matplotlib.patches
+.. Line2D matplotlib.lines
+.. Axes matplotlib.axes
+.. XAxis and YAxis matplotlib.axis
+.. Figure matplotlib.figure
+.. Text matplotlib.text
+.. =============== ==================
+Try creating the figure below.
+
.. image:: figures/fig_axes_labels_simple.png
:scale: 75
Customizing your objects
========================
-Every element in the figure is represented by a matplotlib Artist, and
-each has an extensive list of properties to configure its appearance.
-The figure itself contains a Rectangle exactly the size of the figure,
+Every element in the figure is represented by a matplotlib
+:class:`~matplotlib.artist.Artist`, and each has an extensive list of
+properties to configure its appearance. The figure itself contains a
+:class:`~matplotlib.patches.Rectangle` exactly the size of the figure,
which you can use to set the background color and transparency of the
-figures. Likewise, each Axes bounding box (the standard white box
-with black edges in the typical matplotlib plot, has a Rectangle
-instance that determines the color, transparency, and other properties
-of the Axes. These instances are stored as member variables
-Figure.figurePatch and Axes.axesPatch ("Patch" is a name inherited
-from Matlab, and is a 2D "patch" of color on the figure, eg
-rectangles, circles and polygons). Every matplotlib Artist has the
-following properties
+figures. Likewise, each :class:`~matplotlib.axes.Axes` bounding box
+(the standard white box with black edges in the typical matplotlib
+plot, has a ``Rectangle`` instance that determines the color,
+transparency, and other properties of the Axes. These instances are
+stored as member variables :attr:`Figure.figurePatch
+<matplotlib.figure.Figure.figurePatch>` and :attr:`Axes.axesPatch
+<matplotlib.axes.Axes.axesPatch>` ("Patch" is a name inherited from
+MATLAB™, and is a 2D "patch" of color on the figure, eg. rectangles,
+circles and polygons). Every matplotlib ``Artist`` has the following
+properties
========== ======================================================================
Property Description
@@ -145,7 +174,7 @@
========== ======================================================================
Each of the properties is accessed with an old-fashioned setter or
-getter (yes we know this irritates pythonistas and we plan to support
+getter (yes we know this irritates Pythonistas and we plan to support
direct access via properties or traits but it hasn't been done yet).
For example, to multiply the current alpha by a half::
@@ -153,15 +182,17 @@
o.set_alpha(0.5*a)
If you want to set a number of properties at once, you can also use
-the "set" method with keyword arguments. For example::
+the ``set`` method with keyword arguments. For example::
o.set(alpha=0.5, zorder=2)
If you are working interactively at the python shell, a handy way to
-inspect the artist properties is to use the matplotlib.artist.getp
-method, which lists the properties and their values (simply "getp") in
-pylab. This works for classes derived from Artist as well, eg Figure
-and Rectangle. Here are the Figure rectangle properties mentioned above:
+inspect the ``Artist`` properties is to use the
+:func:`matplotlib.artist.getp` function (simply
+:func:`~matplotlib.pylab.getp` in pylab), which lists the properties
+and their values. This works for classes derived from ``Artist`` as
+well, eg. ``Figure`` and ``Rectangle``. Here are the ``Figure`` rectangle
+properties mentioned above:
.. sourcecode:: ipython
@@ -192,7 +223,9 @@
y = 0
zorder = 1
-The docstrings for all of the classes also contain the artist
+.. TODO: Update these URLs
+
+The docstrings for all of the classes also contain the ``Artist``
properties, so you can consult the interactive "help", the online html
docs at http://matplotlib.sourceforge.net/classdocs.html or PDF documentation
at http://matplotlib.sourceforge.net/api.pdf for a listing of
@@ -201,27 +234,32 @@
Object containers
=================
-Now that we know how to inspect set the properties of a given
-object we want to configure, we need to now how to get at that
-object. As mentioned in the introduction, there are two kinds of
-objects: primitives and containers. The primitives are usually the
-things you want to configure (the font of a Text instance, the width
-of a Line2D) although the containers also have some properties as
-well -- for example the Axes Artist is a container that contains many
-of the primitives in your plot, but it also has properties like the
-xscale to control whether the xaxis is 'linear' or 'log'. In this
-section we'll review where the various container objects store the
-Artists that you want to get at.
+Now that we know how to inspect set the properties of a given object
+we want to configure, we need to now how to get at that object. As
+mentioned in the introduction, there are two kinds of objects:
+primitives and containers. The primitives are usually the things you
+want to configure (the font of a :class:`~matplotlib.text.Text`
+instance, the width of a :class:`~matplotlib.lines.Line2D`) although
+the containers also have some properties as well -- for example the
+:class:`~matplotlib.axes.Axes` :class:`~matplotlib.artist.Artist` is a
+container that contains many of the primitives in your plot, but it
+also has properties like the ``xscale`` to control whether the xaxis is
+'linear' or 'log'. In this section we'll review where the various
+container objects store the ``Artists`` that you want to get at.
Figure container
----------------
-The top level container Artist is the matplotlib.figure.Figure, and it
-contains everything in the figure. The background of the figure is a
-Rectangle which is stored in fig.figurePatch (where fig is your Figure
-instance). As you add subplots (fig.add_subplot) and axes
-(ax.add_axes)to the figure these will be appended to the fig.axes
-list. These are also returned by the methods that create them:
+The top level container ``Artist`` is the
+:class:`matplotlib.figure.Figure`, and it contains everything in the
+figure. The background of the figure is a
+:class:`~matplotlib.patches.Rectangle` which is stored in
+:attr:`Figure.figurePatch <matplotlib.figure.Figure.figurePatch>`. As
+you add subplots (:meth:`~matplotlib.figure.Figure.add_subplot`) and
+axes (:meth:`~matplotlib.figure.Figure.add_axes`) to the figure
+these will be appended to the :attr:`Figure.axes
+<matplotlib.figure.Figure.axes>`. These are also returned by the
+methods that create them:
.. sourcecode:: ipython
@@ -238,13 +276,16 @@
[<matplotlib.axes.Subplot instance at 0xd54b26c>, <matplotlib.axes.Axes instance at 0xd3f0b2c>]
Because the figure maintains the concept of the "current axes" (see
-Figure.gca and Figure.sca) to support the pylab/pyplot state machine,
-you should not insert or remove axes directly from the axes list, but
-rather use the Figure.add_axes and Figure.add_subplot method to
-insert, and the Figure.delaxes methods to delete. You are free
-however, to iterate over the list of axes or index into it to get
-access to Axes instances you want to customize. Here is an example
-which turns all the axes grids on::
+:meth:`Figure.gca <matplotlib.figure.Figure.gca>` and
+:meth:`Figure.sca <matplotlib.figure.Figure.sca>`) to support the
+pylab/pyplot state machine, you should not insert or remove axes
+directly from the axes list, but rather use the
+:meth:`~matplotlib.figure.Figure.add_subplot` and
+:meth:`~matplotlib.figure.Figure.add_axes` methods to insert, and the
+:meth:`~matplotlib.figure.Figure.delaxes` method to delete. You are
+free however, to iterate over the list of axes or index into it to get
+access to ``Axes`` instances you want to customize. Here is an
+example which turns all the axes grids on::
for ax in fig.axes:
ax.grid(True)
@@ -252,21 +293,25 @@
The figure also has its own text, lines, patches and images, which you
can use to add primitives directly. The default coordinate system for
-the Figure will simply be in pixels (which is not usually what you
+the ``Figure`` will simply be in pixels (which is not usually what you
want) but you can control this by setting the transform property of
-the Artist you are adding to the figure. More useful is "figure
-coordinates" where 0,0 is the bottom, left of the figure and 1,1 is
-the top, right of the figure which you can obtain by setting the
-Artist transform to fig.transFigure:
+the ``Artist`` you are adding to the figure.
+.. TODO: Is that still true?
+
+More useful is "figure coordinates" where (0, 0) is the bottom-left of
+the figure and (1, 1) is the top-right of the figure which you can
+obtain by setting the ``Artist`` transform to :attr:`fig.transFigure
+<matplotlib.figure.Figure.transFigure>`:
+
.. sourcecode:: ipython
In [191]: fig = plt.figure()
- In [192]: l1 = matplotlib.lines.Line2D([0, 1], [0, 1],
+ In [192]: l1 = matplotlib.lines.Line2D([0, 1], [0, 1],
transform=fig.transFigure, figure=fig)
- In [193]: l2 = matplotlib.lines.Line2D([0, 1], [1, 0],
+ In [193]: l2 = matplotlib.lines.Line2D([0, 1], [1, 0],
transform=fig.transFigure, figure=fig)
In [194]: fig.lines.extend([l1, l2])
@@ -279,6 +324,8 @@
Here is a summary of the Artists the figure contains
+.. TODO: Add xrefs to this table
+
================ ===============================================================
Figure attribute Description
================ ===============================================================
@@ -295,23 +342,28 @@
Axes container
--------------
-The matplotlib.axes.Axes is the center of the matplotlib universe --
-it contains the vast majority of all the Artists used in a figure with
-many helper methods to create and these Artists to itself, as well as
-helper methods to access and customize the Artists it contains. Like
-the Figure, it contains a Patch ax.axesPatch which is Rectangle for
-Cartesian coordinates and a Circle for polar coordinates; this patch
+The :class:`matplotlib.axes.Axes` is the center of the matplotlib
+universe -- it contains the vast majority of all the ``Artists`` used
+in a figure with many helper methods to create and add these
+``Artists`` to itself, as well as helper methods to access and
+customize the ``Artists`` it contains. Like the
+:class:`~matplotlib.figure.Figure`, it contains a
+:class:`~matplotlib.patches.Patch`
+:attr:`~matplotlib.axes.Axes.axesPatch` which is a
+:class:`~matplotlib.patches.Rectangle` for Cartesian coordinates and a
+:class:`~matplotlib.patches.Circle` for polar coordinates; this patch
determines the shape, background and border of the plotting region::
ax = fig.add_subplot(111)
rect = ax.axesPatch # a Rectangle instance
rect.set_facecolor('green')
-When you call a plotting method, eg the canonical "ax.plot" and pass
-in arrays or list of values, the method will a matplotlib.lines.Line2D
-instance, update the line with all the Line2D properties passed as
-keyword arguments, add the line to the Axes.lines container, and
-returns it to you:
+When you call a plotting method, eg. the canonical
+:meth:`~matplotlib.axes.Axes.plot` and pass in arrays or lists of
+values, the method will create a :meth:`matplotlib.lines.Line2D`
+instance, update the line with all the ``Line2D`` properties passed as
+keyword arguments, add the line to the :attr:`Axes.lines
+<matplotlib.axes.Axes.lines>` container, and returns it to you:
.. sourcecode:: ipython
@@ -319,18 +371,20 @@
In [214]: line, = ax.plot(x, y, '-', color='blue', linewidth=2)
-ax.plot returns a list of lines because you can pass in multiple x, y
+``plot`` returns a list of lines because you can pass in multiple x, y
pairs to plot, and we are unpacking the first element of the length
one list into the line variable. The line has been added to the
-ax.lines list:
+``Axes.lines`` list:
.. sourcecode:: ipython
In [229]: print ax.lines
[<matplotlib.lines.Line2D instance at 0xd378b0c>]
-Similarly, methods that create patches, like ax.bar creates a list of
-rectangles, will add the patches to the ax.patches list:
+Similarly, methods that create patches, like
+:meth:`~matplotlib.axes.Axes.bar` creates a list of rectangles, will
+add the patches to the :attr:`Axes.patches
+<matplotlib.axes.Axes.patches>` list:
.. sourcecode:: ipython
@@ -341,17 +395,19 @@
In [235]: print len(ax.patches)
-You should not add objects directly to the ax.lines or ax.patches
-unless you know exactly what you are doing, because the Axes needs to
-do a few things when it creates and adds an object. It sets the figure
-and axes property of the Artist, as well as the default Axes
-transformation (unless a transformation is set). It also inspects the
-data contained in the Artist to update the data structures controlling
-auto-scaling, so that the view limits can be adjusted to contain the
-plotted data. You can, nonetheless, create objects yourself and add
-them directly to the Axes using helper methods like ax.add_line and
-ax.add_patch. Here is an annotated interactive session illustrating
-what is going on:
+You should not add objects directly to the ``Axes.lines`` or
+``Axes.patches`` lists unless you know exactly what you are doing,
+because the ``Axes`` needs to do a few things when it creates and adds
+an object. It sets the figure and axes property of the ``Artist``, as
+well as the default ``Axes`` transformation (unless a transformation
+is set). It also inspects the data contained in the ``Artist`` to
+update the data structures controlling auto-scaling, so that the view
+limits can be adjusted to contain the plotted data. You can,
+nonetheless, create objects yourself and add them directly to the
+``Axes`` using helper methods like
+:meth:`~matplotlib.axes.Axes.add_line` and
+:meth:`~matplotlib.axes.Axes.add_patch`. Here is an annotated
+interactive session illustrating what is going on:
.. sourcecode:: ipython
@@ -405,9 +461,9 @@
In [274]: ax.figure.canvas.draw()
-There are many, many Axes helper methods for creating primitive
-Artists and adding them to their respective containers. The table
-below summarizes a small sampling of them, the kinds of Artist they
+There are many, many ``Axes`` helper methods for creating primitive
+``Artists`` and adding them to their respective containers. The table
+below summarizes a small sampling of them, the kinds of ``Artist`` they
create, and where they store them
============================== ==================== =======================
@@ -426,14 +482,18 @@
============================== ==================== =======================
-In addition to all of these Artists, the Axes contains two important
-Artist containers: the XAxis and YAxis, which handle the drawing of
-the ticks and labels. These are stored as instance variables xaxis
-and yaxis. The XAxis and YAxis containers will be detailed below, but
-note that the Axes contains many helper methods which forward calls on
-to the Axis instances so you often do not need to work with them
-directly unless you want to. For example, you can set the fontsize of
-the XAxis ticklabels using the Axes helper method::
+In addition to all of these ``Artists``, the ``Axes`` contains two
+important ``Artist`` containers: the :class:`~matplotlib.axis.XAxis`
+and :class:`~matplotlib.axis.YAxis`, which handle the drawing of the
+ticks and labels. These are stored as instance variables
+:attr:`~matplotlib.axes.Axes.xaxis` and
+:attr:`~matplotlib.axes.Axes.yaxis`. The ``XAxis`` and ``YAxis``
+containers will be detailed below, but note that the ``Axes`` contains
+many helper methods which forward calls on to the
+:class:`~matplotlib.axis.Axis` instances so you often do not need to
+work with them directly unless you want to. For example, you can set
+the font size of the ``XAxis`` ticklabels using the ``Axes`` helper
+method::
for label in ax.get_xticklabels():
label.set_color('orange')
@@ -458,24 +518,29 @@
Axis containers
---------------
-The matplotlib.axis.Axis instances handle the drawing of the tick lines, the grid
-lines, the tick labels and the axis label. You can configure the left
-and right ticks separately for the y axis, and the upper and lower
-ticks separately for the x axis. The axis also stores the data and view
-intervals used in auto-scaling, panning and zooming, as well as the
-locator and formatter instances which control where the ticks are
-placed and how they are represented as strings.
+The :class:`matplotlib.axis.Axis` instances handle the drawing of the
+tick lines, the grid lines, the tick labels and the axis label. You
+can configure the left and right ticks separately for the y-axis, and
+the upper and lower ticks separately for the x-axis. The ``Axis``
+also stores the data and view intervals used in auto-scaling, panning
+and zooming, as well as the :class:`~matplotlib.ticker.Locator` and
+:class:`~matplotlib.ticker.Formatter` instances which control where
+the ticks are placed and how they are represented as strings.
-Each axis object contains a label attribute (this is what the pylab
-calls to xlabel and ylabel set) as well as a list of major and minor
-ticks. The ticks are XTick and YTick instances, which contain the
-actual line and text primitives that render the ticks and ticklabels.
-Because the ticks are dynamically created as needed (eg when panning
-and zooming), you should access the lists of major and minor ticks
-through their accessor methods axis.get_major_ticks() and
-axis.get_minor_ticks(). Although the ticks contain all the primitives
-and will be covered below, the Axis methods contain accessor methods
-to return the tick lines, tick labels, tick locations etc....:
+Each ``Axis`` object contains a :attr:`~matplotlib.axis.Axis.label`
+attribute (this is what the :mod:`~matplotlib.pylab` calls to
+:func:`~matplotlib.pylab.xlabel` and :func:`~matplotlib.pylab.ylabel`
+set) as well as a list of major and minor ticks. The ticks are
+:class:`~matplotlib.axis.XTick` and :class:`~matplotlib.axis.YTick`
+instances, which contain the actual line and text primitives that
+render the ticks and ticklabels. Because the ticks are dynamically
+created as needed (eg. when panning and zooming), you should access
+the lists of major and minor ticks through their accessor methods
+:meth:`~matplotlib.axis.Axis.get_major_ticks` and
+:meth:`~matplotlib.axis.Axis.get_minor_ticks`. Although the ticks
+contain all the primitives and will be covered below, the ``Axis`` methods
+contain accessor methods to return the tick lines, tick labels, tick
+locations etc.:
.. sourcecode:: ipython
@@ -501,7 +566,7 @@
In [292]: axis.get_ticklines(minor=True)
Out[292]: <a list of 0 Line2D ticklines objects>
-Here is a summary of some of the useful accessor methods of the Axis
+Here is a summary of some of the useful accessor methods of the ``Axis``
(these have corresponding setters where useful, such as
set_major_formatter)
@@ -538,13 +603,15 @@
Tick containers
---------------
-The matplotlib.axis.Tick is the final container object in our descent
-from the Figure to the Axes to the Axis to the Tick. The Tick
-contains the tick and grid line instances, as well as the label
-instances for the upper and lower ticks. Each of these is accessible
-directly as an attribute of the Tick. In addition, there are boolean
-variables that determine whether the upper labels and ticks are on for
-the xaxis and whether the right labels and ticks are on for the yaxis.
+The :class:`matplotlib.axis.Tick` is the final container object in our
+descent from the :class:`~matplotlib.figure.Figure` to the
+:class:`~matplotlib.axes.Axes` to the :class:`~matplotlib.axis.Axis`
+to the :class:`~matplotlib.axis.Tick`. The ``Tick`` contains the tick
+and grid line instances, as well as the label instances for the upper
+and lower ticks. Each of these is accessible directly as an attribute
+of the ``Tick``. In addition, there are boolean variables that determine
+whether the upper labels and ticks are on for the x-axis and whether
+the right labels and ticks are on for the y-axis.
============== ==========================================================
Tick attribute Description
Modified: trunk/matplotlib/doc/users/customizing.rst
===================================================================
--- trunk/matplotlib/doc/users/customizing.rst 2008-05-30 14:32:29 UTC (rev 5319)
+++ trunk/matplotlib/doc/users/customizing.rst 2008-05-30 16:21:21 UTC (rev 5320)
@@ -23,4 +23,4 @@
A sample matplotlibrc file
--------------------------
-.. literalinclude:: ../mpl_data/matplotlibrc
\ No newline at end of file
+.. literalinclude:: ../mpl_data/matplotlibrc
Modified: trunk/matplotlib/doc/users/index.rst
===================================================================
--- trunk/matplotlib/doc/users/index.rst 2008-05-30 14:32:29 UTC (rev 5319)
+++ trunk/matplotlib/doc/users/index.rst 2008-05-30 16:21:21 UTC (rev 5320)
@@ -9,8 +9,8 @@
matplotlib is a library for making 2D plots of arrays in `Python
<http://www.python.org>`_. Although it has its origins in emulating
-the `Matlab (TM) <http://www.mathworks.com>`_ graphics commands, it does
-not require MATLAB (TM), and can be used in a Pythonic, object oriented
+the `MATLAB™ <http://www.mathworks.com>`_ graphics commands, it does
+not require MATLAB, and can be used in a Pythonic, object oriented
way. Although matplotlib is written primarily in pure Python, it
makes heavy use of `NumPy <http://www.numpy.org>`_ and other extension
code to provide good performance even for large arrays.
@@ -22,14 +22,14 @@
should just work.
For years, I used to use MATLAB exclusively for data analysis and
-visualization. Matlab excels at making nice looking plots easy. When
+visualization. MATLAB excels at making nice looking plots easy. When
I began working with EEG data, I found that I needed to write
applications to interact with my data, and developed and EEG analysis
-application in Matlab. As the application grew in complexity,
+application in MATLAB. As the application grew in complexity,
interacting with databases, http servers, manipulating complex data
-structures, I began to strain against the limitations of Matlab as a
+structures, I began to strain against the limitations of MATLAB as a
programming language, and decided to start over in Python. Python
-more than makes up for all of matlab's deficiencies as a programming
+more than makes up for all of MATLAB's deficiencies as a programming
language, but I was having difficulty finding a 2D plotting package
(for 3D `VTK <http://www.vtk.org/>`_) more than exceeds all of my needs).
@@ -52,9 +52,9 @@
Finding no package that suited me just right, I did what any
self-respecting Python programmer would do: rolled up my sleeves and
dived in. Not having any real experience with computer graphics, I
-decided to emulate Matlab's plotting capabilities because that is
-something Matlab does very well. This had the added advantage that
-many people have a lot of Matlab experience, and thus they can
+decided to emulate MATLAB's plotting capabilities because that is
+something MATLAB does very well. This had the added advantage that
+many people have a lot of MATLAB experience, and thus they can
quickly get up to steam plotting in python. From a developer's
perspective, having a fixed user interface (the pylab interface) has
been very useful, because the guts of the code base can be redesigned
@@ -63,7 +63,7 @@
The matplotlib code is conceptually divided into three parts: the
*pylab interface* is the set of functions provided by
:mod:`matplotlib.pylab` which allow the user to create plots with code
-quite similar to Matlab figure generating code. The *matplotlib
+quite similar to MATLAB figure generating code. The *matplotlib
frontend* or *matplotlib API* is the set of classes that do the heavy
lifting, creating and managing figures, text, lines, plots and so on.
This is an abstract interface that knows nothing about output. The
@@ -86,7 +86,7 @@
to a printer or publishers. Others deploy matplotlib on a web
application server to generate PNG output for inclusion in
dynamically-generated web pages. Some use matplotlib interactively
-from the Python shell in Tkinter on Windows (TM) My primary use is to
+from the Python shell in Tkinter on Windows™. My primary use is to
embed matplotlib in a Gtk+ EEG application that runs on Windows, Linux
and Macintosh OS X.
Modified: trunk/matplotlib/doc/users/pyplot_tutorial.rst
===================================================================
--- trunk/matplotlib/doc/users/pyplot_tutorial.rst 2008-05-30 14:32:29 UTC (rev 5319)
+++ trunk/matplotlib/doc/users/pyplot_tutorial.rst 2008-05-30 16:21:21 UTC (rev 5320)
@@ -27,7 +27,7 @@
:func:`~matplotlib.pyplot.plot` is a versatile command, and will take
an arbitrary number of arguments. For example, to plot x versus y,
you can issue the command::
-
+
plt.plot([1,2,3,4], [1,4,9,16])
For every x, y pair of arguments, there is a optional third argument
@@ -70,7 +70,7 @@
several ways to set line properties
* Use keyword args::
-
+
plt.plot(x, y, linewidth=2.0)
@@ -208,7 +208,7 @@
The :func:`~matplotlib.pyplot.text` command can be used to add text in
an arbitrary location, and the :func:`~matplotlib.pyplot.xlabel`,
:func:`~matplotlib.pyplot.ylabel` and :func:`~matplotlib.pyplot.title`
-are used to add text in the indicated locations.
+are used to add text in the indicated locations.
.. literalinclude:: figures/pyplot_text.py
@@ -339,4 +339,4 @@
-
\ No newline at end of file
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2008-05-30 14:32:30
|
Revision: 5319
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5319&view=rev
Author: mdboom
Date: 2008-05-30 07:32:29 -0700 (Fri, 30 May 2008)
Log Message:
-----------
Fix mathtext bug (fractions too close together)
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/mathtext.py
Modified: trunk/matplotlib/lib/matplotlib/mathtext.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/mathtext.py 2008-05-30 14:29:27 UTC (rev 5318)
+++ trunk/matplotlib/lib/matplotlib/mathtext.py 2008-05-30 14:32:29 UTC (rev 5319)
@@ -656,7 +656,7 @@
def get_underline_thickness(self, font, fontsize, dpi):
cached_font = self._get_font(font)
- return cached_font.font.underline_thickness / 64.0 / fontsize * (10.0 * dpi / 100.0)
+ return (cached_font.font.underline_thickness / 64.0 / fontsize) * (dpi)
def get_kern(self, font1, fontclass1, sym1, fontsize1,
font2, fontclass2, sym2, fontsize2, dpi):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-05-30 14:29:35
|
Revision: 5318
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5318&view=rev
Author: jdh2358
Date: 2008-05-30 07:29:27 -0700 (Fri, 30 May 2008)
Log Message:
-----------
removed htdocs examples
Removed Paths:
-------------
trunk/htdocs/examples/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2008-05-30 14:10:15
|
Revision: 5317
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5317&view=rev
Author: jswhit
Date: 2008-05-30 07:10:10 -0700 (Fri, 30 May 2008)
Log Message:
-----------
release 0.99
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2008-05-30 12:23:54 UTC (rev 5316)
+++ trunk/toolkits/basemap/Changelog 2008-05-30 14:10:10 UTC (rev 5317)
@@ -1,4 +1,4 @@
-version 0.99
+version 0.99 (svn revision 5316)
* updated pyproj to 1.8.5.
* fixed bug in NetCDFFile creating masked arrays when both
_FillValue and missing_value exist.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2008-05-30 12:23:58
|
Revision: 5316
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5316&view=rev
Author: mdboom
Date: 2008-05-30 05:23:54 -0700 (Fri, 30 May 2008)
Log Message:
-----------
Tagging 0.91.3 release
Added Paths:
-----------
tags/v0_91_3/
Copied: tags/v0_91_3 (from rev 5315, branches/v0_91_maint)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2008-05-30 12:23:13
|
Revision: 5315
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5315&view=rev
Author: mdboom
Date: 2008-05-30 05:23:06 -0700 (Fri, 30 May 2008)
Log Message:
-----------
Tagging 0.98 release
Added Paths:
-----------
tags/v0_98_0/
Copied: tags/v0_98_0 (from rev 5314, trunk/matplotlib)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cm...@us...> - 2008-05-30 03:09:55
|
Revision: 5314
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5314&view=rev
Author: cmoad
Date: 2008-05-29 20:09:53 -0700 (Thu, 29 May 2008)
Log Message:
-----------
new release prep
Modified Paths:
--------------
trunk/matplotlib/CHANGELOG
trunk/matplotlib/MANIFEST.in
trunk/matplotlib/lib/matplotlib/__init__.py
Modified: trunk/matplotlib/CHANGELOG
===================================================================
--- trunk/matplotlib/CHANGELOG 2008-05-30 03:07:39 UTC (rev 5313)
+++ trunk/matplotlib/CHANGELOG 2008-05-30 03:09:53 UTC (rev 5314)
@@ -1,3 +1,6 @@
+===============================================================
+2008-05-29 Released 0.98.0 at revision 5314
+
2008-05-29 matplotlib.image.imread now no longer always returns RGBA
-- if the image is luminance or RGB, it will return a MxN
or MxNx3 array if possible. Also uint8 is no longer always
Modified: trunk/matplotlib/MANIFEST.in
===================================================================
--- trunk/matplotlib/MANIFEST.in 2008-05-30 03:07:39 UTC (rev 5313)
+++ trunk/matplotlib/MANIFEST.in 2008-05-30 03:09:53 UTC (rev 5314)
@@ -18,7 +18,7 @@
prune examples/_tmp_*
recursive-include src *.cpp *.c *.h
recursive-include CXX *.cxx *.hxx *.c *.h
-recursive-include agg23 *
+recursive-include agg24 *
recursive-include lib *
recursive-include swig *
recursive-include ttconv *.cpp *.h
Modified: trunk/matplotlib/lib/matplotlib/__init__.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/__init__.py 2008-05-30 03:07:39 UTC (rev 5313)
+++ trunk/matplotlib/lib/matplotlib/__init__.py 2008-05-30 03:09:53 UTC (rev 5314)
@@ -55,7 +55,7 @@
"""
from __future__ import generators
-__version__ = '0.98pre'
+__version__ = '0.98.0'
__revision__ = '$Revision$'
__date__ = '$Date$'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cm...@us...> - 2008-05-30 03:07:41
|
Revision: 5313
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5313&view=rev
Author: cmoad
Date: 2008-05-29 20:07:39 -0700 (Thu, 29 May 2008)
Log Message:
-----------
minor rev bump
Modified Paths:
--------------
branches/v0_91_maint/CHANGELOG
branches/v0_91_maint/lib/matplotlib/__init__.py
Modified: branches/v0_91_maint/CHANGELOG
===================================================================
--- branches/v0_91_maint/CHANGELOG 2008-05-29 22:59:43 UTC (rev 5312)
+++ branches/v0_91_maint/CHANGELOG 2008-05-30 03:07:39 UTC (rev 5313)
@@ -1,4 +1,5 @@
-=============================================================== 2008-01-06 Released 0.91.3 at revision 5312
+===============================================================
+2008-05-29 Released 0.91.3 at revision 5313
2008-05-29 matplotlib.image.imread now no longer always returns RGBA
-- if the image is luminance or RGB, it will return a MxN
Modified: branches/v0_91_maint/lib/matplotlib/__init__.py
===================================================================
--- branches/v0_91_maint/lib/matplotlib/__init__.py 2008-05-29 22:59:43 UTC (rev 5312)
+++ branches/v0_91_maint/lib/matplotlib/__init__.py 2008-05-30 03:07:39 UTC (rev 5313)
@@ -55,7 +55,7 @@
"""
from __future__ import generators
-__version__ = '0.91.3svn'
+__version__ = '0.91.3'
__revision__ = '$Revision$'
__date__ = '$Date$'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cm...@us...> - 2008-05-29 22:59:47
|
Revision: 5312
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5312&view=rev
Author: cmoad
Date: 2008-05-29 15:59:43 -0700 (Thu, 29 May 2008)
Log Message:
-----------
tagging new version
Modified Paths:
--------------
branches/v0_91_maint/CHANGELOG
branches/v0_91_maint/lib/matplotlib/__init__.py
Modified: branches/v0_91_maint/CHANGELOG
===================================================================
--- branches/v0_91_maint/CHANGELOG 2008-05-29 21:37:55 UTC (rev 5311)
+++ branches/v0_91_maint/CHANGELOG 2008-05-29 22:59:43 UTC (rev 5312)
@@ -1,3 +1,5 @@
+=============================================================== 2008-01-06 Released 0.91.3 at revision 5312
+
2008-05-29 matplotlib.image.imread now no longer always returns RGBA
-- if the image is luminance or RGB, it will return a MxN
or MxNx3 array if possible. Also uint8 is no longer always
Modified: branches/v0_91_maint/lib/matplotlib/__init__.py
===================================================================
--- branches/v0_91_maint/lib/matplotlib/__init__.py 2008-05-29 21:37:55 UTC (rev 5311)
+++ branches/v0_91_maint/lib/matplotlib/__init__.py 2008-05-29 22:59:43 UTC (rev 5312)
@@ -55,7 +55,7 @@
"""
from __future__ import generators
-__version__ = '0.91.2svn'
+__version__ = '0.91.3svn'
__revision__ = '$Revision$'
__date__ = '$Date$'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|