SourceForge logo
SourceForge logo
Menu

matplotlib-checkins — Commit notification. DO NOT POST to this list, just subscribe to it.

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)

Showing results of 128

<< < 1 .. 3 4 5 6 > >> (Page 5 of 6)
From: <jd...@us...> - 2010年07月06日 14:15:38
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.
From: <jd...@us...> - 2010年07月06日 14:14:05
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.
From: <jd...@us...> - 2010年07月06日 13:59:07
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.
From: <jd...@us...> - 2010年07月06日 13:57:05
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.
From: <jd...@us...> - 2010年07月06日 13:56:37
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.
From: <ian...@us...> - 2010年07月06日 08:50:40
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.
From: <jd...@us...> - 2010年07月06日 03:05:05
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&reg;, 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.
From: <js...@us...> - 2010年07月06日 01:43:41
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.
From: <jd...@us...> - 2010年07月06日 01:25:04
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.
From: <jd...@us...> - 2010年07月06日 01:05:35
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.
From: <jd...@us...> - 2010年07月05日 23:09:57
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.
From: <ef...@us...> - 2010年07月05日 20:47:45
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.
From: <ef...@us...> - 2010年07月05日 19:40:05
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.
From: <ef...@us...> - 2010年07月05日 19:03:16
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.
From: <ef...@us...> - 2010年07月03日 05:09:56
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.
From: <ef...@us...> - 2010年07月03日 01:20:59
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.
From: <ef...@us...> - 2010年07月02日 22:44:33
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.
From: <jd...@us...> - 2010年07月02日 19:03:12
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.
From: <ry...@us...> - 2010年07月02日 18:45:23
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.
From: <jd...@us...> - 2010年07月02日 18:19:15
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.
From: <jd...@us...> - 2010年07月02日 18:06:34
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.

Showing results of 128

<< < 1 .. 3 4 5 6 > >> (Page 5 of 6)
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /