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
(2)
2
(2)
3
(2)
4
5
(2)
6
(4)
7
8
9
10
11
12
13
(1)
14
(2)
15
(3)
16
(7)
17
(1)
18
(1)
19
(3)
20
(16)
21
(3)
22
(4)
23
(2)
24
25
26
(6)
27
(3)
28
(9)
29
(2)
30
(2)

Showing 9 results of 9

From: <ef...@us...> - 2010年04月28日 20:59:19
Revision: 8287
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8287&view=rev
Author: efiring
Date: 2010年04月28日 20:59:13 +0000 (2010年4月28日)
Log Message:
-----------
colorbar: set dividers to None in obsolete update_bruteforce
Modified Paths:
--------------
 trunk/matplotlib/lib/matplotlib/colorbar.py
Modified: trunk/matplotlib/lib/matplotlib/colorbar.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/colorbar.py	2010年04月28日 20:49:48 UTC (rev 8286)
+++ trunk/matplotlib/lib/matplotlib/colorbar.py	2010年04月28日 20:59:13 UTC (rev 8287)
@@ -779,6 +779,7 @@
 self.patch = None
 self.solids = None
 self.lines = None
+ self.dividers = None
 self.set_alpha(mappable.get_alpha())
 self.cmap = mappable.cmap
 self.norm = mappable.norm
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <ef...@us...> - 2010年04月28日 20:49:54
Revision: 8286
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8286&view=rev
Author: efiring
Date: 2010年04月28日 20:49:48 +0000 (2010年4月28日)
Log Message:
-----------
colorbar: close 2986719 with small fixups and docstring expansion
Modified Paths:
--------------
 trunk/matplotlib/lib/matplotlib/colorbar.py
Modified: trunk/matplotlib/lib/matplotlib/colorbar.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/colorbar.py	2010年04月28日 19:50:39 UTC (rev 8285)
+++ trunk/matplotlib/lib/matplotlib/colorbar.py	2010年04月28日 20:49:48 UTC (rev 8286)
@@ -160,8 +160,9 @@
 Draw a colorbar in an existing axes.
 
 This is a base class for the :class:`Colorbar` class, which is the
- basis for the :func:`~matplotlib.pyplot.colorbar` method and pylab
- function.
+ basis for the :func:`~matplotlib.pyplot.colorbar` function and the
+ :meth:`~matplotlib.figure.Figure.colorbar` method, which are the
+ usual ways of creating a colorbar.
 
 It is also useful by itself for showing a colormap. If the *cmap*
 kwarg is given but *boundaries* and *values* are left as None,
@@ -411,6 +412,9 @@
 if self.solids is not None:
 self.solids.remove()
 self.solids = col
+ if self.dividers is not None:
+ self.dividers.remove()
+ self.dividers = None
 if self.drawedges:
 self.dividers = collections.LineCollection(self._edges(X,Y),
 colors=(mpl.rcParams['axes.edgecolor'],),
@@ -684,6 +688,17 @@
 self.alpha = alpha
 
 class Colorbar(ColorbarBase):
+ """
+ This class connects a :class:`ColorbarBase` to a
+ :class:`~matplotlib.cm.ScalarMappable` such as a
+ :class:`~matplotlib.image.AxesImage` generated via
+ :meth:`~matplotlib.axes.Axes.imshow`.
+
+ It is not intended to be instantiated directly; instead,
+ use :meth:`~matplotlib.figure.Figure.colorbar` or
+ :func:`~matplotlib.pyplot.colorbar` to make your colorbar.
+
+ """
 def __init__(self, ax, mappable, **kw):
 mappable.autoscale_None() # Ensure mappable.norm.vmin, vmax
 # are set when colorbar is called,
@@ -747,20 +762,28 @@
 
 def update_bruteforce(self, mappable):
 '''
- Manually change any contour line colors. This is called
- when the image or contour plot to which this colorbar belongs
- is changed.
+ Destroy and rebuild the colorbar. This is
+ intended to become obsolete, and will probably be
+ deprecated and then removed. It is not called when
+ the pyplot.colorbar function or the Figure.colorbar
+ method are used to create the colorbar.
+
 '''
 # We are using an ugly brute-force method: clearing and
 # redrawing the whole thing. The problem is that if any
 # properties have been changed by methods other than the
 # colorbar methods, those changes will be lost.
 self.ax.cla()
+ # clearing the axes will delete outline, patch, solids, and lines:
+ self.outline = None
+ self.patch = None
+ self.solids = None
+ self.lines = None
+ self.set_alpha(mappable.get_alpha())
+ self.cmap = mappable.cmap
+ self.norm = mappable.norm
 self.config_axis()
 self.draw_all()
- #if self.vmin != self.norm.vmin or self.vmax != self.norm.vmax:
- # self.ax.cla()
- # self.draw_all()
 if isinstance(self.mappable, contour.ContourSet):
 CS = self.mappable
 if not CS.filled:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年04月28日 19:50:45
Revision: 8285
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8285&view=rev
Author: mdboom
Date: 2010年04月28日 19:50:39 +0000 (2010年4月28日)
Log Message:
-----------
Remove extraneous debug print.
Modified Paths:
--------------
 trunk/matplotlib/lib/matplotlib/text.py
Modified: trunk/matplotlib/lib/matplotlib/text.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/text.py	2010年04月28日 19:50:11 UTC (rev 8284)
+++ trunk/matplotlib/lib/matplotlib/text.py	2010年04月28日 19:50:39 UTC (rev 8285)
@@ -1942,7 +1942,6 @@
 
 if self._bbox_patch:
 posx, posy = self._x, self._y
- print posx, posy
 
 x_box, y_box, w_box, h_box = _get_textbox(self, renderer)
 self._bbox_patch.set_bounds(0., 0.,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年04月28日 19:50:17
Revision: 8284
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8284&view=rev
Author: mdboom
Date: 2010年04月28日 19:50:11 +0000 (2010年4月28日)
Log Message:
-----------
Fix docstring formatting.
Modified Paths:
--------------
 trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/axis_artist_api.rst
 trunk/matplotlib/lib/matplotlib/axes.py
 trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py
Modified: trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/axis_artist_api.rst
===================================================================
--- trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/axis_artist_api.rst	2010年04月28日 19:44:47 UTC (rev 8283)
+++ trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/axis_artist_api.rst	2010年04月28日 19:50:11 UTC (rev 8284)
@@ -1,6 +1,6 @@
 
 :mod:`mpl_toolkits.axes_grid.axis_artist`
-=======================================
+=========================================
 
 .. autoclass:: mpl_toolkits.axes_grid.axis_artist.AxisArtist
 :members:
Modified: trunk/matplotlib/lib/matplotlib/axes.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/axes.py	2010年04月28日 19:44:47 UTC (rev 8283)
+++ trunk/matplotlib/lib/matplotlib/axes.py	2010年04月28日 19:50:11 UTC (rev 8284)
@@ -1975,9 +1975,9 @@
 
 Optional keyword arguments:
 
- ============ =====================================
+ ============ =========================================
 Keyword Description
- ============ =====================================
+ ============ =========================================
 *style* [ 'sci' (or 'scientific') | 'plain' ]
 plain turns off scientific notation
 *scilimits* (m, n), pair of integers; if *style*
@@ -1991,7 +1991,7 @@
 numeric offset is specified, it will be
 used.
 *axis* [ 'x' | 'y' | 'both' ]
- ============ =====================================
+ ============ =========================================
 
 Only the major ticks are affected.
 If the method is called when the
Modified: trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py	2010年04月28日 19:44:47 UTC (rev 8283)
+++ trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py	2010年04月28日 19:50:11 UTC (rev 8284)
@@ -52,6 +52,7 @@
 ================ =========================================
 *azim* Azimuthal viewing angle (default -60)
 *elev* Elevation viewing angle (default 30)
+ ================ =========================================
 '''
 
 if rect is None:
@@ -349,9 +350,9 @@
 the axes. Also optionally sets the mouse buttons for 3D rotation
 and zooming.
 
- ============ ================================================
+ ============ =======================================================
 Argument Description
- ============ ================================================
+ ============ =======================================================
 *rotate_btn* The integer or list of integers specifying which mouse
 button or buttons to use for 3D rotation of the axes.
 Default = 1.
@@ -359,7 +360,8 @@
 *zoom_btn* The integer or list of integers specifying which mouse
 button or buttons to use to zoom the 3D axes.
 Default = 3.
- ============ ================================================
+ ============ =======================================================
+ 
 """
 self.button_pressed = None
 canv = self.figure.canvas
@@ -636,22 +638,20 @@
 but it also supports color mapping by supplying the *cmap*
 argument.
 
- ========== ================================================
- Argument Description
- ========== ================================================
- *X*, *Y*, Data values as numpy.arrays
- *Z*
- *rstride* Array row stride (step size)
- *cstride* Array column stride (step size)
- *color* Color of the surface patches
- *cmap* A colormap for the surface patches.
- *facecolors* Face colors for the individual patches
- *norm* An instance of Normalize to map values to colors
- *vmin* Minimum value to map
- *vmax* Maximum value to map
- *shade* Whether to shade the facecolors, default:
- false when cmap specified, true otherwise
- ========== ================================================
+ ============= ================================================
+ Argument Description
+ ============= ================================================
+ *X*, *Y*, *Z* Data values as numpy.arrays
+ *rstride* Array row stride (step size)
+ *cstride* Array column stride (step size)
+ *color* Color of the surface patches
+ *cmap* A colormap for the surface patches.
+ *facecolors* Face colors for the individual patches
+ *norm* An instance of Normalize to map values to colors
+ *vmin* Minimum value to map
+ *vmax* Maximum value to map
+ *shade* Whether to shade the facecolors
+ ============= ================================================
 
 Other arguments are passed on to
 :func:`~mpl_toolkits.mplot3d.art3d.Poly3DCollection.__init__`
@@ -1083,16 +1083,21 @@
 dx, dy, dz can be arrays or scalars.
 
 *color* can be:
+ 
 - A single color value, to color all bars the same color.
+ 
 - An array of colors of length N bars, to color each bar
- independently.
- - An array of colors of length 6, to color the faces of the bars
- similarly.
+ independently.
+ 
+ - An array of colors of length 6, to color the faces of the
+ bars similarly.
+ 
 - An array of colors of length 6 * N bars, to color each face
- independently.
+ independently.
 
- When coloring the faces of the boxes specifically, this is the order
- of the coloring:
+ When coloring the faces of the boxes specifically, this is
+ the order of the coloring:
+ 
 1. -Z (bottom of box)
 2. +Z (top of box)
 3. -Y
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <ef...@us...> - 2010年04月28日 19:44:53
Revision: 8283
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8283&view=rev
Author: efiring
Date: 2010年04月28日 19:44:47 +0000 (2010年4月28日)
Log Message:
-----------
Applied whitespace patch by Mark Roddy; closes 2993733.
Modified Paths:
--------------
 trunk/matplotlib/examples/api/span_regions.py
 trunk/matplotlib/examples/pylab_examples/usetex_demo.py
 trunk/matplotlib/lib/matplotlib/backends/backend_cairo.py
 trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py
 trunk/matplotlib/lib/matplotlib/mlab.py
 trunk/matplotlib/lib/matplotlib/pylab.py
 trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py
 trunk/matplotlib/release/win32/data/setupwin.py
 trunk/matplotlib/release/win32/data/setupwinegg.py
Modified: trunk/matplotlib/examples/api/span_regions.py
===================================================================
--- trunk/matplotlib/examples/api/span_regions.py	2010年04月28日 19:17:17 UTC (rev 8282)
+++ trunk/matplotlib/examples/api/span_regions.py	2010年04月28日 19:44:47 UTC (rev 8283)
@@ -21,11 +21,11 @@
 ax.axhline(0, color='black', lw=2)
 
 collection = collections.BrokenBarHCollection.span_where(
-	 t, ymin=0, ymax=1, where=s1>0, facecolor='green', alpha=0.5)
+ t, ymin=0, ymax=1, where=s1>0, facecolor='green', alpha=0.5)
 ax.add_collection(collection)
 
 collection = collections.BrokenBarHCollection.span_where(
-	 t, ymin=-1, ymax=0, where=s1<0, facecolor='red', alpha=0.5)
+ t, ymin=-1, ymax=0, where=s1<0, facecolor='red', alpha=0.5)
 ax.add_collection(collection)
 
 
Modified: trunk/matplotlib/examples/pylab_examples/usetex_demo.py
===================================================================
--- trunk/matplotlib/examples/pylab_examples/usetex_demo.py	2010年04月28日 19:17:17 UTC (rev 8282)
+++ trunk/matplotlib/examples/pylab_examples/usetex_demo.py	2010年04月28日 19:44:47 UTC (rev 8283)
@@ -41,8 +41,8 @@
 pylab.yticks((0, 0.5, 1), ('0', '.5', '1'), color = 'k', size = 20)
 
 ## Right Y-axis labels
-pylab.text(1.05, 0.5, r"\bf{level set} $\phi$", {'color' : 'g', 'fontsize' : 20},	
- horizontalalignment = 'left',	
+pylab.text(1.05, 0.5, r"\bf{level set} $\phi$", {'color' : 'g', 'fontsize' : 20},
+ horizontalalignment = 'left',
 verticalalignment = 'center',
 rotation = 90,
 clip_on = False)
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_cairo.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_cairo.py	2010年04月28日 19:17:17 UTC (rev 8282)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_cairo.py	2010年04月28日 19:44:47 UTC (rev 8283)
@@ -138,8 +138,8 @@
 
 
 def draw_path(self, gc, path, transform, rgbFace=None):
- if len(path.vertices) > 18980: 	 
- raise ValueError("The Cairo backend can not draw paths longer than 18980 points.") 	 
+ if len(path.vertices) > 18980: 
+ raise ValueError("The Cairo backend can not draw paths longer than 18980 points.") 
 
 ctx = gc.ctx
 
@@ -148,7 +148,7 @@
 
 ctx.new_path()
 self.convert_path(ctx, path, transform)
-	 	
+
 self._fill_and_stroke(ctx, rgbFace, gc.get_alpha())
 
 def draw_image(self, gc, x, y, im):
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py	2010年04月28日 19:17:17 UTC (rev 8282)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py	2010年04月28日 19:44:47 UTC (rev 8283)
@@ -241,7 +241,7 @@
 self._resize_callback(event)
 
 # compute desired figure size in inches
-	dpival = self.figure.dpi
+ dpival = self.figure.dpi
 winch = width/dpival
 hinch = height/dpival
 self.figure.set_size_inches(winch, hinch)
Modified: trunk/matplotlib/lib/matplotlib/mlab.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/mlab.py	2010年04月28日 19:17:17 UTC (rev 8282)
+++ trunk/matplotlib/lib/matplotlib/mlab.py	2010年04月28日 19:44:47 UTC (rev 8283)
@@ -2309,11 +2309,11 @@
 
 if needheader:
 while 1:
-	 # skip past any comments and consume one line of column header
-	 row = reader.next()
-	 if len(row) and row[0].startswith(comments):
-	 continue
-	 break
+ # skip past any comments and consume one line of column header
+ row = reader.next()
+ if len(row) and row[0].startswith(comments):
+ continue
+ break
 
 # iterate over the remaining rows and convert the data to date
 # objects, ints, or floats as approriate
Modified: trunk/matplotlib/lib/matplotlib/pylab.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/pylab.py	2010年04月28日 19:17:17 UTC (rev 8282)
+++ trunk/matplotlib/lib/matplotlib/pylab.py	2010年04月28日 19:44:47 UTC (rev 8283)
@@ -252,7 +252,7 @@
 import numpy.ma as ma
 
 def load(*args, **kwargs): 
- raise NotImplementedError(load.__doc__) 		
+ raise NotImplementedError(load.__doc__) 
 load.__doc__ = """\
 pylab no longer provides a load function, though the old pylab
 function is still available as matplotlib.mlab.load (you can refer
@@ -265,7 +265,7 @@
 
 
 def save(*args, **kwargs): 
- raise NotImplementedError(save.__doc__) 		
+ raise NotImplementedError(save.__doc__) 
 save.__doc__ = """\
 pylab no longer provides a save function, though the old pylab
 function is still available as matplotlib.mlab.save (you can still
Modified: trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py	2010年04月28日 19:17:17 UTC (rev 8282)
+++ trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py	2010年04月28日 19:44:47 UTC (rev 8283)
@@ -779,7 +779,7 @@
 shade = np.array(shade)
 mask = ~np.isnan(shade)
 
- 	if len(shade[mask]) > 0:
+ if len(shade[mask]) > 0:
 norm = Normalize(min(shade[mask]), max(shade[mask]))
 if art3d.iscolor(color):
 color = color.copy()
Modified: trunk/matplotlib/release/win32/data/setupwin.py
===================================================================
--- trunk/matplotlib/release/win32/data/setupwin.py	2010年04月28日 19:17:17 UTC (rev 8282)
+++ trunk/matplotlib/release/win32/data/setupwin.py	2010年04月28日 19:44:47 UTC (rev 8283)
@@ -1,12 +1,12 @@
 from distutils import cygwinccompiler
 
 try:
-	# Python 2.6
-	# Replace the msvcr func to return an []
-	cygwinccompiler.get_msvcr
-	cygwinccompiler.get_msvcr = lambda: []
+ # Python 2.6
+ # Replace the msvcr func to return an []
+ cygwinccompiler.get_msvcr
+ cygwinccompiler.get_msvcr = lambda: []
 
 except AttributeError:
-	pass
+ pass
 
 execfile('setup.py')
Modified: trunk/matplotlib/release/win32/data/setupwinegg.py
===================================================================
--- trunk/matplotlib/release/win32/data/setupwinegg.py	2010年04月28日 19:17:17 UTC (rev 8282)
+++ trunk/matplotlib/release/win32/data/setupwinegg.py	2010年04月28日 19:44:47 UTC (rev 8283)
@@ -1,13 +1,13 @@
 from distutils import cygwinccompiler
 
 try:
-	# Python 2.6
-	# Replace the msvcr func to return an empty list
-	cygwinccompiler.get_msvcr
-	cygwinccompiler.get_msvcr = lambda: []
+ # Python 2.6
+ # Replace the msvcr func to return an empty list
+ cygwinccompiler.get_msvcr
+ cygwinccompiler.get_msvcr = lambda: []
 
 except AttributeError:
-	pass
+ pass
 
 from setuptools import setup
 execfile('setup.py',
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <ef...@us...> - 2010年04月28日 19:17:23
Revision: 8282
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8282&view=rev
Author: efiring
Date: 2010年04月28日 19:17:17 +0000 (2010年4月28日)
Log Message:
-----------
savefig: make the "transparent" kwarg work as advertised
Modified Paths:
--------------
 trunk/matplotlib/lib/matplotlib/backend_bases.py
 trunk/matplotlib/lib/matplotlib/figure.py
Modified: trunk/matplotlib/lib/matplotlib/backend_bases.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backend_bases.py	2010年04月28日 18:14:06 UTC (rev 8281)
+++ trunk/matplotlib/lib/matplotlib/backend_bases.py	2010年04月28日 19:17:17 UTC (rev 8282)
@@ -868,7 +868,7 @@
 Backends need to implement a few specific methods in order to use their
 own timing mechanisms so that the timer events are integrated into their
 event loops.
- 
+
 Mandatory functions that must be implemented:
 * _timer_start: Contains backend-specific code for starting the timer
 * _timer_stop: Contains backend-specific code for stopping the timer
@@ -883,7 +883,7 @@
 * _on_timer: This is the internal function that any timer object should
 call, which will handle the task of running all callbacks that have
 been set.
- 
+
 Attributes:
 * interval: The time between timer events in milliseconds. Default
 is 1000 ms.
@@ -1938,9 +1938,9 @@
 Creates a new backend-specific subclass of :class:`backend_bases.Timer`.
 This is useful for getting periodic events through the backend's native
 event loop. Implemented only for backends with GUIs.
- 
+
 optional arguments:
- 
+
 *interval*
 Timer interval in milliseconds
 *callbacks*
Modified: trunk/matplotlib/lib/matplotlib/figure.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/figure.py	2010年04月28日 18:14:06 UTC (rev 8281)
+++ trunk/matplotlib/lib/matplotlib/figure.py	2010年04月28日 19:17:17 UTC (rev 8282)
@@ -1040,8 +1040,10 @@
 backend. Most backends support png, pdf, ps, eps and svg.
 
 *transparent*:
- If *True*, the figure patch and axes patches will all be
- transparent. This is useful, for example, for displaying
+ If *True*, the axes patches will all be transparent; the
+ figure patch will also be transparent unless facecolor
+ and/or edgecolor are specified via kwargs.
+ This is useful, for example, for displaying
 a plot on top of a colored background on a web page. The
 transparency of these patches will be restored to their
 original values upon exit of this function.
@@ -1061,9 +1063,7 @@
 
 """
 
- for key in ('dpi', 'facecolor', 'edgecolor'):
- if key not in kwargs:
- kwargs[key] = rcParams['savefig.%s'%key]
+ kwargs.setdefault('dpi', rcParams['savefig.dpi'])
 
 extension = rcParams['savefig.extension']
 if args and is_string_like(args[0]) and '.' not in args[0] and extension != 'auto':
@@ -1072,20 +1072,25 @@
 
 transparent = kwargs.pop('transparent', False)
 if transparent:
- original_figure_alpha = self.patch.get_alpha()
- self.patch.set_alpha(0.0)
- original_axes_alpha = []
+ kwargs.setdefault('facecolor', 'none')
+ kwargs.setdefault('edgecolor', 'none')
+ original_axes_colors = []
 for ax in self.axes:
 patch = ax.patch
- original_axes_alpha.append(patch.get_alpha())
- patch.set_alpha(0.0)
+ original_axes_colors.append((patch.get_facecolor(),
+ patch.get_edgecolor()))
+ patch.set_facecolor('none')
+ patch.set_edgecolor('none')
+ else:
+ kwargs.setdefault('facecolor', rcParams['savefig.facecolor'])
+ kwargs.setdefault('edgecolor', rcParams['savefig.edgecolor'])
 
 self.canvas.print_figure(*args, **kwargs)
 
 if transparent:
- self.patch.set_alpha(original_figure_alpha)
- for ax, alpha in zip(self.axes, original_axes_alpha):
- ax.patch.set_alpha(alpha)
+ for ax, cc in zip(self.axes, original_axes_colors):
+ ax.patch.set_facecolor(cc[0])
+ ax.patch.set_edgecolor(cc[1])
 
 @docstring.dedent_interpd
 def colorbar(self, mappable, cax=None, ax=None, **kw):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年04月28日 18:14:13
Revision: 8281
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8281&view=rev
Author: mdboom
Date: 2010年04月28日 18:14:06 +0000 (2010年4月28日)
Log Message:
-----------
Add interpolation option to fill between so intersections are not broken. Thanks to Joonas Paalasmaa (Bug #2978358) for the report and initial implementation.
Modified Paths:
--------------
 trunk/matplotlib/examples/pylab_examples/fill_between_demo.py
 trunk/matplotlib/lib/matplotlib/axes.py
 trunk/matplotlib/lib/matplotlib/pyplot.py
 trunk/matplotlib/lib/matplotlib/tests/test_axes.py
Added Paths:
-----------
 trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate.pdf
 trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate.png
 trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate.svg
Modified: trunk/matplotlib/examples/pylab_examples/fill_between_demo.py
===================================================================
--- trunk/matplotlib/examples/pylab_examples/fill_between_demo.py	2010年04月28日 15:08:19 UTC (rev 8280)
+++ trunk/matplotlib/examples/pylab_examples/fill_between_demo.py	2010年04月28日 18:14:06 UTC (rev 8281)
@@ -29,16 +29,16 @@
 fig = figure()
 ax = fig.add_subplot(211)
 ax.plot(x, y1, x, y2, color='black')
-ax.fill_between(x, y1, y2, where=y2>=y1, facecolor='green')
-ax.fill_between(x, y1, y2, where=y2<=y1, facecolor='red')
+ax.fill_between(x, y1, y2, where=y2>=y1, facecolor='green', interpolate=True)
+ax.fill_between(x, y1, y2, where=y2<=y1, facecolor='red', interpolate=True)
 ax.set_title('fill between where')
 
 # Test support for masked arrays.
 y2 = np.ma.masked_greater(y2, 1.0)
 ax1 = fig.add_subplot(212, sharex=ax)
 ax1.plot(x, y1, x, y2, color='black')
-ax1.fill_between(x, y1, y2, where=y2>=y1, facecolor='green')
-ax1.fill_between(x, y1, y2, where=y2<=y1, facecolor='red')
+ax1.fill_between(x, y1, y2, where=y2>=y1, facecolor='green', interpolate=True)
+ax1.fill_between(x, y1, y2, where=y2<=y1, facecolor='red', interpolate=True)
 ax1.set_title('Now regions with y2>1 are masked')
 
 # This example illustrates a problem; because of the data
Modified: trunk/matplotlib/lib/matplotlib/axes.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/axes.py	2010年04月28日 15:08:19 UTC (rev 8280)
+++ trunk/matplotlib/lib/matplotlib/axes.py	2010年04月28日 18:14:06 UTC (rev 8281)
@@ -6157,7 +6157,8 @@
 return patches
 
 @docstring.dedent_interpd
- def fill_between(self, x, y1, y2=0, where=None, **kwargs):
+ def fill_between(self, x, y1, y2=0, where=None, interpolate=False,
+ **kwargs):
 """
 call signature::
 
@@ -6181,6 +6182,12 @@
 it is a a N length numpy boolean array and the fill will
 only happen over the regions where ``where==True``
 
+ *interpolate*
+ If True, interpolate between the two lines to find the
+ precise point of intersection. Otherwise, the start and
+ end points of the filled region will only occur on explicit
+ values in the *x* array.
+ 
 *kwargs*
 keyword args passed on to the :class:`PolyCollection`
 
@@ -6236,17 +6243,41 @@
 N = len(xslice)
 X = np.zeros((2*N+2, 2), np.float)
 
- # the purpose of the next two lines is for when y2 is a
- # scalar like 0 and we want the fill to go all the way
- # down to 0 even if none of the y1 sample points do
- X[0] = xslice[0], y2slice[0]
- X[N+1] = xslice[-1], y2slice[-1]
+ if interpolate:
+ def get_interp_point(ind):
+ x_values = x[ind-1:ind+1]
+ diff_values = y1[ind-1:ind+1] - y2[ind-1:ind+1]
+ y1_values = y1[ind-1:ind+1]
 
+ if len(diff_values) == 2:
+ if np.ma.is_masked(diff_values[1]):
+ return x[ind-1], y1[ind-1]
+ elif np.ma.is_masked(diff_values[0]):
+ return x[ind], y1[ind]
+ 
+ diff_order = diff_values.argsort()
+ diff_root_x = np.interp(
+ 0, diff_values[diff_order], x_values[diff_order])
+ diff_root_y = np.interp(diff_root_x, x_values, y1_values)
+ return diff_root_x, diff_root_y
+ 
+ start = get_interp_point(ind0)
+ end = get_interp_point(ind1)
+ else:
+ # the purpose of the next two lines is for when y2 is a
+ # scalar like 0 and we want the fill to go all the way
+ # down to 0 even if none of the y1 sample points do
+ start = xslice[0], y2slice[0]
+ end = xslice[-1], y2slice[-1]
+
+ X[0] = start
+ X[N+1] = end
+ 
 X[1:N+1,0] = xslice
 X[1:N+1,1] = y1slice
 X[N+2:,0] = xslice[::-1]
 X[N+2:,1] = y2slice[::-1]
-
+ 
 polys.append(X)
 
 collection = mcoll.PolyCollection(polys, **kwargs)
@@ -6256,7 +6287,6 @@
 XY2 = np.array([x[where], y2[where]]).T
 self.dataLim.update_from_data_xy(XY1, self.ignore_existing_data_limits,
 updatex=True, updatey=True)
-
 self.dataLim.update_from_data_xy(XY2, self.ignore_existing_data_limits,
 updatex=False, updatey=True)
 self.add_collection(collection)
Modified: trunk/matplotlib/lib/matplotlib/pyplot.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/pyplot.py	2010年04月28日 15:08:19 UTC (rev 8280)
+++ trunk/matplotlib/lib/matplotlib/pyplot.py	2010年04月28日 18:14:06 UTC (rev 8281)
@@ -2049,7 +2049,7 @@
 # This function was autogenerated by boilerplate.py. Do not edit as
 # changes will be lost
 @autogen_docstring(Axes.fill_between)
-def fill_between(x, y1, y2=0, where=None, hold=None, **kwargs):
+def fill_between(x, y1, y2=0, where=None, interpolate=False, hold=None, **kwargs):
 ax = gca()
 # allow callers to override the hold state by passing hold=True|False
 washold = ax.ishold()
@@ -2057,7 +2057,7 @@
 if hold is not None:
 ax.hold(hold)
 try:
- ret = ax.fill_between(x, y1, y2, where, **kwargs)
+ ret = ax.fill_between(x, y1, y2, where, interpolate, **kwargs)
 draw_if_interactive()
 finally:
 ax.hold(washold)
Added: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate.pdf
===================================================================
(Binary files differ)
Property changes on: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate.pdf
___________________________________________________________________
Added: svn:mime-type
 + application/octet-stream
Added: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate.png
===================================================================
(Binary files differ)
Property changes on: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate.png
___________________________________________________________________
Added: svn:mime-type
 + application/octet-stream
Added: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate.svg
===================================================================
--- trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate.svg	 (rev 0)
+++ trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate.svg	2010年04月28日 18:14:06 UTC (rev 8281)
@@ -0,0 +1,763 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Created with matplotlib (http://matplotlib.sourceforge.net/) -->
+<svg width="576pt" height="432pt" viewBox="0 0 576 432"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.1"
+ id="svg1">
+<filter id="colorAdd"><feComposite in="SourceGraphic" in2="BackgroundImage" operator="arithmetic" k2="1" k3="1"/></filter>
+<g id="figure1">
+<g id="patch1">
+<path style="fill: #ffffff; stroke: #ffffff; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" d="M0.000000 432.000000L576.000000 432.000000L576.000000 0.000000
+L0.000000 0.000000L0.000000 432.000000"/>
+</g>
+<g id="axes1">
+<g id="patch2">
+<path style="fill: #ffffff; opacity: 1.000000" d="M72.000000 200.290909L518.400000 200.290909L518.400000 43.200000
+L72.000000 43.200000L72.000000 200.290909"/>
+</g>
+<g id="PolyCollection1">
+<defs>
+<path id="coll0_0_aaf56935a2c13518ed60e01cdc1dee73" d="M72.000000 -310.254545L72.000000 -310.254545L76.464000 -316.817449
+L80.928000 -323.276852L85.392000 -329.530886L89.856000 -335.480920
+L94.320000 -341.033119L98.784000 -346.099921L103.248000 -350.601421
+L107.712000 -354.466626L112.176000 -357.634580L112.508717 -357.815006
+L112.176000 -358.670796L107.712000 -367.110587L103.248000 -371.977904
+L98.784000 -372.966916L94.320000 -370.015479L89.856000 -363.309042
+L85.392000 -353.268996L80.928000 -340.526195L76.464000 -325.881314
+L72.000000 -310.254545z"/>
+<path id="coll0_1_a4538251d9ee85a3e02c1608986ad8bb" d="M183.600000 -310.254545L188.064000 -303.691642L192.528000 -297.232239
+L196.992000 -290.978205L201.456000 -285.028171L205.920000 -279.475972
+L210.384000 -274.409170L214.848000 -269.907670L219.312000 -266.042465
+L223.776000 -262.874511L228.240000 -260.453768L232.704000 -258.818413
+L237.168000 -257.994237L241.632000 -257.994237L246.096000 -258.818413
+L250.560000 -260.453768L254.691283 -262.694085L250.560000 -273.320258
+L246.096000 -287.122937L241.632000 -302.379061L237.168000 -318.130030
+L232.704000 -333.386154L228.240000 -347.188833L223.776000 -358.670796
+L219.312000 -367.110587L214.848000 -371.977904L210.384000 -372.966916
+L205.920000 -370.015479L201.456000 -363.309042L196.992000 -353.268996
+L192.528000 -340.526195L188.064000 -325.881314z"/>
+<path id="coll0_2_7e1bc78ca422414c858b233668c6bc42" d="M295.200000 -310.254545L299.664000 -316.817449L304.128000 -323.276852
+L308.592000 -329.530886L313.056000 -335.480920L317.520000 -341.033119
+L321.984000 -346.099921L326.448000 -350.601421L330.912000 -354.466626
+L335.376000 -357.634580L335.708717 -357.815006L335.376000 -358.670796
+L330.912000 -367.110587L326.448000 -371.977904L321.984000 -372.966916
+L317.520000 -370.015479L313.056000 -363.309042L308.592000 -353.268996
+L304.128000 -340.526195L299.664000 -325.881314z"/>
+<path id="coll0_3_c3b5c2b0e85ad5a4572d45dacb38da0e" d="M406.800000 -310.254545L411.264000 -303.691642L415.728000 -297.232239
+L420.192000 -290.978205L424.656000 -285.028171L429.120000 -279.475972
+L433.584000 -274.409170L438.048000 -269.907670L442.512000 -266.042465
+L446.976000 -262.874511L451.440000 -260.453768L455.904000 -258.818413
+L460.368000 -257.994237L464.832000 -257.994237L469.296000 -258.818413
+L473.760000 -260.453768L477.891283 -262.694085L473.760000 -273.320258
+L469.296000 -287.122937L464.832000 -302.379061L460.368000 -318.130030
+L455.904000 -333.386154L451.440000 -347.188833L446.976000 -358.670796
+L442.512000 -367.110587L438.048000 -371.977904L433.584000 -372.966916
+L429.120000 -370.015479L424.656000 -363.309042L420.192000 -353.268996
+L415.728000 -340.526195L411.264000 -325.881314z"/>
+</defs>
+<defs>
+ <clipPath id="pad2bdf97e9fd82d59a5c57b91897f3de">
+<rect x="72.000000" y="43.200000" width="446.400000" height="157.090909"/>
+ </clipPath>
+</defs><g clip-path="url(#pad2bdf97e9fd82d59a5c57b91897f3de)"><use style="fill: #008000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll0_0_aaf56935a2c13518ed60e01cdc1dee73" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pad2bdf97e9fd82d59a5c57b91897f3de)"><use style="fill: #008000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll0_1_a4538251d9ee85a3e02c1608986ad8bb" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pad2bdf97e9fd82d59a5c57b91897f3de)"><use style="fill: #008000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll0_2_7e1bc78ca422414c858b233668c6bc42" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pad2bdf97e9fd82d59a5c57b91897f3de)"><use style="fill: #008000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll0_3_c3b5c2b0e85ad5a4572d45dacb38da0e" x="0.000000" y="432.000000"/>
+</g></g>
+<g id="PolyCollection2">
+<defs>
+<path id="coll1_0_59cf1511b6d916e21dd73a7f3e4d31ec" d="M72.000000 -310.254545L72.000000 -310.254545L72.000000 -310.254545
+L72.000000 -310.254545z"/>
+<path id="coll1_1_e39ea564cf8eb3ca5381599ae079b29b" d="M112.508717 -357.815006L116.640000 -360.055323L121.104000 -361.690678
+L125.568000 -362.514854L130.032000 -362.514854L134.496000 -361.690678
+L138.960000 -360.055323L143.424000 -357.634580L147.888000 -354.466626
+L152.352000 -350.601421L156.816000 -346.099921L161.280000 -341.033119
+L165.744000 -335.480920L170.208000 -329.530886L174.672000 -323.276852
+L179.136000 -316.817449L183.600000 -310.254545L183.600000 -310.254545
+L183.600000 -310.254545L179.136000 -294.627777L174.672000 -279.982896
+L170.208000 -267.240095L165.744000 -257.200049L161.280000 -250.493612
+L156.816000 -247.542175L152.352000 -248.531187L147.888000 -253.398504
+L143.424000 -261.838295L138.960000 -273.320258L134.496000 -287.122937
+L130.032000 -302.379061L125.568000 -318.130030L121.104000 -333.386154
+L116.640000 -347.188833z"/>
+<path id="coll1_2_0f64580eb1567b0582e386cb71b8b9cd" d="M254.691283 -262.694085L255.024000 -262.874511L259.488000 -266.042465
+L263.952000 -269.907670L268.416000 -274.409170L272.880000 -279.475972
+L277.344000 -285.028171L281.808000 -290.978205L286.272000 -297.232239
+L290.736000 -303.691642L295.200000 -310.254545L295.200000 -310.254545
+L295.200000 -310.254545L290.736000 -294.627777L286.272000 -279.982896
+L281.808000 -267.240095L277.344000 -257.200049L272.880000 -250.493612
+L268.416000 -247.542175L263.952000 -248.531187L259.488000 -253.398504
+L255.024000 -261.838295z"/>
+<path id="coll1_3_ca80bd8ff98b9208864e7e898d4b563e" d="M335.708717 -357.815006L339.840000 -360.055323L344.304000 -361.690678
+L348.768000 -362.514854L353.232000 -362.514854L357.696000 -361.690678
+L362.160000 -360.055323L366.624000 -357.634580L371.088000 -354.466626
+L375.552000 -350.601421L380.016000 -346.099921L384.480000 -341.033119
+L388.944000 -335.480920L393.408000 -329.530886L397.872000 -323.276852
+L402.336000 -316.817449L406.800000 -310.254545L406.800000 -310.254545
+L406.800000 -310.254545L402.336000 -294.627777L397.872000 -279.982896
+L393.408000 -267.240095L388.944000 -257.200049L384.480000 -250.493612
+L380.016000 -247.542175L375.552000 -248.531187L371.088000 -253.398504
+L366.624000 -261.838295L362.160000 -273.320258L357.696000 -287.122937
+L353.232000 -302.379061L348.768000 -318.130030L344.304000 -333.386154
+L339.840000 -347.188833z"/>
+<path id="coll1_4_c1ff4955e7872f3ca161dc94104c2fad" d="M477.891283 -262.694085L478.224000 -262.874511L482.688000 -266.042465
+L487.152000 -269.907670L491.616000 -274.409170L496.080000 -279.475972
+L500.544000 -285.028171L505.008000 -290.978205L509.472000 -297.232239
+L513.936000 -303.691642L513.936000 -303.691642L513.936000 -294.627777
+L509.472000 -279.982896L505.008000 -267.240095L500.544000 -257.200049
+L496.080000 -250.493612L491.616000 -247.542175L487.152000 -248.531187
+L482.688000 -253.398504L478.224000 -261.838295z"/>
+</defs>
+<g clip-path="url(#pad2bdf97e9fd82d59a5c57b91897f3de)"><use style="fill: #ff0000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll1_0_59cf1511b6d916e21dd73a7f3e4d31ec" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pad2bdf97e9fd82d59a5c57b91897f3de)"><use style="fill: #ff0000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll1_1_e39ea564cf8eb3ca5381599ae079b29b" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pad2bdf97e9fd82d59a5c57b91897f3de)"><use style="fill: #ff0000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll1_2_0f64580eb1567b0582e386cb71b8b9cd" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pad2bdf97e9fd82d59a5c57b91897f3de)"><use style="fill: #ff0000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll1_3_ca80bd8ff98b9208864e7e898d4b563e" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pad2bdf97e9fd82d59a5c57b91897f3de)"><use style="fill: #ff0000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll1_4_c1ff4955e7872f3ca161dc94104c2fad" x="0.000000" y="432.000000"/>
+</g></g>
+<g id="line2d1">
+<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" clip-path="url(#pad2bdf97e9fd82d59a5c57b91897f3de)" d="M72.000000 121.745455L76.464000 115.182551L80.928000 108.723148
+L85.392000 102.469114L89.856000 96.519080L94.320000 90.966881
+L98.784000 85.900079L103.248000 81.398579L107.712000 77.533374
+L112.176000 74.365420L116.640000 71.944677L121.104000 70.309322
+L125.568000 69.485146L130.032000 69.485146L134.496000 70.309322
+L138.960000 71.944677L143.424000 74.365420L147.888000 77.533374
+L152.352000 81.398579L156.816000 85.900079L161.280000 90.966881
+L165.744000 96.519080L170.208000 102.469114L174.672000 108.723148
+L179.136000 115.182551L183.600000 121.745455L188.064000 128.308358
+L192.528000 134.767761L196.992000 141.021795L201.456000 146.971829
+L205.920000 152.524028L210.384000 157.590830L214.848000 162.092330
+L219.312000 165.957535L223.776000 169.125489L228.240000 171.546232
+L232.704000 173.181587L237.168000 174.005763L241.632000 174.005763
+L246.096000 173.181587L250.560000 171.546232L255.024000 169.125489
+L259.488000 165.957535L263.952000 162.092330L268.416000 157.590830
+L272.880000 152.524028L277.344000 146.971829L281.808000 141.021795
+L286.272000 134.767761L290.736000 128.308358L295.200000 121.745455
+L299.664000 115.182551L304.128000 108.723148L308.592000 102.469114
+L313.056000 96.519080L317.520000 90.966881L321.984000 85.900079
+L326.448000 81.398579L330.912000 77.533374L335.376000 74.365420
+L339.840000 71.944677L344.304000 70.309322L348.768000 69.485146
+L353.232000 69.485146L357.696000 70.309322L362.160000 71.944677
+L366.624000 74.365420L371.088000 77.533374L375.552000 81.398579
+L380.016000 85.900079L384.480000 90.966881L388.944000 96.519080
+L393.408000 102.469114L397.872000 108.723148L402.336000 115.182551
+L406.800000 121.745455L411.264000 128.308358L415.728000 134.767761
+L420.192000 141.021795L424.656000 146.971829L429.120000 152.524028
+L433.584000 157.590830L438.048000 162.092330L442.512000 165.957535
+L446.976000 169.125489L451.440000 171.546232L455.904000 173.181587
+L460.368000 174.005763L464.832000 174.005763L469.296000 173.181587
+L473.760000 171.546232L478.224000 169.125489L482.688000 165.957535
+L487.152000 162.092330L491.616000 157.590830L496.080000 152.524028
+L500.544000 146.971829L505.008000 141.021795L509.472000 134.767761
+L513.936000 128.308358"/>
+</g>
+<g id="line2d2">
+<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" clip-path="url(#pad2bdf97e9fd82d59a5c57b91897f3de)" d="M72.000000 121.745455L76.464000 106.118686L80.928000 91.473805
+L85.392000 78.731004L89.856000 68.690958L94.320000 61.984521
+L98.784000 59.033084L103.248000 60.022096L107.712000 64.889413
+L112.176000 73.329204L116.640000 84.811167L121.104000 98.613846
+L125.568000 113.869970L130.032000 129.620939L134.496000 144.877063
+L138.960000 158.679742L143.424000 170.161705L147.888000 178.601496
+L152.352000 183.468813L156.816000 184.457825L161.280000 181.506388
+L165.744000 174.799951L170.208000 164.759905L174.672000 152.017104
+L179.136000 137.372223L183.600000 121.745455L188.064000 106.118686
+L192.528000 91.473805L196.992000 78.731004L201.456000 68.690958
+L205.920000 61.984521L210.384000 59.033084L214.848000 60.022096
+L219.312000 64.889413L223.776000 73.329204L228.240000 84.811167
+L232.704000 98.613846L237.168000 113.869970L241.632000 129.620939
+L246.096000 144.877063L250.560000 158.679742L255.024000 170.161705
+L259.488000 178.601496L263.952000 183.468813L268.416000 184.457825
+L272.880000 181.506388L277.344000 174.799951L281.808000 164.759905
+L286.272000 152.017104L290.736000 137.372223L295.200000 121.745455
+L299.664000 106.118686L304.128000 91.473805L308.592000 78.731004
+L313.056000 68.690958L317.520000 61.984521L321.984000 59.033084
+L326.448000 60.022096L330.912000 64.889413L335.376000 73.329204
+L339.840000 84.811167L344.304000 98.613846L348.768000 113.869970
+L353.232000 129.620939L357.696000 144.877063L362.160000 158.679742
+L366.624000 170.161705L371.088000 178.601496L375.552000 183.468813
+L380.016000 184.457825L384.480000 181.506388L388.944000 174.799951
+L393.408000 164.759905L397.872000 152.017104L402.336000 137.372223
+L406.800000 121.745455L411.264000 106.118686L415.728000 91.473805
+L420.192000 78.731004L424.656000 68.690958L429.120000 61.984521
+L433.584000 59.033084L438.048000 60.022096L442.512000 64.889413
+L446.976000 73.329204L451.440000 84.811167L455.904000 98.613846
+L460.368000 113.869970L464.832000 129.620939L469.296000 144.877063
+L473.760000 158.679742L478.224000 170.161705L482.688000 178.601496
+L487.152000 183.468813L491.616000 184.457825L496.080000 181.506388
+L500.544000 174.799951L505.008000 164.759905L509.472000 152.017104
+L513.936000 137.372223"/>
+</g>
+<g id="matplotlib.axis1">
+<g id="xtick1">
+<g id="line2d3">
+<defs><path id="m30e32995789d870ad79a2e54c91cf9c6" d="M0.000000 0.000000L0.000000 -4.000000"/></defs>
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="72.000000" y="200.290909"/>
+</g></g>
+<g id="line2d4">
+<defs><path id="m9281cae24120827b11d5ea8a7ad3e96b" d="M0.000000 0.000000L0.000000 4.000000"/></defs>
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="72.000000" y="43.200000"/>
+</g></g>
+<g id="text1">
+<defs>
+<path id="c_7a2040fe3b94fcd41d0a72c84e93b115" d="M31.781250 -66.406250q-7.609375 0.000000 -11.453125 7.500000q-3.828125 7.484375 -3.828125 22.531250q0.000000 14.984375 3.828125 22.484375q3.843750 7.500000 11.453125 7.500000q7.671875 0.000000 11.500000 -7.500000q3.843750 -7.500000 3.843750 -22.484375q0.000000 -15.046875 -3.843750 -22.531250q-3.828125 -7.500000 -11.500000 -7.500000M31.781250 -74.218750q12.265625 0.000000 18.734375 9.703125q6.468750 9.687500 6.468750 28.140625q0.000000 18.406250 -6.468750 28.109375q-6.468750 9.687500 -18.734375 9.687500q-12.250000 0.000000 -18.718750 -9.687500q-6.468750 -9.703125 -6.468750 -28.109375q0.000000 -18.453125 6.468750 -28.140625q6.468750 -9.703125 18.718750 -9.703125"/>
+<path id="c_ed3e21196fb739f392806f09ca0594ef" d="M10.687500 -12.406250l10.312500 0.000000l0.000000 12.406250l-10.312500 0.000000z"/>
+</defs>
+<g style="fill: #000000; opacity: 1.000000" transform="translate(63.250000,213.197159)scale(0.120000)">
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="95.410156"/>
+</g>
+</g>
+</g>
+<g id="xtick2">
+<g id="line2d5">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="183.600000" y="200.290909"/>
+</g></g>
+<g id="line2d6">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="183.600000" y="43.200000"/>
+</g></g>
+<g id="text2">
+<defs>
+<path id="c_1260a2df50f305f3db244e29828f968e" d="M10.796875 -72.906250l38.718750 0.000000l0.000000 8.312500l-29.687500 0.000000l0.000000 17.859375q2.140625 -0.734375 4.281250 -1.093750q2.156250 -0.359375 4.312500 -0.359375q12.203125 0.000000 19.328125 6.687500q7.140625 6.687500 7.140625 18.109375q0.000000 11.765625 -7.328125 18.296875q-7.328125 6.515625 -20.656250 6.515625q-4.593750 0.000000 -9.359375 -0.781250q-4.750000 -0.781250 -9.828125 -2.343750l0.000000 -9.921875q4.390625 2.390625 9.078125 3.562500q4.687500 1.171875 9.906250 1.171875q8.453125 0.000000 13.375000 -4.437500q4.937500 -4.437500 4.937500 -12.062500q0.000000 -7.609375 -4.937500 -12.046875q-4.921875 -4.453125 -13.375000 -4.453125q-3.953125 0.000000 -7.890625 0.875000q-3.921875 0.875000 -8.015625 2.734375z"/>
+</defs>
+<g style="fill: #000000; opacity: 1.000000" transform="translate(174.975000,213.197159)scale(0.120000)">
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_1260a2df50f305f3db244e29828f968e" x="95.410156"/>
+</g>
+</g>
+</g>
+<g id="xtick3">
+<g id="line2d7">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="295.200000" y="200.290909"/>
+</g></g>
+<g id="line2d8">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="295.200000" y="43.200000"/>
+</g></g>
+<g id="text3">
+<defs>
+<path id="c_42baa63129a918535c52adb20d687ea7" d="M12.406250 -8.296875l16.109375 0.000000l0.000000 -55.625000l-17.531250 3.515625l0.000000 -8.984375l17.437500 -3.515625l9.859375 0.000000l0.000000 64.609375l16.109375 0.000000l0.000000 8.296875l-41.984375 0.000000z"/>
+</defs>
+<g style="fill: #000000; opacity: 1.000000" transform="translate(286.707812,213.197159)scale(0.120000)">
+<use xlink:href="#c_42baa63129a918535c52adb20d687ea7"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="95.410156"/>
+</g>
+</g>
+</g>
+<g id="xtick4">
+<g id="line2d9">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="406.800000" y="200.290909"/>
+</g></g>
+<g id="line2d10">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="406.800000" y="43.200000"/>
+</g></g>
+<g id="text4">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(398.432812,213.040909)scale(0.120000)">
+<use xlink:href="#c_42baa63129a918535c52adb20d687ea7"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_1260a2df50f305f3db244e29828f968e" x="95.410156"/>
+</g>
+</g>
+</g>
+<g id="xtick5">
+<g id="line2d11">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="518.400000" y="200.290909"/>
+</g></g>
+<g id="line2d12">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="518.400000" y="43.200000"/>
+</g></g>
+<g id="text5">
+<defs>
+<path id="c_ed3f3ed3ebfbd18bcb9c012009a68ad1" d="M19.187500 -8.296875l34.421875 0.000000l0.000000 8.296875l-46.281250 0.000000l0.000000 -8.296875q5.609375 -5.812500 15.296875 -15.593750q9.703125 -9.796875 12.187500 -12.640625q4.734375 -5.312500 6.609375 -9.000000q1.890625 -3.687500 1.890625 -7.250000q0.000000 -5.812500 -4.078125 -9.468750q-4.078125 -3.671875 -10.625000 -3.671875q-4.640625 0.000000 -9.796875 1.609375q-5.140625 1.609375 -11.000000 4.890625l0.000000 -9.968750q5.953125 -2.390625 11.125000 -3.609375q5.187500 -1.218750 9.484375 -1.218750q11.328125 0.000000 18.062500 5.671875q6.734375 5.656250 6.734375 15.125000q0.000000 4.500000 -1.687500 8.531250q-1.671875 4.015625 -6.125000 9.484375q-1.218750 1.421875 -7.765625 8.187500q-6.531250 6.765625 -18.453125 18.921875"/>
+</defs>
+<g style="fill: #000000; opacity: 1.000000" transform="translate(509.689062,213.197159)scale(0.120000)">
+<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="95.410156"/>
+</g>
+</g>
+</g>
+</g>
+<g id="matplotlib.axis2">
+<g id="ytick1">
+<g id="line2d13">
+<defs><path id="m3400efa6b1638b3fea9e19e898273957" d="M0.000000 0.000000L4.000000 0.000000"/></defs>
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="200.290909"/>
+</g></g>
+<g id="line2d14">
+<defs><path id="m20b58b2501143cb5e0a5e8f1ef6f1643" d="M0.000000 0.000000L-4.000000 0.000000"/></defs>
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="200.290909"/>
+</g></g>
+<g id="text6">
+<defs>
+<path id="c_6a8d56c819c37117ab4cf023bec22a5a" d="M10.593750 -35.500000l62.593750 0.000000l0.000000 8.296875l-62.593750 0.000000z"/>
+</defs>
+<g style="fill: #000000; opacity: 1.000000" transform="translate(41.156250,204.579972)scale(0.120000)">
+<use xlink:href="#c_6a8d56c819c37117ab4cf023bec22a5a"/>
+<use xlink:href="#c_42baa63129a918535c52adb20d687ea7" x="83.789062"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="147.412109"/>
+<use xlink:href="#c_1260a2df50f305f3db244e29828f968e" x="179.199219"/>
+</g>
+</g>
+</g>
+<g id="ytick2">
+<g id="line2d15">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="174.109091"/>
+</g></g>
+<g id="line2d16">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="174.109091"/>
+</g></g>
+<g id="text7">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(40.906250,178.476278)scale(0.120000)">
+<use xlink:href="#c_6a8d56c819c37117ab4cf023bec22a5a"/>
+<use xlink:href="#c_42baa63129a918535c52adb20d687ea7" x="83.789062"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="147.412109"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="179.199219"/>
+</g>
+</g>
+</g>
+<g id="ytick3">
+<g id="line2d17">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="147.927273"/>
+</g></g>
+<g id="line2d18">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="147.927273"/>
+</g></g>
+<g id="text8">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(41.156250,152.294460)scale(0.120000)">
+<use xlink:href="#c_6a8d56c819c37117ab4cf023bec22a5a"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="83.789062"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="147.412109"/>
+<use xlink:href="#c_1260a2df50f305f3db244e29828f968e" x="179.199219"/>
+</g>
+</g>
+</g>
+<g id="ytick4">
+<g id="line2d19">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="121.745455"/>
+</g></g>
+<g id="line2d20">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="121.745455"/>
+</g></g>
+<g id="text9">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(50.500000,126.112642)scale(0.120000)">
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="95.410156"/>
+</g>
+</g>
+</g>
+<g id="ytick5">
+<g id="line2d21">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="95.563636"/>
+</g></g>
+<g id="line2d22">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="95.563636"/>
+</g></g>
+<g id="text10">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(50.750000,99.930824)scale(0.120000)">
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_1260a2df50f305f3db244e29828f968e" x="95.410156"/>
+</g>
+</g>
+</g>
+<g id="ytick6">
+<g id="line2d23">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="69.381818"/>
+</g></g>
+<g id="line2d24">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="69.381818"/>
+</g></g>
+<g id="text11">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(51.015625,73.749006)scale(0.120000)">
+<use xlink:href="#c_42baa63129a918535c52adb20d687ea7"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="95.410156"/>
+</g>
+</g>
+</g>
+<g id="ytick7">
+<g id="line2d25">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="43.200000"/>
+</g></g>
+<g id="line2d26">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="43.200000"/>
+</g></g>
+<g id="text12">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(51.265625,47.489062)scale(0.120000)">
+<use xlink:href="#c_42baa63129a918535c52adb20d687ea7"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_1260a2df50f305f3db244e29828f968e" x="95.410156"/>
+</g>
+</g>
+</g>
+</g>
+<g id="patch3">
+<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" d="M72.000000 43.200000L518.400000 43.200000"/>
+</g>
+<g id="patch4">
+<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" d="M518.400000 200.290909L518.400000 43.200000"/>
+</g>
+<g id="patch5">
+<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" d="M72.000000 200.290909L518.400000 200.290909"/>
+</g>
+<g id="patch6">
+<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" d="M72.000000 200.290909L72.000000 43.200000"/>
+</g>
+</g>
+<g id="axes2">
+<g id="patch7">
+<path style="fill: #ffffff; opacity: 1.000000" d="M72.000000 388.800000L518.400000 388.800000L518.400000 231.709091
+L72.000000 231.709091L72.000000 388.800000"/>
+</g>
+<g id="PolyCollection3">
+<defs>
+<path id="coll2_0_46fd974f6d18f5a0a68d531beb577700" d="M72.000000 -137.454545L72.000000 -137.454545L76.464000 -145.330030
+L80.928000 -153.081314L85.392000 -160.586154L85.392000 -160.586154
+L85.392000 -189.071887L80.928000 -173.780524L76.464000 -156.206667
+L72.000000 -137.454545z"/>
+<path id="coll2_1_8be4f92688f0eba5fa3fdb87085b7f86" d="M112.176000 -194.310587L112.176000 -194.310587L112.508717 -194.527099
+L112.176000 -195.554046z"/>
+<path id="coll2_2_20ec3575585369c6307e012db84037fd" d="M183.600000 -137.454545L188.064000 -129.579061L192.528000 -121.827777
+L196.992000 -114.322937L196.992000 -114.322937L196.992000 -189.071887
+L192.528000 -173.780524L188.064000 -156.206667z"/>
+<path id="coll2_3_23b0f9263c46c9ceec1f92c96a9227b4" d="M223.776000 -80.598504L223.776000 -80.598504L228.240000 -77.693612
+L232.704000 -75.731187L237.168000 -74.742175L241.632000 -74.742175
+L246.096000 -75.731187L250.560000 -77.693612L254.691283 -80.381992
+L250.560000 -93.133400L246.096000 -109.696616L241.632000 -128.003964
+L237.168000 -146.905127L232.704000 -165.212475L228.240000 -181.775691
+L223.776000 -195.554046z"/>
+<path id="coll2_4_e39c3b124eb232f8f64f9f24c1f7a81b" d="M295.200000 -137.454545L299.664000 -145.330030L304.128000 -153.081314
+L308.592000 -160.586154L308.592000 -160.586154L308.592000 -189.071887
+L304.128000 -173.780524L299.664000 -156.206667z"/>
+<path id="coll2_5_a3b93d11f806ad2797c2a4e1c65e9be3" d="M335.376000 -194.310587L335.376000 -194.310587L335.708717 -194.527099
+L335.376000 -195.554046z"/>
+<path id="coll2_6_48770cc756a14ea59a12220750586725" d="M406.800000 -137.454545L411.264000 -129.579061L415.728000 -121.827777
+L420.192000 -114.322937L420.192000 -114.322937L420.192000 -189.071887
+L415.728000 -173.780524L411.264000 -156.206667z"/>
+<path id="coll2_7_66eac2d1cfb76197e93f61741c9bda26" d="M446.976000 -80.598504L446.976000 -80.598504L451.440000 -77.693612
+L455.904000 -75.731187L460.368000 -74.742175L464.832000 -74.742175
+L469.296000 -75.731187L473.760000 -77.693612L477.891283 -80.381992
+L473.760000 -93.133400L469.296000 -109.696616L464.832000 -128.003964
+L460.368000 -146.905127L455.904000 -165.212475L451.440000 -181.775691
+L446.976000 -195.554046z"/>
+</defs>
+<defs>
+ <clipPath id="pdceb94b59b302b6d614f8fc54d3b8e04">
+<rect x="72.000000" y="231.709091" width="446.400000" height="157.090909"/>
+ </clipPath>
+</defs><g clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)"><use style="fill: #008000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll2_0_46fd974f6d18f5a0a68d531beb577700" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)"><use style="fill: #008000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll2_1_8be4f92688f0eba5fa3fdb87085b7f86" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)"><use style="fill: #008000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll2_2_20ec3575585369c6307e012db84037fd" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)"><use style="fill: #008000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll2_3_23b0f9263c46c9ceec1f92c96a9227b4" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)"><use style="fill: #008000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll2_4_e39c3b124eb232f8f64f9f24c1f7a81b" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)"><use style="fill: #008000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll2_5_a3b93d11f806ad2797c2a4e1c65e9be3" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)"><use style="fill: #008000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll2_6_48770cc756a14ea59a12220750586725" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)"><use style="fill: #008000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll2_7_66eac2d1cfb76197e93f61741c9bda26" x="0.000000" y="432.000000"/>
+</g></g>
+<g id="PolyCollection4">
+<defs>
+<path id="coll3_0_94785b50af4b70a86b59016efebda6fa" d="M72.000000 -137.454545L72.000000 -137.454545L72.000000 -137.454545
+L72.000000 -137.454545z"/>
+<path id="coll3_1_b89b074290be78a074730e88a9f8da14" d="M112.508717 -194.527099L116.640000 -197.215479L121.104000 -199.177904
+L125.568000 -200.166916L130.032000 -200.166916L134.496000 -199.177904
+L138.960000 -197.215479L143.424000 -194.310587L147.888000 -190.509042
+L152.352000 -185.870796L156.816000 -180.468996L161.280000 -174.388833
+L165.744000 -167.726195L170.208000 -160.586154L174.672000 -153.081314
+L179.136000 -145.330030L183.600000 -137.454545L183.600000 -137.454545
+L183.600000 -137.454545L179.136000 -118.702424L174.672000 -101.128567
+L170.208000 -85.837204L165.744000 -73.789150L161.280000 -65.741426
+L156.816000 -62.199701L152.352000 -63.386515L147.888000 -69.227295
+L143.424000 -79.355045L138.960000 -93.133400L134.496000 -109.696616
+L130.032000 -128.003964L125.568000 -146.905127L121.104000 -165.212475
+L116.640000 -181.775691z"/>
+<path id="coll3_2_300df8223ffbe600e5ec6d3660361009" d="M254.691283 -80.381992L255.024000 -80.598504L259.488000 -84.400049
+L263.952000 -89.038295L268.416000 -94.440095L272.880000 -100.520258
+L277.344000 -107.182896L281.808000 -114.322937L286.272000 -121.827777
+L290.736000 -129.579061L295.200000 -137.454545L295.200000 -137.454545
+L295.200000 -137.454545L290.736000 -118.702424L286.272000 -101.128567
+L281.808000 -85.837204L277.344000 -73.789150L272.880000 -65.741426
+L268.416000 -62.199701L263.952000 -63.386515L259.488000 -69.227295
+L255.024000 -79.355045z"/>
+<path id="coll3_3_ea9f940b34b4b127ddaeae93dbac851f" d="M335.708717 -194.527099L339.840000 -197.215479L344.304000 -199.177904
+L348.768000 -200.166916L353.232000 -200.166916L357.696000 -199.177904
+L362.160000 -197.215479L366.624000 -194.310587L371.088000 -190.509042
+L375.552000 -185.870796L380.016000 -180.468996L384.480000 -174.388833
+L388.944000 -167.726195L393.408000 -160.586154L397.872000 -153.081314
+L402.336000 -145.330030L406.800000 -137.454545L406.800000 -137.454545
+L406.800000 -137.454545L402.336000 -118.702424L397.872000 -101.128567
+L393.408000 -85.837204L388.944000 -73.789150L384.480000 -65.741426
+L380.016000 -62.199701L375.552000 -63.386515L371.088000 -69.227295
+L366.624000 -79.355045L362.160000 -93.133400L357.696000 -109.696616
+L353.232000 -128.003964L348.768000 -146.905127L344.304000 -165.212475
+L339.840000 -181.775691z"/>
+<path id="coll3_4_fca770bf0e4a6dd8e02ca3518b412a67" d="M477.891283 -80.381992L478.224000 -80.598504L482.688000 -84.400049
+L487.152000 -89.038295L491.616000 -94.440095L496.080000 -100.520258
+L500.544000 -107.182896L505.008000 -114.322937L509.472000 -121.827777
+L513.936000 -129.579061L513.936000 -129.579061L513.936000 -118.702424
+L509.472000 -101.128567L505.008000 -85.837204L500.544000 -73.789150
+L496.080000 -65.741426L491.616000 -62.199701L487.152000 -63.386515
+L482.688000 -69.227295L478.224000 -79.355045z"/>
+</defs>
+<g clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)"><use style="fill: #ff0000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll3_0_94785b50af4b70a86b59016efebda6fa" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)"><use style="fill: #ff0000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll3_1_b89b074290be78a074730e88a9f8da14" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)"><use style="fill: #ff0000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll3_2_300df8223ffbe600e5ec6d3660361009" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)"><use style="fill: #ff0000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll3_3_ea9f940b34b4b127ddaeae93dbac851f" x="0.000000" y="432.000000"/>
+</g><g clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)"><use style="fill: #ff0000; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#coll3_4_fca770bf0e4a6dd8e02ca3518b412a67" x="0.000000" y="432.000000"/>
+</g></g>
+<g id="line2d27">
+<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)" d="M72.000000 294.545455L76.464000 286.669970L80.928000 278.918686
+L85.392000 271.413846L89.856000 264.273805L94.320000 257.611167
+L98.784000 251.531004L103.248000 246.129204L107.712000 241.490958
+L112.176000 237.689413L116.640000 234.784521L121.104000 232.822096
+L125.568000 231.833084L130.032000 231.833084L134.496000 232.822096
+L138.960000 234.784521L143.424000 237.689413L147.888000 241.490958
+L152.352000 246.129204L156.816000 251.531004L161.280000 257.611167
+L165.744000 264.273805L170.208000 271.413846L174.672000 278.918686
+L179.136000 286.669970L183.600000 294.545455L188.064000 302.420939
+L192.528000 310.172223L196.992000 317.677063L201.456000 324.817104
+L205.920000 331.479742L210.384000 337.559905L214.848000 342.961705
+L219.312000 347.599951L223.776000 351.401496L228.240000 354.306388
+L232.704000 356.268813L237.168000 357.257825L241.632000 357.257825
+L246.096000 356.268813L250.560000 354.306388L255.024000 351.401496
+L259.488000 347.599951L263.952000 342.961705L268.416000 337.559905
+L272.880000 331.479742L277.344000 324.817104L281.808000 317.677063
+L286.272000 310.172223L290.736000 302.420939L295.200000 294.545455
+L299.664000 286.669970L304.128000 278.918686L308.592000 271.413846
+L313.056000 264.273805L317.520000 257.611167L321.984000 251.531004
+L326.448000 246.129204L330.912000 241.490958L335.376000 237.689413
+L339.840000 234.784521L344.304000 232.822096L348.768000 231.833084
+L353.232000 231.833084L357.696000 232.822096L362.160000 234.784521
+L366.624000 237.689413L371.088000 241.490958L375.552000 246.129204
+L380.016000 251.531004L384.480000 257.611167L388.944000 264.273805
+L393.408000 271.413846L397.872000 278.918686L402.336000 286.669970
+L406.800000 294.545455L411.264000 302.420939L415.728000 310.172223
+L420.192000 317.677063L424.656000 324.817104L429.120000 331.479742
+L433.584000 337.559905L438.048000 342.961705L442.512000 347.599951
+L446.976000 351.401496L451.440000 354.306388L455.904000 356.268813
+L460.368000 357.257825L464.832000 357.257825L469.296000 356.268813
+L473.760000 354.306388L478.224000 351.401496L482.688000 347.599951
+L487.152000 342.961705L491.616000 337.559905L496.080000 331.479742
+L500.544000 324.817104L505.008000 317.677063L509.472000 310.172223
+L513.936000 302.420939"/>
+</g>
+<g id="line2d28">
+<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" clip-path="url(#pdceb94b59b302b6d614f8fc54d3b8e04)" d="M72.000000 294.545455L76.464000 275.793333L80.928000 258.219476
+L85.392000 242.928113M112.176000 236.445954L116.640000 250.224309
+L121.104000 266.787525L125.568000 285.094873L130.032000 303.996036
+L134.496000 322.303384L138.960000 338.866600L143.424000 352.644955
+L147.888000 362.772705L152.352000 368.613485L156.816000 369.800299
+L161.280000 366.258574L165.744000 358.210850L170.208000 346.162796
+L174.672000 330.871433L179.136000 313.297576L183.600000 294.545455
+L188.064000 275.793333L192.528000 258.219476L196.992000 242.928113
+M223.776000 236.445954L228.240000 250.224309L232.704000 266.787525
+L237.168000 285.094873L241.632000 303.996036L246.096000 322.303384
+L250.560000 338.866600L255.024000 352.644955L259.488000 362.772705
+L263.952000 368.613485L268.416000 369.800299L272.880000 366.258574
+L277.344000 358.210850L281.808000 346.162796L286.272000 330.871433
+L290.736000 313.297576L295.200000 294.545455L299.664000 275.793333
+L304.128000 258.219476L308.592000 242.928113M335.376000 236.445954
+L339.840000 250.224309L344.304000 266.787525L348.768000 285.094873
+L353.232000 303.996036L357.696000 322.303384L362.160000 338.866600
+L366.624000 352.644955L371.088000 362.772705L375.552000 368.613485
+L380.016000 369.800299L384.480000 366.258574L388.944000 358.210850
+L393.408000 346.162796L397.872000 330.871433L402.336000 313.297576
+L406.800000 294.545455L411.264000 275.793333L415.728000 258.219476
+L420.192000 242.928113M446.976000 236.445954L451.440000 250.224309
+L455.904000 266.787525L460.368000 285.094873L464.832000 303.996036
+L469.296000 322.303384L473.760000 338.866600L478.224000 352.644955
+L482.688000 362.772705L487.152000 368.613485L491.616000 369.800299
+L496.080000 366.258574L500.544000 358.210850L505.008000 346.162796
+L509.472000 330.871433L513.936000 313.297576"/>
+</g>
+<g id="matplotlib.axis3">
+<g id="xtick6">
+<g id="line2d29">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="72.000000" y="388.800000"/>
+</g></g>
+<g id="line2d30">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="72.000000" y="231.709091"/>
+</g></g>
+<g id="text13">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(63.250000,401.706250)scale(0.120000)">
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="95.410156"/>
+</g>
+</g>
+</g>
+<g id="xtick7">
+<g id="line2d31">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="183.600000" y="388.800000"/>
+</g></g>
+<g id="line2d32">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="183.600000" y="231.709091"/>
+</g></g>
+<g id="text14">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(174.975000,401.706250)scale(0.120000)">
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_1260a2df50f305f3db244e29828f968e" x="95.410156"/>
+</g>
+</g>
+</g>
+<g id="xtick8">
+<g id="line2d33">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="295.200000" y="388.800000"/>
+</g></g>
+<g id="line2d34">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="295.200000" y="231.709091"/>
+</g></g>
+<g id="text15">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(286.707812,401.706250)scale(0.120000)">
+<use xlink:href="#c_42baa63129a918535c52adb20d687ea7"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="95.410156"/>
+</g>
+</g>
+</g>
+<g id="xtick9">
+<g id="line2d35">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="406.800000" y="388.800000"/>
+</g></g>
+<g id="line2d36">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="406.800000" y="231.709091"/>
+</g></g>
+<g id="text16">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(398.432812,401.550000)scale(0.120000)">
+<use xlink:href="#c_42baa63129a918535c52adb20d687ea7"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_1260a2df50f305f3db244e29828f968e" x="95.410156"/>
+</g>
+</g>
+</g>
+<g id="xtick10">
+<g id="line2d37">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="518.400000" y="388.800000"/>
+</g></g>
+<g id="line2d38">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="518.400000" y="231.709091"/>
+</g></g>
+<g id="text17">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(509.689062,401.706250)scale(0.120000)">
+<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="95.410156"/>
+</g>
+</g>
+</g>
+</g>
+<g id="matplotlib.axis4">
+<g id="ytick8">
+<g id="line2d39">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="388.800000"/>
+</g></g>
+<g id="line2d40">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="388.800000"/>
+</g></g>
+<g id="text18">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(41.156250,393.089063)scale(0.120000)">
+<use xlink:href="#c_6a8d56c819c37117ab4cf023bec22a5a"/>
+<use xlink:href="#c_42baa63129a918535c52adb20d687ea7" x="83.789062"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="147.412109"/>
+<use xlink:href="#c_1260a2df50f305f3db244e29828f968e" x="179.199219"/>
+</g>
+</g>
+</g>
+<g id="ytick9">
+<g id="line2d41">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="357.381818"/>
+</g></g>
+<g id="line2d42">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="357.381818"/>
+</g></g>
+<g id="text19">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(40.906250,361.749006)scale(0.120000)">
+<use xlink:href="#c_6a8d56c819c37117ab4cf023bec22a5a"/>
+<use xlink:href="#c_42baa63129a918535c52adb20d687ea7" x="83.789062"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="147.412109"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="179.199219"/>
+</g>
+</g>
+</g>
+<g id="ytick10">
+<g id="line2d43">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="325.963636"/>
+</g></g>
+<g id="line2d44">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="325.963636"/>
+</g></g>
+<g id="text20">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(41.156250,330.330824)scale(0.120000)">
+<use xlink:href="#c_6a8d56c819c37117ab4cf023bec22a5a"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="83.789062"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="147.412109"/>
+<use xlink:href="#c_1260a2df50f305f3db244e29828f968e" x="179.199219"/>
+</g>
+</g>
+</g>
+<g id="ytick11">
+<g id="line2d45">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="294.545455"/>
+</g></g>
+<g id="line2d46">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="294.545455"/>
+</g></g>
+<g id="text21">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(50.500000,298.912642)scale(0.120000)">
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="95.410156"/>
+</g>
+</g>
+</g>
+<g id="ytick12">
+<g id="line2d47">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="263.127273"/>
+</g></g>
+<g id="line2d48">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="263.127273"/>
+</g></g>
+<g id="text22">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(50.750000,267.494460)scale(0.120000)">
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_1260a2df50f305f3db244e29828f968e" x="95.410156"/>
+</g>
+</g>
+</g>
+<g id="ytick13">
+<g id="line2d49">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="231.709091"/>
+</g></g>
+<g id="line2d50">
+<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="231.709091"/>
+</g></g>
+<g id="text23">
+<g style="fill: #000000; opacity: 1.000000" transform="translate(51.015625,236.076278)scale(0.120000)">
+<use xlink:href="#c_42baa63129a918535c52adb20d687ea7"/>
+<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/>
+<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="95.410156"/>
+</g>
+</g>
+</g>
+</g>
+<g id="patch8">
+<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" d="M72.000000 231.709091L518.400000 231.709091"/>
+</g>
+<g id="patch9">
+<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" d="M518.400000 388.800000L518.400000 231.709091"/>
+</g>
+<g id="...
 
[truncated message content]
From: <md...@us...> - 2010年04月28日 15:08:25
Revision: 8280
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8280&view=rev
Author: mdboom
Date: 2010年04月28日 15:08:19 +0000 (2010年4月28日)
Log Message:
-----------
Fix path simplification -- distance threshold should have been squared.
Modified Paths:
--------------
 trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/offset_points.png
 trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.png
 trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_simplification/fft_peaks.png
 trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_simplification/fft_peaks.svg
 trunk/matplotlib/lib/matplotlib/tests/test_simplification.py
 trunk/matplotlib/src/path_converters.h
Modified: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/offset_points.png
===================================================================
(Binary files differ)
Modified: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.png
===================================================================
(Binary files differ)
Modified: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_simplification/fft_peaks.png
===================================================================
(Binary files differ)
Modified: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_simplification/fft_peaks.svg
===================================================================
--- trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_simplification/fft_peaks.svg	2010年04月28日 06:44:49 UTC (rev 8279)
+++ trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_simplification/fft_peaks.svg	2010年04月28日 15:08:19 UTC (rev 8280)
@@ -23,11 +23,12 @@
 <clipPath id="p50431ccdcb28178602d99d9270004dde">
 <rect x="72.000000" y="43.200000" width="446.400000" height="345.600000"/>
 </clipPath>
-</defs><path style="fill: none; stroke: #0000ff; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" clip-path="url(#p50431ccdcb28178602d99d9270004dde)" d="M72.000000 388.800000L76.145143 388.578724L76.151520 388.455734
-L76.157897 388.474541L76.177029 70.552590L76.489509 388.799636
-L175.303337 388.800000L485.723520 388.493668L485.736274 386.681411
-L485.755406 70.552590L486.067886 388.799652L489.926057 388.800000
-L489.926057 388.800000"/>
+</defs><path style="fill: none; stroke: #0000ff; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" clip-path="url(#p50431ccdcb28178602d99d9270004dde)" d="M72.000000 388.800000L76.132389 388.704243L76.151520 388.455734
+L76.157897 388.474541L76.170651 262.490246L76.177029 70.552590
+L76.272686 388.786908L76.629806 388.799881L221.059337 388.800000
+L485.704389 388.713691L485.729897 388.401770L485.736274 386.681411
+L485.755406 70.552590L485.844686 388.786149L486.182674 388.799863
+L489.926057 388.800000L489.926057 388.800000"/>
 </g>
 <g id="matplotlib.axis1">
 </g>
Modified: trunk/matplotlib/lib/matplotlib/tests/test_simplification.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/tests/test_simplification.py	2010年04月28日 06:44:49 UTC (rev 8279)
+++ trunk/matplotlib/lib/matplotlib/tests/test_simplification.py	2010年04月28日 15:08:19 UTC (rev 8280)
@@ -69,7 +69,7 @@
 path = transform.transform_path(path)
 simplified = list(path.iter_segments(simplify=(800, 600)))
 
- assert len(simplified) == 2675
+ assert len(simplified) == 3884
 
 def test_sine_plus_noise():
 np.random.seed(0)
@@ -86,7 +86,7 @@
 path = transform.transform_path(path)
 simplified = list(path.iter_segments(simplify=(800, 600)))
 
- assert len(simplified) == 628
+ assert len(simplified) == 876
 
 @image_comparison(baseline_images=['simplify_curve'])
 def test_simplify_curve():
@@ -131,7 +131,7 @@
 path = transform.transform_path(path)
 simplified = list(path.iter_segments(simplify=(800, 600)))
 
- assert len(simplified) == 13
+ assert len(simplified) == 17
 
 def test_start_with_moveto():
 # Should be entirely clipped away to a single MOVETO
Modified: trunk/matplotlib/src/path_converters.h
===================================================================
--- trunk/matplotlib/src/path_converters.h	2010年04月28日 06:44:49 UTC (rev 8279)
+++ trunk/matplotlib/src/path_converters.h	2010年04月28日 15:08:19 UTC (rev 8280)
@@ -477,7 +477,7 @@
 /* Set simplify to true to perform simplification */
 PathSimplifier(VertexSource& source, bool do_simplify, double simplify_threshold) :
 m_source(&source), m_simplify(do_simplify),
- m_simplify_threshold(simplify_threshold),
+ m_simplify_threshold(simplify_threshold*simplify_threshold),
 m_moveto(true), m_after_moveto(false),
 m_lastx(0.0), m_lasty(0.0), m_clipped(false),
 m_origdx(0.0), m_origdy(0.0),
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8279
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8279&view=rev
Author: efiring
Date: 2010年04月28日 06:44:49 +0000 (2010年4月28日)
Log Message:
-----------
contourf_demo: illustrate use of set_under and set_over with contourf colors kw
Modified Paths:
--------------
 trunk/matplotlib/examples/pylab_examples/contourf_demo.py
Modified: trunk/matplotlib/examples/pylab_examples/contourf_demo.py
===================================================================
--- trunk/matplotlib/examples/pylab_examples/contourf_demo.py	2010年04月27日 20:30:53 UTC (rev 8278)
+++ trunk/matplotlib/examples/pylab_examples/contourf_demo.py	2010年04月28日 06:44:49 UTC (rev 8279)
@@ -61,10 +61,16 @@
 # Now make a contour plot with the levels specified,
 # and with the colormap generated automatically from a list
 # of colors.
-levels = [-2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5]
+levels = [-1.5, -1, -0.5, 0, 0.5, 1]
 CS3 = contourf(X, Y, Z, levels,
 colors = ('r', 'g', 'b'),
- origin=origin)
+ origin=origin,
+ extend='both')
+# Our data range extends outside the range of levels; make
+# data below the lowest contour level yellow, and above the
+# highest level cyan:
+CS3.cmap.set_under('yellow')
+CS3.cmap.set_over('cyan')
 
 CS4 = contour(X, Y, Z, levels,
 colors = ('k',),
@@ -72,6 +78,9 @@
 origin = origin)
 title('Listed colors (3 masked regions)')
 clabel(CS4, fmt = '%2.1f', colors = 'w', fontsize=14)
+
+# Notice that the colorbar command gets all the information it
+# needs from the ContourSet object, CS3.
 colorbar(CS3)
 
 show()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

Showing 9 results of 9

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 によって変換されたページ (->オリジナル) /