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
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
1
(1) |
2
(8) |
3
(2) |
4
|
5
(6) |
6
(27) |
7
(7) |
8
(5) |
9
(3) |
10
|
11
(1) |
12
|
13
(2) |
14
(9) |
15
(7) |
16
(5) |
17
(2) |
18
|
19
|
20
(2) |
21
|
22
|
23
(5) |
24
(2) |
25
(2) |
26
(4) |
27
(4) |
28
(7) |
29
(5) |
30
(6) |
31
(6) |
Revision: 8508 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8508&view=rev Author: jdh2358 Date: 2010年07月06日 14:15:32 +0000 (2010年7月06日) Log Message: ----------- re-initing v1_0_maint uninit Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Modified: svnmerge-integrated - /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /trunk/matplotlib:1-7315 + /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8504 /trunk/matplotlib:1-7315 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8507 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8507&view=rev Author: jdh2358 Date: 2010年07月06日 14:13:58 +0000 (2010年7月06日) Log Message: ----------- test commit; experimenting w/ svnmerge Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Modified: svnmerge-integrated - /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8504 /trunk/matplotlib:1-7315 + /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /trunk/matplotlib:1-7315 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8506 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8506&view=rev Author: jdh2358 Date: 2010年07月06日 14:11:21 +0000 (2010年7月06日) Log Message: ----------- updated coding guide docs w/ new release branch Modified Paths: -------------- branches/v1_0_maint/doc/devel/coding_guide.rst Modified: branches/v1_0_maint/doc/devel/coding_guide.rst =================================================================== --- branches/v1_0_maint/doc/devel/coding_guide.rst 2010年07月06日 13:59:01 UTC (rev 8505) +++ branches/v1_0_maint/doc/devel/coding_guide.rst 2010年07月06日 14:11:21 UTC (rev 8506) @@ -24,17 +24,13 @@ svn co https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/trunk/\ matplotlib mpl --username=youruser --password=yourpass -Branch checkouts, eg the maintenance branch:: +Branch checkouts, eg the 1.0.x maintenance branch:: svn co https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/\ - v0_99_maint mpl99 --username=youruser --password=yourpass + v1_0_maint mpl1 --username=youruser --password=yourpass -The current release of the trunk is in the 0.99.x maintenance branch:: - svn co https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/\ - v0_99_maint mpl99 --username=youruser --password=yourpass - Committing changes ------------------ @@ -96,7 +92,7 @@ svnmerge.py merge -S BRANCHNAME Where BRANCHNAME is the name of the branch to merge *from*, - e.g. v0_99_maint. + e.g. v1_0_maint. If you wish to merge only specific revisions (in an unusual situation), do:: @@ -130,17 +126,17 @@ with this. * Creating a new branch from the trunk (if the release version is - 0.99 at revision 6573):: + 1.0 at revision 8503):: > svn copy \ - https://matplotlib.svn.sf.net/svnroot/matplotlib/trunk/matplotlib@7315 \ - https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v0_99_maint \ - -m "Creating maintenance branch for 0.99" + https://matplotlib.svn.sf.net/svnroot/matplotlib/trunk/matplotlib@8503 \ + https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v1_0_maint \ + -m "Creating maintenance branch for 1.0" * You can add a new branch for the trunk to "track" using "svnmerge.py init", e.g., from a working copy of the trunk:: - > svnmerge.py init https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_99_maint + > svnmerge.py init https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v1_0_maint property 'svnmerge-integrated' set on '.' After doing a "svn commit" on this, this merge tracking is available @@ -150,7 +146,7 @@ * Tracking can later be removed with the "svnmerge.py uninit" command, e.g.:: - > svnmerge.py -S v0_99_maint uninit + > svnmerge.py -S v1_0_maint uninit .. _using-git: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8505 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8505&view=rev Author: jdh2358 Date: 2010年07月06日 13:59:01 +0000 (2010年7月06日) Log Message: ----------- initialized merge tracking on 1.0 branch Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Modified: svnmerge-integrated - /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /trunk/matplotlib:1-7315 + /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8504 /trunk/matplotlib:1-7315 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8504 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8504&view=rev Author: jdh2358 Date: 2010年07月06日 13:56:59 +0000 (2010年7月06日) Log Message: ----------- Creating maintenance branch for 1.0 Added Paths: ----------- branches/v1_0_maint/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8503 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8503&view=rev Author: jdh2358 Date: 2010年07月06日 13:56:31 +0000 (2010年7月06日) Log Message: ----------- tagging for release 1.0 Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/doc/pyplots/tex_demo.png trunk/matplotlib/examples/pylab_examples/tex_demo.py trunk/matplotlib/lib/matplotlib/__init__.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2010年07月06日 08:50:34 UTC (rev 8502) +++ trunk/matplotlib/CHANGELOG 2010年07月06日 13:56:31 UTC (rev 8503) @@ -1,3 +1,6 @@ +2010年07月06日 Tagging for mpl 1.0 at r8502 + + 2010年07月05日 Added Ben Root's patch to put 3D plots in arbitrary axes, allowing you to mix 3d and 2d in different axes/subplots or to have multiple 3D plots in one figure. See Modified: trunk/matplotlib/doc/pyplots/tex_demo.png =================================================================== (Binary files differ) Modified: trunk/matplotlib/examples/pylab_examples/tex_demo.py =================================================================== --- trunk/matplotlib/examples/pylab_examples/tex_demo.py 2010年07月06日 08:50:34 UTC (rev 8502) +++ trunk/matplotlib/examples/pylab_examples/tex_demo.py 2010年07月06日 13:56:31 UTC (rev 8503) @@ -29,5 +29,5 @@ title(r"\TeX\ is Number $\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$!", fontsize=16, color='r') grid(True) -#savefig('tex_demo') +savefig('tex_demo') show() Modified: trunk/matplotlib/lib/matplotlib/__init__.py =================================================================== --- trunk/matplotlib/lib/matplotlib/__init__.py 2010年07月06日 08:50:34 UTC (rev 8502) +++ trunk/matplotlib/lib/matplotlib/__init__.py 2010年07月06日 13:56:31 UTC (rev 8503) @@ -99,7 +99,7 @@ """ from __future__ import generators -__version__ = '1.0.0svn' +__version__ = '1.0.0' __revision__ = '$Revision$' __date__ = '$Date$' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8502 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8502&view=rev Author: ianthomas23 Date: 2010年07月06日 08:50:34 +0000 (2010年7月06日) Log Message: ----------- Improved triplot performance. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/tri/triplot.py Modified: trunk/matplotlib/lib/matplotlib/tri/triplot.py =================================================================== --- trunk/matplotlib/lib/matplotlib/tri/triplot.py 2010年07月06日 03:04:59 UTC (rev 8501) +++ trunk/matplotlib/lib/matplotlib/tri/triplot.py 2010年07月06日 08:50:34 UTC (rev 8502) @@ -1,4 +1,9 @@ +import matplotlib.axes +from matplotlib.cbook import ls_mapper +from matplotlib.patches import PathPatch +from matplotlib.path import Path from matplotlib.tri.triangulation import Triangulation +import numpy as np def triplot(ax, *args, **kwargs): """ @@ -43,17 +48,30 @@ # If draw both lines and markers at the same time, e.g. # ax.plot(x[edges].T, y[edges].T, *args, **kwargs) # then the markers are drawn more than once which is incorrect if alpha<1. - # Hence draw of lines and markers separately. + # Hence draw lines and markers separately. - # Draw lines without markers. - marker = kwargs.pop('marker', None) - kwargs['marker'] = '' - ax.plot(x[edges].T, y[edges].T, *args, **kwargs) - if marker is None: - kwargs.pop('marker') - else: - kwargs['marker'] = marker + # Decode plot format string, e.g. 'ro-' + fmt = '' + if len(args) > 0: + fmt = args[0] + linestyle, marker, color = matplotlib.axes._process_plot_format(fmt) + # Draw lines without markers, if lines are required. + if linestyle is not None and linestyle is not 'None': + kw = kwargs.copy() + kw.pop('marker', None) # Ignore marker if set. + kw['linestyle'] = ls_mapper[linestyle] + kw['edgecolor'] = color + kw['facecolor'] = None + + vertices = np.column_stack((x[edges].flatten(), y[edges].flatten())) + codes = ([Path.MOVETO] + [Path.LINETO])*len(edges) + + path = Path(vertices, codes) + pathpatch = PathPatch(path, **kw) + + ax.add_patch(pathpatch) + # Draw markers without lines. # Should avoid drawing markers for points that are not in any triangle? kwargs['linestyle'] = '' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8501 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8501&view=rev Author: jdh2358 Date: 2010年07月06日 03:04:59 +0000 (2010年7月06日) Log Message: ----------- add some links and fixes to whats new; bump the version num Modified Paths: -------------- trunk/matplotlib/doc/users/whats_new.rst trunk/matplotlib/lib/matplotlib/__init__.py Modified: trunk/matplotlib/doc/users/whats_new.rst =================================================================== --- trunk/matplotlib/doc/users/whats_new.rst 2010年07月06日 01:43:34 UTC (rev 8500) +++ trunk/matplotlib/doc/users/whats_new.rst 2010年07月06日 03:04:59 UTC (rev 8501) @@ -27,7 +27,7 @@ Jae-Joon Lee has written :mod:`~matplotlib.gridspec`, a new module for doing complex subplot layouts, featuring row and column spans and -more. See :ref:`gridspec` for a tutorial overview. +more. See :ref:`gridspec-guide` for a tutorial overview. .. plot:: users/plotting/examples/demo_gridspec01.py @@ -116,15 +116,18 @@ --------------------------------- The matplotlib trunk is probably in as good a shape as it has ever -been, thanks to improved software carpentry. We now have a buildbot -which runs a suite of nose regression tests on every svn commit, -auto-generating a set of images and comparing them against a set of -known-goods, sending emails to developers on failures with a -pixel-by-pixel image comparison. Releases and release bugfixes happen -in branches, allowing active new feature development to happen in the -trunk while keeping the release branches stable. Thanks to Andrew -Straw, Michael Droettboom and other matplotlib developers for the -heavy lifting. +been, thanks to improved `software carpentry +<http://software-carpentry.org/>`_. We now have a `buildbot +<http://buildbot.net/trac>`_ which runs a suite of `nose +<http://code.google.com/p/python-nose/>`_ regression tests on every +svn commit, auto-generating a set of images and comparing them against +a set of known-goods, sending emails to developers on failures with a +pixel-by-pixel `image comparison +<http://mpl.code.astraw.com/overview.html>`_. Releases and release +bugfixes happen in branches, allowing active new feature development +to happen in the trunk while keeping the release branches stable. +Thanks to Andrew Straw, Michael Droettboom and other matplotlib +developers for the heavy lifting. Bugfix marathon ---------------- Modified: trunk/matplotlib/lib/matplotlib/__init__.py =================================================================== --- trunk/matplotlib/lib/matplotlib/__init__.py 2010年07月06日 01:43:34 UTC (rev 8500) +++ trunk/matplotlib/lib/matplotlib/__init__.py 2010年07月06日 03:04:59 UTC (rev 8501) @@ -4,9 +4,9 @@ A procedural interface is provided by the companion pyplot module, which may be imported directly, e.g:: - from pyplot import * + from matplotlib.pyplot import * -To include numpy functions, use:: +To include numpy functions too, use:: from pylab import * @@ -90,8 +90,8 @@ for the first time. In particular, it must be called **before** importing pylab (if pylab is imported). -matplotlib is written by John D. Hunter (jdh2358 at gmail.com) and a -host of others. +matplotlib was initially written by John D. Hunter (jdh2358 at +gmail.com) and is now developed and maintained by a host of others. Occasionally the internal documentation (python docstrings) will refer to MATLAB®, a registered trademark of The MathWorks, Inc. @@ -99,7 +99,7 @@ """ from __future__ import generators -__version__ = '1.0rc1' +__version__ = '1.0.0svn' __revision__ = '$Revision$' __date__ = '$Date$' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8500 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8500&view=rev Author: jswhit Date: 2010年07月06日 01:43:34 +0000 (2010年7月06日) Log Message: ----------- change version to 1.0 (following matplotlib's lead) Modified Paths: -------------- trunk/toolkits/basemap/Changelog trunk/toolkits/basemap/doc/conf.py trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py trunk/toolkits/basemap/setup.py Modified: trunk/toolkits/basemap/Changelog =================================================================== --- trunk/toolkits/basemap/Changelog 2010年07月06日 01:24:58 UTC (rev 8499) +++ trunk/toolkits/basemap/Changelog 2010年07月06日 01:43:34 UTC (rev 8500) @@ -1,4 +1,4 @@ -version 0.99.5 (not yet released) +version 1.0 (not yet released) * don't force adjustable='box' so Basemap is compatible with AxesGrid. Added fcstmaps_axesgrid.py example. * add support for plotting on unstructured grids using Modified: trunk/toolkits/basemap/doc/conf.py =================================================================== --- trunk/toolkits/basemap/doc/conf.py 2010年07月06日 01:24:58 UTC (rev 8499) +++ trunk/toolkits/basemap/doc/conf.py 2010年07月06日 01:43:34 UTC (rev 8500) @@ -46,9 +46,9 @@ # other places throughout the built documents. # # The short X.Y version. -version = '0.99.5' +version = '1.0' # The full version, including alpha/beta/rc tags. -release = '0.99.5' +release = '1.0' # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py =================================================================== --- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010年07月06日 01:24:58 UTC (rev 8499) +++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010年07月06日 01:43:34 UTC (rev 8500) @@ -52,7 +52,7 @@ else: basemap_datadir = os.sep.join([os.path.dirname(__file__), 'data']) -__version__ = '0.99.5' +__version__ = '1.0' # supported map projections. _projnames = {'cyl' : 'Cylindrical Equidistant', Modified: trunk/toolkits/basemap/setup.py =================================================================== --- trunk/toolkits/basemap/setup.py 2010年07月06日 01:24:58 UTC (rev 8499) +++ trunk/toolkits/basemap/setup.py 2010年07月06日 01:43:34 UTC (rev 8500) @@ -225,7 +225,7 @@ package_data = {'mpl_toolkits.basemap':pyproj_datafiles+basemap_datafiles} setup( name = "basemap", - version = "0.99.5", + version = "1.0", description = "Plot data on map projections with matplotlib", long_description = """ An add-on toolkit for matplotlib that lets you plot data This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8499 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8499&view=rev Author: jdh2358 Date: 2010年07月06日 01:24:58 +0000 (2010年7月06日) Log Message: ----------- fix some code that breaks python 2.4 Modified Paths: -------------- trunk/matplotlib/examples/api/hinton_demo.py trunk/matplotlib/lib/mpl_toolkits/axisartist/angle_helper.py Modified: trunk/matplotlib/examples/api/hinton_demo.py =================================================================== --- trunk/matplotlib/examples/api/hinton_demo.py 2010年07月06日 01:05:28 UTC (rev 8498) +++ trunk/matplotlib/examples/api/hinton_demo.py 2010年07月06日 01:24:58 UTC (rev 8499) @@ -8,7 +8,7 @@ def hinton(W, maxWeight=None, ax=None): """ - Draws a Hinton diagram for visualizing a weight matrix. + Draws a Hinton diagram for visualizing a weight matrix. """ if not ax: fig = plt.figure() @@ -23,13 +23,14 @@ ax.yaxis.set_major_locator(NullLocator()) for (x,y),w in np.ndenumerate(W): - color = 'white' if w > 0 else 'black' + if w > 0: color = 'white' + else: color = 'black' size = np.sqrt(np.abs(w)) rect = Rectangle([x - size / 2, y - size / 2], size, size, facecolor=color, edgecolor=color) ax.add_patch(rect) ax.autoscale_view() - + # Reverse the yaxis limits ax.set_ylim(*ax.get_ylim()[::-1]) Modified: trunk/matplotlib/lib/mpl_toolkits/axisartist/angle_helper.py =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/axisartist/angle_helper.py 2010年07月06日 01:05:28 UTC (rev 8498) +++ trunk/matplotlib/lib/mpl_toolkits/axisartist/angle_helper.py 2010年07月06日 01:24:58 UTC (rev 8499) @@ -179,7 +179,9 @@ def __call__(self, direction, factor, values): # hour if len(values) == 0: return [] - ss = [[-1, 1][v>0] for v in values] + #ss = [[-1, 1][v>0] for v in values] #not py24 compliant + values = np.asarray(values) + ss = np.where(values>0, 1, -1) values = np.abs(values)/15. if factor == 1: @@ -221,7 +223,9 @@ def __call__(self, direction, factor, values): if len(values) == 0: return [] - ss = [[-1, 1][v>0] for v in values] + #ss = [[-1, 1][v>0] for v in values] #not py24 compliant + values = np.asarray(values) + ss = np.where(values>0, 1, -1) values = np.abs(values) if factor == 1: return ["$%d^{\circ}$" % (s*int(v),) for (s, v) in zip(ss, values)] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8498 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8498&view=rev Author: jdh2358 Date: 2010年07月06日 01:05:28 +0000 (2010年7月06日) Log Message: ----------- added whats new for 1.0 Modified Paths: -------------- trunk/matplotlib/doc/users/whats_new.rst Added Paths: ----------- trunk/matplotlib/doc/api/gridspec_api.rst trunk/matplotlib/doc/pyplots/whats_new_1_subplot3d.py Added: trunk/matplotlib/doc/api/gridspec_api.rst =================================================================== --- trunk/matplotlib/doc/api/gridspec_api.rst (rev 0) +++ trunk/matplotlib/doc/api/gridspec_api.rst 2010年07月06日 01:05:28 UTC (rev 8498) @@ -0,0 +1,12 @@ +************* +matplotlib gridspec +************* + + +:mod:`matplotlib.gridspec` +==================== + +.. automodule:: matplotlib.gridspec + :members: + :undoc-members: + :show-inheritance: Added: trunk/matplotlib/doc/pyplots/whats_new_1_subplot3d.py =================================================================== --- trunk/matplotlib/doc/pyplots/whats_new_1_subplot3d.py (rev 0) +++ trunk/matplotlib/doc/pyplots/whats_new_1_subplot3d.py 2010年07月06日 01:05:28 UTC (rev 8498) @@ -0,0 +1,30 @@ +from mpl_toolkits.mplot3d.axes3d import Axes3D +from matplotlib import cm +#from matplotlib.ticker import LinearLocator, FixedLocator, FormatStrFormatter +import matplotlib.pyplot as plt +import numpy as np + +fig = plt.figure() + +ax = fig.add_subplot(1, 2, 1, projection='3d') +X = np.arange(-5, 5, 0.25) +Y = np.arange(-5, 5, 0.25) +X, Y = np.meshgrid(X, Y) +R = np.sqrt(X**2 + Y**2) +Z = np.sin(R) +surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet, + linewidth=0, antialiased=False) +ax.set_zlim3d(-1.01, 1.01) + +#ax.w_zaxis.set_major_locator(LinearLocator(10)) +#ax.w_zaxis.set_major_formatter(FormatStrFormatter('%.03f')) + +fig.colorbar(surf, shrink=0.5, aspect=5) + +from mpl_toolkits.mplot3d.axes3d import get_test_data +ax = fig.add_subplot(1, 2, 2, projection='3d') +X, Y, Z = get_test_data(0.05) +ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10) + +plt.show() + Modified: trunk/matplotlib/doc/users/whats_new.rst =================================================================== --- trunk/matplotlib/doc/users/whats_new.rst 2010年07月05日 23:09:51 UTC (rev 8497) +++ trunk/matplotlib/doc/users/whats_new.rst 2010年07月06日 01:05:28 UTC (rev 8498) @@ -7,11 +7,140 @@ This page just covers the highlights -- for the full story, see the `CHANGELOG <http://matplotlib.sourceforge.net/_static/CHANGELOG>`_ +new in matplotlib-1.0 +====================== + +.. _whats-new-html5: + +HTML5/Canvas backend +--------------------- + +Simon Ratcliffe and Ludwig Schwardt have released an `HTML5/Canvas +<http://code.google.com/p/mplh5canvas/>`_ backend for matplotlib. The +backend is almost feature complete, and they have done a lot of work +comparing their html5 rendered images with our core renderer Agg. The +backend features client/server interactive navigation of matplotlib +figures in an html5 compliant browser. + +Sophisticated subplot grid layout +--------------------------------- + +Jae-Joon Lee has written :mod:`~matplotlib.gridspec`, a new module for +doing complex subplot layouts, featuring row and column spans and +more. See :ref:`gridspec` for a tutorial overview. + +.. plot:: users/plotting/examples/demo_gridspec01.py + +Easy pythonic subplots +----------------------- + +Fernando Perez got tired of all the boilerplate code needed to create a +figure and multiple subplots when using the matplotlib API, and wrote +a :func:`~matplotlib.pyplot.subplots` helper function. Basic usage +allows you to create the figure and an array of subplots with numpy +indexing (starts with 0). Eg:: + + fig, axarr = plt.subplots(2, 2) + axarr[0,0].plot([1,2,3]) # upper, left + +See :ref:`pylab_examples-subplots_demo` for several code examples. + +Contour fixes and and triplot +--------------------------------- + +Ian Thomas has fixed a long-standing bug that has vexed our most +talented developers for years. :func:`~matplotlib.pyplot.contourf` +now handles interior masked regions, and the boundaries of line and +filled contours coincide. + +Additionally, he has contributed a new module `matplotlib.tri` and +helper function :func:`~matplotlib.pyplot.triplot` for creating and +plotting unstructured triangular grids. + +.. plot:: mpl_examples/pylab_examples/triplot_demo.py + +multiple calls to show supported +--------------------------------- + +A long standing request is to support multiple calls to +:func:`~matplotlib.pyplot.show`. This has been difficult because it +is hard to get consistent behavior across operating systems, user +interface toolkits and versions. Eric Firing has done a lot of work +on rationalizing show across backends, with the desired behavior to +make show raise all newly created figures and block execution until +they are closed. Repeated calls to show should raise newly created +figures since the last call. Eric has done a lot of testing on the +user interface toolkits and versions and platforms he has access to, +but it is not possible to test them all, so please report problems to +the `mailing list +<http://sourceforge.net/mailarchive/forum.php?forum_name=matplotlib-users>`_ +and `bug tracker +<http://sourceforge.net/tracker/?group_id=80706&atid=560720>`_. + + +mplot3d graphs can be embedded in arbitrary axes +------------------------------------------------- + +You can now place an mplot3d graph into an arbitrary axes location, +supporting mixing of 2D and 3D graphs in the same figure, and/or +multiple 3D graphs in a single figure, using the "projection" keyword +argument to add_axes or add_subplot. Thanks Ben Root. + +.. plot:: pyplots/whats_new_1_subplot3d.py + +tick_params +------------ + +Eric Firing wrote tick_params, a convenience method for changing the +appearance of ticks and tick labels. See pyplot function +:func:`~matplotlib.pyplot.tick_params` and associated Axes method +:meth:`~matplotlib.axes.Axes.tick_params`. + +Lots of performance and feature enhancements +--------------------------------------------- + + +* Faster magnification of large images, and the ability to zoom in to + a single pixel + +* Local installs of documentation work better + +* Improved "widgets" -- mouse grabbing is supported + +* More accurate snapping of lines to pixel boundaries + +* More consistent handling of color, particularly the alpha channel, + throughout the API + +Much improved software carpentry +--------------------------------- + +The matplotlib trunk is probably in as good a shape as it has ever +been, thanks to improved software carpentry. We now have a buildbot +which runs a suite of nose regression tests on every svn commit, +auto-generating a set of images and comparing them against a set of +known-goods, sending emails to developers on failures with a +pixel-by-pixel image comparison. Releases and release bugfixes happen +in branches, allowing active new feature development to happen in the +trunk while keeping the release branches stable. Thanks to Andrew +Straw, Michael Droettboom and other matplotlib developers for the +heavy lifting. + +Bugfix marathon +---------------- + +Eric Firing went on a bug fixing and closing marathon, closing over +100 bugs on the `bug tracker +<http://sourceforge.net/tracker/?group_id=80706&atid=560720>`_ with +help from Jae-Joon Lee, Michael Droettboom, Christoph Gohlke and +Michiel de Hoon. + + new in matplotlib-0.99 ====================== -.. _whats-new-mplot3d: + New documentation ----------------- @@ -21,6 +150,7 @@ working with paths and transformations: :ref:`path_tutorial` and :ref:`transforms_tutorial`. +.. _whats-new-mplot3d: mplot3d -------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8497 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8497&view=rev Author: jdh2358 Date: 2010年07月05日 23:09:51 +0000 (2010年7月05日) Log Message: ----------- support 3d plots in arbitrary axes; thanks Ben Root Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/examples/api/compound_path.py trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py Added Paths: ----------- trunk/matplotlib/examples/mplot3d/subplot3d_demo.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2010年07月05日 20:47:39 UTC (rev 8496) +++ trunk/matplotlib/CHANGELOG 2010年07月05日 23:09:51 UTC (rev 8497) @@ -1,3 +1,8 @@ +2010年07月05日 Added Ben Root's patch to put 3D plots in arbitrary axes, + allowing you to mix 3d and 2d in different axes/subplots or + to have multiple 3D plots in one figure. See + examples/mplot3d/subplot3d_demo.py - JDH + 2010年07月05日 Preferred kwarg names in set_xlim are now 'left' and 'right'; in set_ylim, 'bottom' and 'top'; original kwargs are still accepted without complaint. - EF Modified: trunk/matplotlib/examples/api/compound_path.py =================================================================== --- trunk/matplotlib/examples/api/compound_path.py 2010年07月05日 20:47:39 UTC (rev 8496) +++ trunk/matplotlib/examples/api/compound_path.py 2010年07月05日 23:09:51 UTC (rev 8497) @@ -21,7 +21,7 @@ vertices = np.array(vertices, float) path = Path(vertices, codes) -pathpatch = PathPatch(path, facecolor='red', edgecolor='green') +pathpatch = PathPatch(path, facecolor='None', edgecolor='green') fig = plt.figure() ax = fig.add_subplot(111) Added: trunk/matplotlib/examples/mplot3d/subplot3d_demo.py =================================================================== --- trunk/matplotlib/examples/mplot3d/subplot3d_demo.py (rev 0) +++ trunk/matplotlib/examples/mplot3d/subplot3d_demo.py 2010年07月05日 23:09:51 UTC (rev 8497) @@ -0,0 +1,30 @@ +from mpl_toolkits.mplot3d.axes3d import Axes3D +from matplotlib import cm +#from matplotlib.ticker import LinearLocator, FixedLocator, FormatStrFormatter +import matplotlib.pyplot as plt +import numpy as np + +fig = plt.figure() + +ax = fig.add_subplot(1, 2, 1, projection='3d') +X = np.arange(-5, 5, 0.25) +Y = np.arange(-5, 5, 0.25) +X, Y = np.meshgrid(X, Y) +R = np.sqrt(X**2 + Y**2) +Z = np.sin(R) +surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet, + linewidth=0, antialiased=False) +ax.set_zlim3d(-1.01, 1.01) + +#ax.w_zaxis.set_major_locator(LinearLocator(10)) +#ax.w_zaxis.set_major_formatter(FormatStrFormatter('%.03f')) + +fig.colorbar(surf, shrink=0.5, aspect=5) + +from mpl_toolkits.mplot3d.axes3d import get_test_data +ax = fig.add_subplot(1, 2, 2, projection='3d') +X, Y, Z = get_test_data(0.05) +ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10) + +plt.show() + Modified: trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py 2010年07月05日 20:47:39 UTC (rev 8496) +++ trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py 2010年07月05日 23:09:51 UTC (rev 8497) @@ -37,6 +37,7 @@ """ 3D axes object. """ + name = '3d' def __init__(self, fig, rect=None, *args, **kwargs): ''' @@ -1210,3 +1211,11 @@ Z = Z * 500 return X, Y, Z + + +######################################################## +# Register Axes3D as a 'projection' object available +# for use just like any other axes +######################################################## +import matplotlib.projections as proj +proj.projection_registry.register(Axes3D) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8496 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8496&view=rev Author: efiring Date: 2010年07月05日 20:47:39 +0000 (2010年7月05日) Log Message: ----------- set_xlim, set_ylim accept descriptive kwargs: left, right, bottom, top Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/doc/api/api_changes.rst trunk/matplotlib/lib/matplotlib/axes.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2010年07月05日 19:39:59 UTC (rev 8495) +++ trunk/matplotlib/CHANGELOG 2010年07月05日 20:47:39 UTC (rev 8496) @@ -1,7 +1,11 @@ +2010年07月05日 Preferred kwarg names in set_xlim are now 'left' and + 'right'; in set_ylim, 'bottom' and 'top'; original + kwargs are still accepted without complaint. - EF + 2010年07月05日 TkAgg and FltkAgg backends are now consistent with other interactive backends: when used in scripts from the command line (not from ipython -pylab), show blocks, - and can be called more than once. + and can be called more than once. - EF 2010年07月02日 Modified CXX/WrapPython.h to fix "swab bug" on solaris so mpl can compile on Solaris with CXX6 in the trunk. Closes Modified: trunk/matplotlib/doc/api/api_changes.rst =================================================================== --- trunk/matplotlib/doc/api/api_changes.rst 2010年07月05日 19:39:59 UTC (rev 8495) +++ trunk/matplotlib/doc/api/api_changes.rst 2010年07月05日 20:47:39 UTC (rev 8496) @@ -16,7 +16,10 @@ pyplot functions, has been changed: when view limits are set explicitly with one of these methods, autoscaling is turned off for the matching axis. A new *auto* kwarg is available to - control this behavior. + control this behavior. The limit kwargs have been renamed to + *left* and *right* instead of *xmin* and *xmax*, and *bottom* + and *top* instead of *ymin* and *ymax*. The old names may still + be used, however. * There are five new Axes methods with corresponding pyplot functions to facilitate autoscaling, tick location, and tick Modified: trunk/matplotlib/lib/matplotlib/axes.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axes.py 2010年07月05日 19:39:59 UTC (rev 8495) +++ trunk/matplotlib/lib/matplotlib/axes.py 2010年07月05日 20:47:39 UTC (rev 8496) @@ -2298,11 +2298,11 @@ def get_xlim(self): """ - Get the x-axis range [*xmin*, *xmax*] + Get the x-axis range [*left*, *right*] """ return tuple(self.viewLim.intervalx) - def set_xlim(self, xmin=None, xmax=None, emit=True, auto=False): + def set_xlim(self, left=None, right=None, emit=True, auto=False, **kw): """ call signature:: @@ -2314,23 +2314,23 @@ set_xlim((left, right)) set_xlim(left, right) - set_xlim(xmin=1) # right unchanged - set_xlim(xmax=1) # left unchanged + set_xlim(left=1) # right unchanged + set_xlim(right=1) # left unchanged Keyword arguments: - *xmin*: scalar - the left xlim - *xmax*: scalar - the right xlim + *left*: scalar + the left xlim; *xmin*, the previous name, may still be used + *right*: scalar + the right xlim; *xmax*, the previous name, may still be used *emit*: [ True | False ] notify observers of lim change *auto*: [ True | False | None ] turn *x* autoscaling on (True), off (False; default), or leave unchanged (None) - Note: the kwarg terminology may be confusing. The first value, - *xmin*, is the left, and the second, *xmax*, is the right. + Note: the *left* (formerly *xmin*) value may be greater than + the *right* (formerly *xmax*). For example, suppose *x* is years before present. Then one might use:: @@ -2343,26 +2343,34 @@ ACCEPTS: len(2) sequence of floats """ - if xmax is None and iterable(xmin): - xmin,xmax = xmin + if 'xmin' in kw: + left = kw.pop('xmin') + if 'xmax' in kw: + right = kw.pop('xmax') + if kw: + raise ValueError("unrecognized kwargs: %s" % kw.keys()) + if right is None and iterable(left): + left,right = left - self._process_unit_info(xdata=(xmin, xmax)) - if xmin is not None: - xmin = self.convert_xunits(xmin) - if xmax is not None: - xmax = self.convert_xunits(xmax) + self._process_unit_info(xdata=(left, right)) + if left is not None: + left = self.convert_xunits(left) + if right is not None: + right = self.convert_xunits(right) - old_xmin,old_xmax = self.get_xlim() - if xmin is None: xmin = old_xmin - if xmax is None: xmax = old_xmax + old_left, old_right = self.get_xlim() + if left is None: left = old_left + if right is None: right = old_right - if xmin==xmax: - warnings.warn('Attempting to set identical xmin==xmax results in singular transformations; automatically expanding. xmin=%s, xmax=%s'%(xmin, xmax)) - xmin, xmax = mtransforms.nonsingular(xmin, xmax, increasing=False) - xmin, xmax = self.xaxis.limit_range_for_scale(xmin, xmax) + if left==right: + warnings.warn(('Attempting to set identical left==right results\n' + + 'in singular transformations; automatically expanding.\n' + + 'left=%s, right=%s') % (left, right)) + left, right = mtransforms.nonsingular(left, right, increasing=False) + left, right = self.xaxis.limit_range_for_scale(left, right) - self.viewLim.intervalx = (xmin, xmax) + self.viewLim.intervalx = (left, right) if auto is not None: self._autoscaleXon = bool(auto) @@ -2377,7 +2385,7 @@ other.figure.canvas is not None): other.figure.canvas.draw_idle() - return xmin, xmax + return left, right def get_xscale(self): 'return the xaxis scale string: %s' % ( @@ -2492,11 +2500,11 @@ def get_ylim(self): """ - Get the y-axis range [*ymin*, *ymax*] + Get the y-axis range [*bottom*, *top*] """ return tuple(self.viewLim.intervaly) - def set_ylim(self, ymin=None, ymax=None, emit=True, auto=False): + def set_ylim(self, bottom=None, top=None, emit=True, auto=False, **kw): """ call signature:: @@ -2508,23 +2516,23 @@ set_ylim((bottom, top)) set_ylim(bottom, top) - set_ylim(ymin=1) # top unchanged - set_ylim(ymax=1) # bottom unchanged + set_ylim(bottom=1) # top unchanged + set_ylim(top=1) # bottom unchanged Keyword arguments: - *ymin*: scalar - the bottom ylim - *ymax*: scalar - the top ylim + *bottom*: scalar + the bottom ylim; the previous name, *ymin*, may still be used + *top*: scalar + the top ylim; the previous name, *ymax*, may still be used *emit*: [ True | False ] notify observers of lim change *auto*: [ True | False | None ] turn *y* autoscaling on (True), off (False; default), or leave unchanged (None) - Note: the kwarg terminology may be confusing. The first value, - *ymin*, is the bottom, and the second, *ymax*, is the top. + Note: the *bottom* (formerly *ymin*) value may be greater than + the *top* (formerly *ymax*). For example, suppose *y* is depth in the ocean. Then one might use:: @@ -2537,26 +2545,35 @@ ACCEPTS: len(2) sequence of floats """ - if ymax is None and iterable(ymin): - ymin,ymax = ymin + if 'ymin' in kw: + bottom = kw.pop('ymin') + if 'ymax' in kw: + top = kw.pop('ymax') + if kw: + raise ValueError("unrecognized kwargs: %s" % kw.keys()) - if ymin is not None: - ymin = self.convert_yunits(ymin) - if ymax is not None: - ymax = self.convert_yunits(ymax) + if top is None and iterable(bottom): + bottom,top = bottom - old_ymin,old_ymax = self.get_ylim() + if bottom is not None: + bottom = self.convert_yunits(bottom) + if top is not None: + top = self.convert_yunits(top) - if ymin is None: ymin = old_ymin - if ymax is None: ymax = old_ymax + old_bottom, old_top = self.get_ylim() - if ymin==ymax: - warnings.warn('Attempting to set identical ymin==ymax results in singular transformations; automatically expanding. ymin=%s, ymax=%s'%(ymin, ymax)) + if bottom is None: bottom = old_bottom + if top is None: top = old_top - ymin, ymax = mtransforms.nonsingular(ymin, ymax, increasing=False) - ymin, ymax = self.yaxis.limit_range_for_scale(ymin, ymax) + if bottom==top: + warnings.warn(('Attempting to set identical bottom==top results\n' + + 'in singular transformations; automatically expanding.\n' + + 'bottom=%s, top=%s') % (bottom, top)) - self.viewLim.intervaly = (ymin, ymax) + bottom, top = mtransforms.nonsingular(bottom, top, increasing=False) + bottom, top = self.yaxis.limit_range_for_scale(bottom, top) + + self.viewLim.intervaly = (bottom, top) if auto is not None: self._autoscaleYon = bool(auto) @@ -2571,7 +2588,7 @@ other.figure.canvas is not None): other.figure.canvas.draw_idle() - return ymin, ymax + return bottom, top def get_yscale(self): 'return the xaxis scale string: %s' % ( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8495 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8495&view=rev Author: efiring Date: 2010年07月05日 19:39:59 +0000 (2010年7月05日) Log Message: ----------- Remove experimental config subpackage using traits Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/__init__.py Removed Paths: ------------- trunk/matplotlib/lib/matplotlib/config/ Modified: trunk/matplotlib/lib/matplotlib/__init__.py =================================================================== --- trunk/matplotlib/lib/matplotlib/__init__.py 2010年07月05日 19:03:09 UTC (rev 8494) +++ trunk/matplotlib/lib/matplotlib/__init__.py 2010年07月05日 19:39:59 UTC (rev 8495) @@ -107,10 +107,6 @@ import distutils.sysconfig import distutils.version - -NEWCONFIG = False - - # Needed for toolkit setuptools support if 0: try: @@ -827,16 +823,6 @@ """ rcParams.update(rcParamsDefault) -if NEWCONFIG: - #print "importing from reorganized config system!" - try: - from matplotlib.config import (rcParams, rcdefaults, - mplConfig, save_config) - verbose.set_level(rcParams['verbose.level']) - verbose.set_fileo(rcParams['verbose.fileo']) - except: - from matplotlib.config import rcParams, rcdefaults - _use_error_msg = """ This call to matplotlib.use() has no effect because the the backend has already been chosen; matplotlib.use() must be called *before* pylab, matplotlib.pyplot, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8494 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8494&view=rev Author: efiring Date: 2010年07月05日 19:03:09 +0000 (2010年7月05日) Log Message: ----------- tkagg and fltkagg backends now have blocking show() like all the others Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/backends/backend_fltkagg.py trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py trunk/matplotlib/lib/matplotlib/rcsetup.py trunk/matplotlib/matplotlibrc.template Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2010年07月05日 01:26:53 UTC (rev 8493) +++ trunk/matplotlib/CHANGELOG 2010年07月05日 19:03:09 UTC (rev 8494) @@ -1,3 +1,8 @@ +2010年07月05日 TkAgg and FltkAgg backends are now consistent with other + interactive backends: when used in scripts from the + command line (not from ipython -pylab), show blocks, + and can be called more than once. + 2010年07月02日 Modified CXX/WrapPython.h to fix "swab bug" on solaris so mpl can compile on Solaris with CXX6 in the trunk. Closes tracker bug 3022815 - JDH Modified: trunk/matplotlib/lib/matplotlib/backends/backend_fltkagg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_fltkagg.py 2010年07月05日 01:26:53 UTC (rev 8493) +++ trunk/matplotlib/lib/matplotlib/backends/backend_fltkagg.py 2010年07月05日 19:03:09 UTC (rev 8494) @@ -97,15 +97,8 @@ """ for manager in Gcf.get_all_fig_managers(): manager.show() - #mainloop, if an fltk program exist no need to call that - #threaded (and interractive) version - if show._needmain: - Fltk.Fl.run() - show._needmain = False + Fltk.Fl.run() -show._needmain = True - - def new_figure_manager(num, *args, **kwargs): """ Create a new figure manager instance Modified: trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py 2010年07月05日 01:26:53 UTC (rev 8493) +++ trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py 2010年07月05日 19:03:09 UTC (rev 8494) @@ -64,43 +64,15 @@ figManager.show() -def show(block=False): +def show(): """ Show all figures. - Temporary, experimental kwarg *block* defaults to False to - provide the behavior present throughout mpl history to date: - interactive mode is forced on, and show does not block. - - Set *block* to True to test the proposed new behavior, - consistent with other backends, in which show does not affect - interactive mode, and always blocks until all figures are closed. - In addition, the rcParam['tk.pythoninspect'] is ignored. - - Use this kwarg only for testing; other backends do not accept - a kwarg to show, and might never do so. """ for manager in Gcf.get_all_fig_managers(): manager.show() - if block: - # proposed new behavior; seems to make this backend consistent - # with others, with no drawbacks identified yet. - Tk.mainloop() - else: - # long-time behavior: non-blocking, forces interactive mode - import matplotlib - matplotlib.interactive(True) - if rcParams['tk.pythoninspect']: - os.environ['PYTHONINSPECT'] = '1' - if show._needmain: - Tk.mainloop() - show._needmain = False + Tk.mainloop() -show._needmain = True # This can go away if we eliminate block=False option. - - - - def new_figure_manager(num, *args, **kwargs): """ Create a new figure manager instance Modified: trunk/matplotlib/lib/matplotlib/rcsetup.py =================================================================== --- trunk/matplotlib/lib/matplotlib/rcsetup.py 2010年07月05日 01:26:53 UTC (rev 8493) +++ trunk/matplotlib/lib/matplotlib/rcsetup.py 2010年07月05日 19:03:09 UTC (rev 8494) @@ -297,6 +297,11 @@ warnings.warn("Deprecated negative_linestyle specification; use 'solid' or 'dashed'") return (0, dashes) # (offset, (solid, blank)) +def validate_tkpythoninspect(s): + # Introduced 2010年07月05日 + warnings.warn("tk.pythoninspect is obsolete, and has no effect") + return validate_bool(s) + validate_legend_loc = ValidateInStrings('legend_loc',[ 'best', 'upper right', @@ -526,7 +531,7 @@ 'cairo.format' : ['png', validate_cairo_format], 'tk.window_focus' : [False, validate_bool], # Maintain shell focus for TkAgg - 'tk.pythoninspect' : [False, validate_bool], # Set PYTHONINSPECT + 'tk.pythoninspect' : [False, validate_tkpythoninspect], # obsolete 'ps.papersize' : ['letter', validate_ps_papersize], # Set the papersize/type 'ps.useafm' : [False, validate_bool], # Set PYTHONINSPECT 'ps.usedistiller' : [False, validate_ps_distiller], # use ghostscript or xpdf to distill ps output Modified: trunk/matplotlib/matplotlibrc.template =================================================================== --- trunk/matplotlib/matplotlibrc.template 2010年07月05日 01:26:53 UTC (rev 8493) +++ trunk/matplotlib/matplotlibrc.template 2010年07月05日 19:03:09 UTC (rev 8494) @@ -319,7 +319,6 @@ # tk backend params #tk.window_focus : False # Maintain shell focus for TkAgg -#tk.pythoninspect : False # tk sets PYTHONINSEPCT # ps backend params #ps.papersize : letter # auto, letter, legal, ledger, A0-A10, B0-B10 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8493 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8493&view=rev Author: jdh2358 Date: 2010年07月05日 01:26:53 +0000 (2010年7月05日) Log Message: ----------- Applied Ben's rotate button patch for axes3d Modified Paths: -------------- trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py Modified: trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py 2010年07月05日 01:25:09 UTC (rev 8492) +++ trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py 2010年07月05日 01:26:53 UTC (rev 8493) @@ -446,7 +446,7 @@ if self.M is None: return '' - if self.button_pressed == 1: + if self.button_pressed in self._rotate_btn: return 'azimuth=%d deg, elevation=%d deg ' % (self.azim, self.elev) # ignore xd and yd and display angles instead This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8492 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8492&view=rev Author: jdh2358 Date: 2010年07月05日 01:25:09 +0000 (2010年7月05日) Log Message: ----------- applied Ben's mplconfig patch Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/config/mplconfig.py Modified: trunk/matplotlib/lib/matplotlib/config/mplconfig.py =================================================================== --- trunk/matplotlib/lib/matplotlib/config/mplconfig.py 2010年07月03日 05:09:49 UTC (rev 8491) +++ trunk/matplotlib/lib/matplotlib/config/mplconfig.py 2010年07月05日 01:25:09 UTC (rev 8492) @@ -117,7 +117,7 @@ class path(TConfig): simplify = T.false - simplify_threshold = T.float(1.0 / 9.0) + simplify_threshold = T.Float(1.0 / 9.0) snap = T.true class patch(TConfig): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8491 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8491&view=rev Author: efiring Date: 2010年07月03日 05:09:49 +0000 (2010年7月03日) Log Message: ----------- fix new bugs in handling of xlim, ylim, margins Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/axes.py Modified: trunk/matplotlib/lib/matplotlib/axes.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axes.py 2010年07月03日 01:20:53 UTC (rev 8490) +++ trunk/matplotlib/lib/matplotlib/axes.py 2010年07月03日 05:09:49 UTC (rev 8491) @@ -830,7 +830,7 @@ self.xaxis.major = self._sharex.xaxis.major self.xaxis.minor = self._sharex.xaxis.minor x0, x1 = self._sharex.get_xlim() - self.set_xlim(x0, x1, emit=False) + self.set_xlim(x0, x1, emit=False, auto=None) self.xaxis.set_scale(self._sharex.xaxis.get_scale()) else: self.xaxis.set_scale('linear') @@ -839,7 +839,7 @@ self.yaxis.major = self._sharey.yaxis.major self.yaxis.minor = self._sharey.yaxis.minor y0, y1 = self._sharey.get_ylim() - self.set_ylim(y0, y1, emit=False) + self.set_ylim(y0, y1, emit=False, auto=None) self.yaxis.set_scale(self._sharey.yaxis.get_scale()) else: self.yaxis.set_scale('linear') @@ -1678,7 +1678,7 @@ *tight* to *None* will preserve the previous setting. Specifying any margin changes only the autoscaling; for example, - if *xmargin* is not zero, then *xmargin* times the X data + if *xmargin* is not None, then *xmargin* times the X data interval will be added to each end of that interval before it is used in autoscaling. @@ -1700,9 +1700,12 @@ if my is not None: self.set_ymargin(my) - self.autoscale_view(tight=tight, scalex=bool(mx), scaley=bool(my)) + scalex = (mx is not None) + scaley = (my is not None) + self.autoscale_view(tight=tight, scalex=scalex, scaley=scaley) + def set_rasterization_zorder(self, z): """ Set zorder value below which artists will be rasterized @@ -2368,7 +2371,8 @@ # Call all of the other x-axes that are shared with this one for other in self._shared_x_axes.get_siblings(self): if other is not self: - other.set_xlim(self.viewLim.intervalx, emit=False) + other.set_xlim(self.viewLim.intervalx, + emit=False, auto=auto) if (other.figure != self.figure and other.figure.canvas is not None): other.figure.canvas.draw_idle() @@ -2561,7 +2565,8 @@ # Call all of the other y-axes that are shared with this one for other in self._shared_y_axes.get_siblings(self): if other is not self: - other.set_ylim(self.viewLim.intervaly, emit=False) + other.set_ylim(self.viewLim.intervaly, + emit=False, auto=auto) if (other.figure != self.figure and other.figure.canvas is not None): other.figure.canvas.draw_idle() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8490 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8490&view=rev Author: efiring Date: 2010年07月03日 01:20:53 +0000 (2010年7月03日) Log Message: ----------- colorbar: use pcolormesh instead of pcolor, to reduce artifacts Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/colorbar.py Modified: trunk/matplotlib/lib/matplotlib/colorbar.py =================================================================== --- trunk/matplotlib/lib/matplotlib/colorbar.py 2010年07月02日 23:03:44 UTC (rev 8489) +++ trunk/matplotlib/lib/matplotlib/colorbar.py 2010年07月03日 01:20:53 UTC (rev 8490) @@ -397,19 +397,18 @@ Draw the colors using :meth:`~matplotlib.axes.Axes.pcolor`; optionally add separators. ''' - ## Change to pcolorfast after fixing bugs in some backends... if self.orientation == 'vertical': args = (X, Y, C) else: args = (np.transpose(Y), np.transpose(X), np.transpose(C)) kw = {'cmap':self.cmap, 'norm':self.norm, - 'shading':'flat', 'alpha':self.alpha} + 'alpha':self.alpha,} # Save, set, and restore hold state to keep pcolor from # clearing the axes. Ordinarily this will not be needed, # since the axes object should already have hold set. _hold = self.ax.ishold() self.ax.hold(True) - col = self.ax.pcolor(*args, **kw) + col = self.ax.pcolormesh(*args, **kw) self.ax.hold(_hold) #self.add_observer(col) # We should observe, not be observed... This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8489 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8489&view=rev Author: ryanmay Date: 2010年07月02日 23:03:44 +0000 (2010年7月02日) Log Message: ----------- Clean up docstring of restore_region(). Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/backends/backend_agg.py Modified: trunk/matplotlib/lib/matplotlib/backends/backend_agg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_agg.py 2010年07月02日 22:44:27 UTC (rev 8488) +++ trunk/matplotlib/lib/matplotlib/backends/backend_agg.py 2010年07月02日 23:03:44 UTC (rev 8489) @@ -269,11 +269,11 @@ def restore_region(self, region, bbox=None, xy=None): """ - restore the saved region. if bbox (instance of BboxBase, or + Restore the saved region. If bbox (instance of BboxBase, or its extents) is given, only the region specified by the bbox will be restored. *xy* (a tuple of two floasts) optionally - specify the new position (of the LLC of the originally region, - not the LLC of the bbox) that the region will be restored. + specifies the new position (the LLC of the original region, + not the LLC of the bbox) where the region will be restored. >>> region = renderer.copy_from_bbox() >>> x1, y1, x2, y2 = region.get_extents() @@ -445,4 +445,3 @@ renderer.width, renderer.height, filename_or_obj, self.figure.dpi) renderer.dpi = original_dpi - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8488 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8488&view=rev Author: efiring Date: 2010年07月02日 22:44:27 +0000 (2010年7月02日) Log Message: ----------- tick_params works with existing ticks instead of starting with new ones Modified Paths: -------------- trunk/matplotlib/examples/pylab_examples/multiple_yaxis_with_spines.py trunk/matplotlib/lib/matplotlib/axis.py trunk/matplotlib/lib/matplotlib/projections/geo.py trunk/matplotlib/lib/matplotlib/projections/polar.py Modified: trunk/matplotlib/examples/pylab_examples/multiple_yaxis_with_spines.py =================================================================== --- trunk/matplotlib/examples/pylab_examples/multiple_yaxis_with_spines.py 2010年07月02日 19:03:05 UTC (rev 8487) +++ trunk/matplotlib/examples/pylab_examples/multiple_yaxis_with_spines.py 2010年07月02日 22:44:27 UTC (rev 8488) @@ -54,8 +54,13 @@ par1.yaxis.label.set_color(p2.get_color()) par2.yaxis.label.set_color(p3.get_color()) + tkw = dict(size=4, width=1.5) + host.tick_params(axis='y', colors=p1.get_color(), **tkw) + par1.tick_params(axis='y', colors=p2.get_color(), **tkw) + par2.tick_params(axis='y', colors=p3.get_color(), **tkw) + host.tick_params(axis='x', **tkw) + lines = [p1, p2, p3] host.legend(lines, [l.get_label() for l in lines]) - plt.draw() plt.show() Modified: trunk/matplotlib/lib/matplotlib/axis.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axis.py 2010年07月02日 19:03:05 UTC (rev 8487) +++ trunk/matplotlib/lib/matplotlib/axis.py 2010年07月02日 22:44:27 UTC (rev 8488) @@ -84,7 +84,8 @@ """ artist.Artist.__init__(self) - if gridOn is None: gridOn = rcParams['axes.grid'] + if gridOn is None: + gridOn = rcParams['axes.grid'] self.set_figure(axes.figure) self.axes = axes @@ -148,18 +149,11 @@ self.update_position(loc) def apply_tickdir(self, tickdir): - if tickdir is None: - tickdir = rcParams['%s.direction' % self._name] - self._tickdir = tickdir + """ + Calculate self._pad and self._tickmarkers + """ + pass - if self._tickdir == 'in': - self._xtickmarkers = (mlines.TICKUP, mlines.TICKDOWN) - self._ytickmarkers = (mlines.TICKRIGHT, mlines.TICKLEFT) - self._pad = self._base_pad - else: - self._xtickmarkers = (mlines.TICKDOWN, mlines.TICKUP) - self._ytickmarkers = (mlines.TICKLEFT, mlines.TICKRIGHT) - self._pad = self._base_pad + self._size def get_children(self): children = [self.tick1line, self.tick2line, self.gridline, self.label1, self.label2] @@ -271,20 +265,81 @@ def set_view_interval(self, vmin, vmax, ignore=False): raise NotImplementedError('Derived must override') + def _apply_params(self, **kw): + switchkw = ['gridOn', 'tick1On', 'tick2On', 'label1On', 'label2On'] + switches = [k for k in kw if k in switchkw] + for k in switches: + setattr(self, k, kw.pop(k)) + dirpad = [k for k in kw if k in ['pad', 'tickdir']] + if dirpad: + self._base_pad = kw.pop('pad', self._base_pad) + self.apply_tickdir(kw.pop('tickdir', self._tickdir)) + trans = self._get_text1_transform()[0] + self.label1.set_transform(trans) + trans = self._get_text2_transform()[0] + self.label2.set_transform(trans) + self.tick1line.set_marker(self._tickmarkers[0]) + self.tick2line.set_marker(self._tickmarkers[1]) + tick_kw = dict([kv for kv in kw.items() + if kv[0] in ['color', 'zorder']]) + if tick_kw: + self.tick1line.set(**tick_kw) + self.tick2line.set(**tick_kw) + for k, v in tick_kw.items(): + setattr(self, '_'+k, v) + tick_list = [kv for kv in kw.items() if kv[0] in ['size', 'width']] + for k, v in tick_list: + setattr(self, '_'+k, v) + if k == 'size': + self.tick1line.set_markersize(v) + self.tick2line.set_markersize(v) + else: + self.tick1line.set_markeredgewidth(v) + self.tick2line.set_markeredgewidth(v) + label_list = [k for k in kw.items() + if k[0] in ['labelsize', 'labelcolor']] + if label_list: + label_kw = dict([(k[5:], v) for (k, v) in label_list]) + self.label1.set(**label_kw) + self.label2.set(**label_kw) + for k, v in label_kw.items(): + setattr(self, '_'+k, v) + + class XTick(Tick): """ Contains all the Artists needed to make an x tick - the tick line, the label text and the grid line """ __name__ = 'xtick' + + def _get_text1_transform(self): + return self.axes.get_xaxis_text1_transform(self._pad) + + def _get_text2_transform(self): + return self.axes.get_xaxis_text2_transform(self._pad) + + def apply_tickdir(self, tickdir): + if tickdir is None: + tickdir = rcParams['%s.direction' % self._name] + self._tickdir = tickdir + + if self._tickdir == 'in': + self._tickmarkers = (mlines.TICKUP, mlines.TICKDOWN) + self._pad = self._base_pad + else: + self._tickmarkers = (mlines.TICKDOWN, mlines.TICKUP) + self._pad = self._base_pad + self._size + + def _get_text1(self): 'Get the default Text instance' # the y loc is 3 points below the min of y axis # get the affine as an a,b,c,d,tx,ty list # x in data coords, y in axes coords #t = mtext.Text( - trans, vert, horiz = self.axes.get_xaxis_text1_transform(self._pad) + trans, vert, horiz = self._get_text1_transform() t = mtext.Text( x=0, y=0, fontproperties=font_manager.FontProperties(size=self._labelsize), @@ -302,7 +357,7 @@ 'Get the default Text 2 instance' # x in data coords, y in axes coords #t = mtext.Text( - trans, vert, horiz = self.axes.get_xaxis_text2_transform(self._pad) + trans, vert, horiz = self._get_text2_transform() t = mtext.Text( x=0, y=1, fontproperties=font_manager.FontProperties(size=self._labelsize), @@ -320,7 +375,7 @@ l = mlines.Line2D(xdata=(0,), ydata=(0,), color=self._color, linestyle = 'None', - marker = self._xtickmarkers[0], + marker = self._tickmarkers[0], markersize=self._size, markeredgewidth=self._width, zorder=self._zorder, @@ -335,7 +390,7 @@ l = mlines.Line2D( xdata=(0,), ydata=(1,), color=self._color, linestyle = 'None', - marker = self._xtickmarkers[1], + marker = self._tickmarkers[1], markersize=self._size, markeredgewidth=self._width, zorder=self._zorder, @@ -412,11 +467,30 @@ """ __name__ = 'ytick' + def _get_text1_transform(self): + return self.axes.get_yaxis_text1_transform(self._pad) + + def _get_text2_transform(self): + return self.axes.get_yaxis_text2_transform(self._pad) + + def apply_tickdir(self, tickdir): + if tickdir is None: + tickdir = rcParams['%s.direction' % self._name] + self._tickdir = tickdir + + if self._tickdir == 'in': + self._tickmarkers = (mlines.TICKRIGHT, mlines.TICKLEFT) + self._pad = self._base_pad + else: + self._tickmarkers = (mlines.TICKLEFT, mlines.TICKRIGHT) + self._pad = self._base_pad + self._size + + # how far from the y axis line the right of the ticklabel are def _get_text1(self): 'Get the default Text instance' # x in axes coords, y in data coords - trans, vert, horiz = self.axes.get_yaxis_text1_transform(self._pad) + trans, vert, horiz = self._get_text1_transform() t = mtext.Text( x=0, y=0, fontproperties=font_manager.FontProperties(size=self._labelsize), @@ -432,7 +506,7 @@ def _get_text2(self): 'Get the default Text instance' # x in axes coords, y in data coords - trans, vert, horiz = self.axes.get_yaxis_text2_transform(self._pad) + trans, vert, horiz = self._get_text2_transform() t = mtext.Text( x=1, y=0, fontproperties=font_manager.FontProperties(size=self._labelsize), @@ -450,7 +524,7 @@ l = mlines.Line2D( (0,), (0,), color=self._color, - marker = self._ytickmarkers[0], + marker = self._tickmarkers[0], linestyle = 'None', markersize=self._size, markeredgewidth=self._width, @@ -465,7 +539,7 @@ # x in axes coords, y in data coords l = mlines.Line2D( (1,), (0,), color=self._color, - marker = self._ytickmarkers[1], + marker = self._tickmarkers[1], linestyle = 'None', markersize=self._size, markeredgewidth=self._width, @@ -715,7 +789,15 @@ if reset: d.clear() d.update(kwtrans) - self.reset_ticks() + if reset: + self.reset_ticks() + else: + if which == 'major' or which == 'both': + for tick in self.majorTicks: + tick._apply_params(**self._major_tick_kw) + if which == 'minor' or which == 'both': + for tick in self.minorTicks: + tick._apply_params(**self._minor_tick_kw) @staticmethod def _translate_tick_kw(kw, to_init_kw=True): @@ -733,7 +815,7 @@ # The following lists may be moved to a more # accessible location. kwkeys0 = ['size', 'width', 'color', 'tickdir', 'pad', - 'labelsize', 'labelcolor', 'zorder', + 'labelsize', 'labelcolor', 'zorder', 'gridOn', 'tick1On', 'tick2On', 'label1On', 'label2On'] kwkeys1 = ['length', 'direction', 'left', 'bottom', 'right', 'top', 'labelleft', 'labelbottom', 'labelright', 'labeltop'] @@ -1144,21 +1226,26 @@ if len(kwargs): b = True which = which.lower() if which in ['minor', 'both']: - if b is None: self._gridOnMinor = not self._gridOnMinor - else: self._gridOnMinor = b + if b is None: + self._gridOnMinor = not self._gridOnMinor + else: + self._gridOnMinor = b for tick in self.minorTicks: # don't use get_ticks here! if tick is None: continue tick.gridOn = self._gridOnMinor if len(kwargs): artist.setp(tick.gridline,**kwargs) + self._minor_tick_kw['gridOn'] = self._gridOnMinor if which in ['major', 'both']: - if b is None: self._gridOnMajor = not self._gridOnMajor - else: self._gridOnMajor = b + if b is None: + self._gridOnMajor = not self._gridOnMajor + else: + self._gridOnMajor = b for tick in self.majorTicks: # don't use get_ticks here! if tick is None: continue tick.gridOn = self._gridOnMajor if len(kwargs): artist.setp(tick.gridline,**kwargs) + self._major_tick_kw['gridOn'] = self._gridOnMajor - def update_units(self, data): """ introspect *data* for units converter and update the @@ -1552,50 +1639,30 @@ """ Set the ticks position (top, bottom, both, default or none) both sets the ticks to appear on both positions, but does not - change the tick labels. default resets the tick positions to - the default: ticks on both positions, labels at bottom. none - can be used if you don't want any ticks. + change the tick labels. 'default' resets the tick positions to + the default: ticks on both positions, labels at bottom. 'none' + can be used if you don't want any ticks. 'none' and 'both' + affect only the ticks, not the labels. ACCEPTS: [ 'top' | 'bottom' | 'both' | 'default' | 'none' ] """ - assert position in ('top', 'bottom', 'both', 'default', 'none') - - - # The first ticks of major & minor ticks should always be - # included, otherwise, the information can be lost. Thus, use - # majorTicks instead of get_major_ticks() which may return - # empty list. - ticks = list( self.majorTicks ) # a copy - ticks.extend( self.minorTicks ) - if position == 'top': - for t in ticks: - t.tick1On = False - t.tick2On = True - t.label1On = False - t.label2On = True + self.set_tick_params(which='both', top=True, labeltop=True, + bottom=False, labelbottom=False) elif position == 'bottom': - for t in ticks: - t.tick1On = True - t.tick2On = False - t.label1On = True - t.label2On = False + self.set_tick_params(which='both', top=False, labeltop=False, + bottom=True, labelbottom=True) + elif position == 'both': + self.set_tick_params(which='both', top=True, + bottom=True) + elif position == 'none': + self.set_tick_params(which='both', top=False, + bottom=False) elif position == 'default': - for t in ticks: - t.tick1On = True - t.tick2On = True - t.label1On = True - t.label2On = False - elif position == 'none': - for t in ticks: - t.tick1On = False - t.tick2On = False + self.set_tick_params(which='both', top=True, labeltop=False, + bottom=True, labelbottom=True) else: - for t in ticks: - t.tick1On = True - t.tick2On = True - for t in ticks: - t.update_position(t._loc) + raise ValueError("invalid position: %s" % position) def tick_top(self): 'use ticks only on top' @@ -1829,45 +1896,23 @@ ACCEPTS: [ 'left' | 'right' | 'both' | 'default' | 'none' ] """ - assert position in ('left', 'right', 'both', 'default', 'none') - - # The first ticks of major & minor ticks should always be - # included, otherwise, the information can be lost. Thus, use - # majorTicks instead of get_major_ticks() which may return - # empty list. - ticks = list( self.majorTicks ) # a copy - ticks.extend( self.minorTicks ) - if position == 'right': - self.set_offset_position('right') - for t in ticks: - t.tick1On = False - t.tick2On = True - t.label1On = False - t.label2On = True + self.set_tick_params(which='both', right=True, labelright=True, + left=False, labelleft=False) elif position == 'left': - self.set_offset_position('left') - for t in ticks: - t.tick1On = True - t.tick2On = False - t.label1On = True - t.label2On = False + self.set_tick_params(which='both', right=False, labelright=False, + left=True, labelleft=True) + elif position == 'both': + self.set_tick_params(which='both', right=True, + left=True) + elif position == 'none': + self.set_tick_params(which='both', right=False, labelright=False, + left=False, labelleft=False) elif position == 'default': - self.set_offset_position('left') - for t in ticks: - t.tick1On = True - t.tick2On = True - t.label1On = True - t.label2On = False - elif position == 'none': - for t in ticks: - t.tick1On = False - t.tick2On = False + self.set_tick_params(which='both', right=True, labelright=False, + left=True, labelleft=True) else: - self.set_offset_position('left') - for t in ticks: - t.tick1On = True - t.tick2On = True + raise ValueError("invalid position: %s" % position) def tick_right(self): 'use ticks only on right' Modified: trunk/matplotlib/lib/matplotlib/projections/geo.py =================================================================== --- trunk/matplotlib/lib/matplotlib/projections/geo.py 2010年07月02日 19:03:05 UTC (rev 8487) +++ trunk/matplotlib/lib/matplotlib/projections/geo.py 2010年07月02日 22:44:27 UTC (rev 8488) @@ -55,6 +55,9 @@ self.yaxis.set_minor_locator(NullLocator()) self.xaxis.set_ticks_position('none') self.yaxis.set_ticks_position('none') + self.yaxis.set_tick_params(label1On=True) + # Why do we need to turn on yaxis tick labels, but + # xaxis tick labels are already on? self.grid(rcParams['axes.grid']) Modified: trunk/matplotlib/lib/matplotlib/projections/polar.py =================================================================== --- trunk/matplotlib/lib/matplotlib/projections/polar.py 2010年07月02日 19:03:05 UTC (rev 8487) +++ trunk/matplotlib/lib/matplotlib/projections/polar.py 2010年07月02日 22:44:27 UTC (rev 8488) @@ -226,6 +226,9 @@ self.grid(rcParams['polaraxes.grid']) self.xaxis.set_ticks_position('none') self.yaxis.set_ticks_position('none') + self.yaxis.set_tick_params(label1On=True) + # Why do we need to turn on yaxis tick labels, but + # xaxis tick labels are already on? def _init_axis(self): "move this out of __init__ because non-separable axes don't use it" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8487 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8487&view=rev Author: jdh2358 Date: 2010年07月02日 19:03:05 +0000 (2010年7月02日) Log Message: ----------- use class var rather than self for texmanager hack state Modified Paths: -------------- trunk/matplotlib/examples/pylab_examples/tex_demo.py trunk/matplotlib/lib/matplotlib/texmanager.py Modified: trunk/matplotlib/examples/pylab_examples/tex_demo.py =================================================================== --- trunk/matplotlib/examples/pylab_examples/tex_demo.py 2010年07月02日 18:45:17 UTC (rev 8486) +++ trunk/matplotlib/examples/pylab_examples/tex_demo.py 2010年07月02日 19:03:05 UTC (rev 8487) @@ -29,5 +29,5 @@ title(r"\TeX\ is Number $\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$!", fontsize=16, color='r') grid(True) - +#savefig('tex_demo') show() Modified: trunk/matplotlib/lib/matplotlib/texmanager.py =================================================================== --- trunk/matplotlib/lib/matplotlib/texmanager.py 2010年07月02日 18:45:17 UTC (rev 8486) +++ trunk/matplotlib/lib/matplotlib/texmanager.py 2010年07月02日 19:03:05 UTC (rev 8487) @@ -92,7 +92,7 @@ os.mkdir(texcache) _dvipng_hack_alpha = None - + #_dvipng_hack_alpha = dvipng_hack_alpha() # mappable cache of rgba_arrayd = {} grey_arrayd = {} @@ -455,7 +455,7 @@ report = 'No dvipng error report available.' if exit_status: raise RuntimeError('dvipng was not able to \ -process the flowing file:\n%s\nHere is the full report generated by dvipng: \ +process the following file:\n%s\nHere is the full report generated by dvipng: \ \n\n'% dvifile + report) else: mpl.verbose.report(report, 'debug') try: os.remove(outfile) @@ -516,9 +516,9 @@ if rcParams['text.dvipnghack'] is not None: hack = rcParams['text.dvipnghack'] else: - if self._dvipng_hack_alpha is None: - self._dvipng_hack_alpha = dvipng_hack_alpha() - hack = self._dvipng_hack_alpha + if TexManager._dvipng_hack_alpha is None: + TexManager._dvipng_hack_alpha = dvipng_hack_alpha() + hack = TexManager._dvipng_hack_alpha if hack: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8486 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8486&view=rev Author: ryanmay Date: 2010年07月02日 18:45:17 +0000 (2010年7月02日) Log Message: ----------- Allow set_ticks to take a locator object, since this is valid for the ticks kwarg in __init__. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/colorbar.py Modified: trunk/matplotlib/lib/matplotlib/colorbar.py =================================================================== --- trunk/matplotlib/lib/matplotlib/colorbar.py 2010年07月02日 18:19:08 UTC (rev 8485) +++ trunk/matplotlib/lib/matplotlib/colorbar.py 2010年07月02日 18:45:17 UTC (rev 8486) @@ -299,7 +299,11 @@ set tick locations. Tick locations are updated immediately unless update_ticks is *False*. To manually update the ticks, call *update_ticks* method explicitly. """ - self.locator = ticker.FixedLocator(ticks, nbins=len(ticks)) + if cbook.iterable(ticks): + self.locator = ticker.FixedLocator(ticks, nbins=len(ticks)) + else: + self.locator = ticks + if update_ticks: self.update_ticks() @@ -842,5 +846,3 @@ cax = fig.add_axes(pbcb) cax.set_aspect(aspect, anchor=anchor, adjustable='box') return cax, kw - - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8485 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8485&view=rev Author: jdh2358 Date: 2010年07月02日 18:19:08 +0000 (2010年7月02日) Log Message: ----------- fix typos in gridspec docs Modified Paths: -------------- trunk/matplotlib/doc/users/gridspec.rst trunk/matplotlib/lib/matplotlib/axes.py Modified: trunk/matplotlib/doc/users/gridspec.rst =================================================================== --- trunk/matplotlib/doc/users/gridspec.rst 2010年07月02日 18:06:25 UTC (rev 8484) +++ trunk/matplotlib/doc/users/gridspec.rst 2010年07月02日 18:19:08 UTC (rev 8485) @@ -118,7 +118,7 @@ ========================== You can create GridSpec from the SubplotSpec, in which case its layout -parameters are set to that of the locataion of the given SubplotSpec. :: +parameters are set to that of the location of the given SubplotSpec. :: gs0 = gridspec.GridSpec(1, 2) @@ -134,13 +134,13 @@ By default, GridSpec creates cells of equal sizes. You can adjust relative heights and widths of rows and columns. Note that absolute -values are meaningless, onlt their relative ratios matter. :: +values are meaningless, only their relative ratios matter. :: gs = gridspec.GridSpec(2, 2, width_ratios=[1,2], height_ratios=[4,1] ) - + ax1 = plt.subplot(gs[0]) ax2 = plt.subplot(gs[1]) ax3 = plt.subplot(gs[2]) Modified: trunk/matplotlib/lib/matplotlib/axes.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axes.py 2010年07月02日 18:06:25 UTC (rev 8484) +++ trunk/matplotlib/lib/matplotlib/axes.py 2010年07月02日 18:19:08 UTC (rev 8485) @@ -8254,7 +8254,7 @@ triplot.__doc__ = mtri.triplot.__doc__ -from gridspec import GridSpec, SubplotSpec +from matplotlib.gridspec import GridSpec, SubplotSpec class SubplotBase: """ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8484 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8484&view=rev Author: jdh2358 Date: 2010年07月02日 18:06:25 +0000 (2010年7月02日) Log Message: ----------- fix swab bug so mpl will compile on solaris with cxx 6 Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/CXX/WrapPython.h Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2010年07月02日 17:24:37 UTC (rev 8483) +++ trunk/matplotlib/CHANGELOG 2010年07月02日 18:06:25 UTC (rev 8484) @@ -1,3 +1,7 @@ +2010年07月02日 Modified CXX/WrapPython.h to fix "swab bug" on solaris so + mpl can compile on Solaris with CXX6 in the trunk. Closes + tracker bug 3022815 - JDH + 2010年06月30日 Added autoscale convenience method and corresponding pyplot function for simplified control of autoscaling; and changed axis, set_xlim, and set_ylim so that by Modified: trunk/matplotlib/CXX/WrapPython.h =================================================================== --- trunk/matplotlib/CXX/WrapPython.h 2010年07月02日 17:24:37 UTC (rev 8483) +++ trunk/matplotlib/CXX/WrapPython.h 2010年07月02日 18:06:25 UTC (rev 8484) @@ -48,7 +48,10 @@ #if defined(_XPG4) #undef _XPG4 #endif +#if defined(_XPG3) +#undef _XPG3 #endif +#endif // Python.h will redefine these and generate warning in the process #undef _XOPEN_SOURCE This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.