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
|
3
(3) |
4
(1) |
5
|
6
(5) |
7
|
8
(6) |
9
(1) |
10
(2) |
11
(2) |
12
(2) |
13
|
14
|
15
(5) |
16
(3) |
17
(4) |
18
(1) |
19
|
20
|
21
|
22
(8) |
23
(1) |
24
(3) |
25
(3) |
26
(5) |
27
(1) |
28
(1) |
|
|
|
|
|
|
From: <lee...@us...> - 2010-02-28 03:13:45
|
Revision: 8163 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8163&view=rev Author: leejjoon Date: 2010-02-28 03:13:39 +0000 (Sun, 28 Feb 2010) Log Message: ----------- update annotation guide Modified Paths: -------------- trunk/matplotlib/doc/users/annotations_guide.rst trunk/matplotlib/examples/pylab_examples/annotation_demo3.py trunk/matplotlib/lib/matplotlib/text.py Added Paths: ----------- trunk/matplotlib/doc/users/plotting/examples/annotate_simple_coord01.py trunk/matplotlib/doc/users/plotting/examples/annotate_simple_coord02.py trunk/matplotlib/doc/users/plotting/examples/annotate_simple_coord03.py Modified: trunk/matplotlib/doc/users/annotations_guide.rst =================================================================== --- trunk/matplotlib/doc/users/annotations_guide.rst 2010-02-27 17:00:53 UTC (rev 8162) +++ trunk/matplotlib/doc/users/annotations_guide.rst 2010-02-28 03:13:39 UTC (rev 8163) @@ -4,10 +4,13 @@ Annotating Axes **************** -Do not proceed unless you already have read -:func:`~matplotlib.pyplot.text` and :func:`~matplotlib.pyplot.annotate`! +Do not proceed unless you already have read :ref:`annotations-tutorial`, +:func:`~matplotlib.pyplot.text` and +:func:`~matplotlib.pyplot.annotate`! + + Annotating with Text with Box ============================= @@ -182,31 +185,6 @@ .. plot:: users/plotting/examples/annotate_simple04.py -Using ConnectorPatch -==================== - -The ConnectorPatch is like an annotation without a text. While the -annotate function is recommended in most of situation, the -ConnectorPatch is useful when you want to connect points in different -axes. :: - - from matplotlib.patches import ConnectionPatch - xy = (0.2, 0.2) - con = ConnectionPatch(xyA=xy, xyB=xy, coordsA="data", coordsB="data", - axesA=ax1, axesB=ax2) - ax2.add_artist(con) - -The above code connects point xy in data coordinate of ``ax1`` to -point xy int data coordinate of ``ax2``. Here is a simple example. - -.. plot:: users/plotting/examples/connect_simple01.py - - -While the ConnectorPatch instance can be added to any axes, but you -may want it to be added to the axes in the latter (?) of the axes -drawing order to prevent overlap (?) by other axes. - - Placing Artist at the anchored location of the Axes =================================================== @@ -282,6 +260,111 @@ Note that unlike the legend, the ``bbox_transform`` is set to IdentityTransform by default. +Using Complex Coordinate with Annotation +======================================== + +The Annotation in matplotlib support several types of coordinate as +described in :ref:`annotations-tutorial`. For an advanced user who wants +more control, it supports a few other options. + + 1. :class:`~matplotlib.transforms.Transform` instance. For example, :: + + ax.annotate("Test", xy=(0.5, 0.5), xycoords=ax.transAxes) + + is identical to :: + + ax.annotate("Test", xy=(0.5, 0.5), xycoords="axes fraction") + + With this, you can annotate a point in other axes. :: + + ax1, ax2 = subplot(121), subplot(122) + ax2.annotate("Test", xy=(0.5, 0.5), xycoords=ax1.transData, + xytext=(0.5, 0.5), textcoords=ax2.transData, + arrowprops=dict(arrowstyle="->")) + + 2. :class:`~matplotlib.artist.Artist` instance. The xy value (or + xytext) is interpreted as a fractional coordinate of the bbox + (return value of *get_window_extent*) of the artist. :: + + an1 = ax.annotate("Test 1", xy=(0.5, 0.5), xycoords="data", + va="center", ha="center", + bbox=dict(boxstyle="round", fc="w")) + an2 = ax.annotate("Test 2", xy=(1, 0.5), xycoords=an1, # (1,0.5) of the an1's bbox + xytext=(30,0), textcoords="offset points", + va="center", ha="left", + bbox=dict(boxstyle="round", fc="w"), + arrowprops=dict(arrowstyle="->")) + + .. plot:: users/plotting/examples/annotate_simple_coord01.py + + Note that it is your responsibility that the extent of the + coordinate artist (*an1* in above example) is determined before *an2* + gets drawn. In most cases, it means that an2 needs to be drawn + later than *an1*. + + + 3. A callable object that returns an instance of either + :class:`~matplotlib.transforms.BboxBase` or + :class:`~matplotlib.transforms.Transform`. If a transform is + returned, it is same as 1 and if bbox is returned, it is same + as 2. The callable object should take a single argument of + renderer instance. For example, following two commands give + identical results :: + an2 = ax.annotate("Test 2", xy=(1, 0.5), xycoords=an1, + xytext=(30,0), textcoords="offset points") + an2 = ax.annotate("Test 2", xy=(1, 0.5), xycoords=an1.get_window_extent, + xytext=(30,0), textcoords="offset points") + + + 4. A tuple of two coordinate specification. The first item is for + x-coordinate and the second is for y-coordinate. For example, :: + + annotate("Test", xy=(0.5, 1), xycoords=("data", "axes fraction")) + + 0.5 is in data coordinate, and 1 is in normalized axes coordinate. + You may use an atist or transform as with a tuple. For example, + + .. plot:: users/plotting/examples/annotate_simple_coord02.py + :include-source: + + + 5. Sometimes, you want your annotation with some "offset points", but + not from the annotated point but from other + point. :class:`~matplotlib.text.OffsetFrom` is a helper class for such + case. + + .. plot:: users/plotting/examples/annotate_simple_coord03.py + :include-source: + + You may take a look at this example :ref:`pylab_examples-annotation_demo3`. + +Using ConnectorPatch +==================== + +The ConnectorPatch is like an annotation without a text. While the +annotate function is recommended in most of situation, the +ConnectorPatch is useful when you want to connect points in different +axes. :: + + from matplotlib.patches import ConnectionPatch + xy = (0.2, 0.2) + con = ConnectionPatch(xyA=xy, xyB=xy, coordsA="data", coordsB="data", + axesA=ax1, axesB=ax2) + ax2.add_artist(con) + +The above code connects point xy in data coordinate of ``ax1`` to +point xy int data coordinate of ``ax2``. Here is a simple example. + +.. plot:: users/plotting/examples/connect_simple01.py + + +While the ConnectorPatch instance can be added to any axes, but you +may want it to be added to the axes in the latter (?) of the axes +drawing order to prevent overlap (?) by other axes. + + + + Advanced Topics *************** Added: trunk/matplotlib/doc/users/plotting/examples/annotate_simple_coord01.py =================================================================== --- trunk/matplotlib/doc/users/plotting/examples/annotate_simple_coord01.py (rev 0) +++ trunk/matplotlib/doc/users/plotting/examples/annotate_simple_coord01.py 2010-02-28 03:13:39 UTC (rev 8163) @@ -0,0 +1,15 @@ + +import matplotlib.pyplot as plt + +plt.figure(figsize=(3,2)) +ax=plt.subplot(111) +an1 = ax.annotate("Test 1", xy=(0.5, 0.5), xycoords="data", + va="center", ha="center", + bbox=dict(boxstyle="round", fc="w")) +an2 = ax.annotate("Test 2", xy=(1, 0.5), xycoords=an1, + xytext=(30,0), textcoords="offset points", + va="center", ha="left", + bbox=dict(boxstyle="round", fc="w"), + arrowprops=dict(arrowstyle="->")) +plt.show() + Added: trunk/matplotlib/doc/users/plotting/examples/annotate_simple_coord02.py =================================================================== --- trunk/matplotlib/doc/users/plotting/examples/annotate_simple_coord02.py (rev 0) +++ trunk/matplotlib/doc/users/plotting/examples/annotate_simple_coord02.py 2010-02-28 03:13:39 UTC (rev 8163) @@ -0,0 +1,16 @@ + +import matplotlib.pyplot as plt + +plt.figure(figsize=(3,2)) +ax=plt.axes([0.1, 0.1, 0.8, 0.7]) +an1 = ax.annotate("Test 1", xy=(0.5, 0.5), xycoords="data", + va="center", ha="center", + bbox=dict(boxstyle="round", fc="w")) + +an2 = ax.annotate("Test 2", xy=(0.5, 1.), xycoords=an1, + xytext=(0.5,1.1), textcoords=(an1, "axes fraction"), + va="bottom", ha="center", + bbox=dict(boxstyle="round", fc="w"), + arrowprops=dict(arrowstyle="->")) +plt.show() + Added: trunk/matplotlib/doc/users/plotting/examples/annotate_simple_coord03.py =================================================================== --- trunk/matplotlib/doc/users/plotting/examples/annotate_simple_coord03.py (rev 0) +++ trunk/matplotlib/doc/users/plotting/examples/annotate_simple_coord03.py 2010-02-28 03:13:39 UTC (rev 8163) @@ -0,0 +1,19 @@ + +import matplotlib.pyplot as plt + +plt.figure(figsize=(3,2)) +ax=plt.axes([0.1, 0.1, 0.8, 0.7]) +an1 = ax.annotate("Test 1", xy=(0.5, 0.5), xycoords="data", + va="center", ha="center", + bbox=dict(boxstyle="round", fc="w")) + +from matplotlib.text import OffsetFrom +offset_from = OffsetFrom(an1, (0.5, 0)) +an2 = ax.annotate("Test 2", xy=(0.1, 0.1), xycoords="data", + xytext=(0, -10), textcoords=offset_from, + # xytext is offset points from "xy=(0.5, 0), xycoords=an1" + va="top", ha="center", + bbox=dict(boxstyle="round", fc="w"), + arrowprops=dict(arrowstyle="->")) +plt.show() + Modified: trunk/matplotlib/examples/pylab_examples/annotation_demo3.py =================================================================== --- trunk/matplotlib/examples/pylab_examples/annotation_demo3.py 2010-02-27 17:00:53 UTC (rev 8162) +++ trunk/matplotlib/examples/pylab_examples/annotation_demo3.py 2010-02-28 03:13:39 UTC (rev 8163) @@ -76,17 +76,16 @@ from matplotlib.text import OffsetFrom -ax2.annotate('xy=(0.5, 0)\nxycoords="bbox fraction"\nxybbox=artist', - xy=(0.5, 0.), xycoords=t.get_window_extent, +ax2.annotate('xy=(0.5, 0)\nxycoords=artist', + xy=(0.5, 0.), xycoords=t, xytext=(0, -20), textcoords='offset points', ha="center", va="top", bbox=bbox_args, arrowprops=arrow_args ) -ax2.annotate('xy=(0.8, 0.5)\nxycoords="bbox"\nxybbox=ax1.transData', +ax2.annotate('xy=(0.8, 0.5)\nxycoords=ax1.transData', xy=(0.8, 0.5), xycoords=ax1.transData, - #xytext=(0, 0), textcoords='data', xytext=(10, 10), textcoords=OffsetFrom(ax2.bbox, (0, 0), "points"), ha="left", va="bottom", bbox=bbox_args, Modified: trunk/matplotlib/lib/matplotlib/text.py =================================================================== --- trunk/matplotlib/lib/matplotlib/text.py 2010-02-27 17:00:53 UTC (rev 8162) +++ trunk/matplotlib/lib/matplotlib/text.py 2010-02-28 03:13:39 UTC (rev 8163) @@ -1423,7 +1423,9 @@ x, y = l+w*xf, b+h*yf elif isinstance(self._artist, Transform): x, y = self._artist.transform_point(self._ref_coord) - + else: + raise RuntimeError("unknown type") + sc = self._get_scale(renderer) tr = Affine2D().scale(sc, sc).translate(x, y) @@ -1780,7 +1782,12 @@ # 5 points below the top border xy=(10,-5), xycoords='axes points' + You may use an instance of + :class:`~matplotlib.transforms.Transform` or + :class:`~matplotlib.artist.Artist`. See + :ref:`plotting-guide-annotation` for more details. + The *annotation_clip* attribute contols the visibility of the annotation when it goes outside the axes area. If True, the annotation will only be drawn when the *xy* is inside the This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2010-02-27 17:01:21
|
Revision: 8162 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8162&view=rev Author: mdehoon Date: 2010-02-27 17:00:53 +0000 (Sat, 27 Feb 2010) Log Message: ----------- With cairo /pycairo both at version 1.8.8, I'm still seeing crashes with paths longer than 20000 points or so (tried the gtkcairo backend on Mac OS X). So the path length check is still needed. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/backends/backend_cairo.py Modified: trunk/matplotlib/lib/matplotlib/backends/backend_cairo.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_cairo.py 2010-02-26 16:27:55 UTC (rev 8161) +++ trunk/matplotlib/lib/matplotlib/backends/backend_cairo.py 2010-02-27 17:00:53 UTC (rev 8162) @@ -138,6 +138,9 @@ 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.") + ctx = gc.ctx transform = transform + \ @@ -145,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): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2010-02-26 16:28:02
|
Revision: 8161 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8161&view=rev Author: mdboom Date: 2010-02-26 16:27:55 +0000 (Fri, 26 Feb 2010) Log Message: ----------- Fix offset_copy: the fig argument should be optional. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/transforms.py Modified: trunk/matplotlib/lib/matplotlib/transforms.py =================================================================== --- trunk/matplotlib/lib/matplotlib/transforms.py 2010-02-26 16:27:22 UTC (rev 8160) +++ trunk/matplotlib/lib/matplotlib/transforms.py 2010-02-26 16:27:55 UTC (rev 8161) @@ -2284,7 +2284,7 @@ ((a < b) and (a < val and b > val)) or (b < val and a > val)) -def offset_copy(trans, fig, x=0.0, y=0.0, units='inches'): +def offset_copy(trans, fig=None, x=0.0, y=0.0, units='inches'): ''' Return a new transform with an added offset. args: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2010-02-26 16:27:29
|
Revision: 8160 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8160&view=rev Author: mdboom Date: 2010-02-26 16:27:22 +0000 (Fri, 26 Feb 2010) Log Message: ----------- Fix offset_copy: the fig argument should be optional. Modified Paths: -------------- branches/v0_99_maint/lib/matplotlib/transforms.py Modified: branches/v0_99_maint/lib/matplotlib/transforms.py =================================================================== --- branches/v0_99_maint/lib/matplotlib/transforms.py 2010-02-26 16:04:49 UTC (rev 8159) +++ branches/v0_99_maint/lib/matplotlib/transforms.py 2010-02-26 16:27:22 UTC (rev 8160) @@ -2265,7 +2265,7 @@ ((a < b) and (a < val and b > val)) or (b < val and a > val)) -def offset_copy(trans, fig, x=0.0, y=0.0, units='inches'): +def offset_copy(trans, fig=None, x=0.0, y=0.0, units='inches'): ''' Return a new transform with an added offset. args: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <js...@us...> - 2010-02-26 16:04:57
|
Revision: 8159 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8159&view=rev Author: jswhit Date: 2010-02-26 16:04:49 +0000 (Fri, 26 Feb 2010) Log Message: ----------- make default behaviour for order=3 match orders=0,1 for grid pts outside range of data. Modified Paths: -------------- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py =================================================================== --- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-02-26 00:28:14 UTC (rev 8158) +++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-02-26 16:04:49 UTC (rev 8159) @@ -3755,7 +3755,7 @@ except ImportError: raise ValueError('scipy.ndimage must be installed if order=3') coords = [ycoords,xcoords] - dataout = map_coordinates(datain,coords,order=3,mode='constant') + dataout = map_coordinates(datain,coords,order=3,mode='nearest') else: raise ValueError,'order keyword must be 0, 1 or 3' if masked and isinstance(masked,bool): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lee...@us...> - 2010-02-26 00:32:20
|
Revision: 8157 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8157&view=rev Author: leejjoon Date: 2010-02-26 00:28:07 +0000 (Fri, 26 Feb 2010) Log Message: ----------- refactor Annotation to support arbitrary transformation. Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/offsetbox.py trunk/matplotlib/lib/matplotlib/text.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2010-02-25 15:57:15 UTC (rev 8156) +++ trunk/matplotlib/CHANGELOG 2010-02-26 00:28:07 UTC (rev 8157) @@ -1,3 +1,8 @@ +2010-02-25 refactor Annotation to support arbitrary Transform as xycoords + or textcoords. Also, if a tuple of two coordinates is provided, + they are interpreted as coordinates for each x and y position. + -JJL + 2010-02-24 Added pyplot.fig_subplot(), to create a figure and a group of subplots in a single call. This offers an easier pattern than manually making figures and calling add_subplot() multiple times. FP Modified: trunk/matplotlib/lib/matplotlib/offsetbox.py =================================================================== --- trunk/matplotlib/lib/matplotlib/offsetbox.py 2010-02-25 15:57:15 UTC (rev 8156) +++ trunk/matplotlib/lib/matplotlib/offsetbox.py 2010-02-26 00:28:07 UTC (rev 8157) @@ -1301,11 +1301,11 @@ x, y = self.xytext if isinstance(self.textcoords, tuple): xcoord, ycoord = self.textcoords - x1, y1 = self._get_xy(x, y, xcoord) - x2, y2 = self._get_xy(x, y, ycoord) + x1, y1 = self._get_xy(renderer, x, y, xcoord) + x2, y2 = self._get_xy(renderer, x, y, ycoord) ox0, oy0 = x1, y2 else: - ox0, oy0 = self._get_xy(x, y, self.textcoords) + ox0, oy0 = self._get_xy(renderer, x, y, self.textcoords) #self.offsetbox.set_bbox_to_anchor((ox0, oy0)) w, h, xd, yd = self.offsetbox.get_extent(renderer) @@ -1526,11 +1526,11 @@ x, y = ann.xytext if isinstance(ann.textcoords, tuple): xcoord, ycoord = ann.textcoords - x1, y1 = ann._get_xy(x, y, xcoord) - x2, y2 = ann._get_xy(x, y, ycoord) + x1, y1 = ann._get_xy(self.canvas.renderer, x, y, xcoord) + x2, y2 = ann._get_xy(self.canvas.renderer, x, y, ycoord) ox0, oy0 = x1, y2 else: - ox0, oy0 = ann._get_xy(x, y, ann.textcoords) + ox0, oy0 = ann._get_xy(self.canvas.renderer, x, y, ann.textcoords) self.ox, self.oy = ox0, oy0 self.annotation.textcoords = "figure pixels" @@ -1539,7 +1539,7 @@ ann = self.annotation ann.xytext = self.ox + dx, self.oy + dy x, y = ann.xytext - xy = ann._get_xy(x, y, ann.textcoords) + xy = ann._get_xy(self.canvas.renderer, x, y, ann.textcoords) def finalize_offset(self): loc_in_canvas = self.annotation.xytext Modified: trunk/matplotlib/lib/matplotlib/text.py =================================================================== --- trunk/matplotlib/lib/matplotlib/text.py 2010-02-25 15:57:15 UTC (rev 8156) +++ trunk/matplotlib/lib/matplotlib/text.py 2010-02-26 00:28:07 UTC (rev 8157) @@ -16,7 +16,8 @@ from matplotlib.patches import bbox_artist, YAArrow, FancyBboxPatch, \ FancyArrowPatch, Rectangle import matplotlib.transforms as mtransforms -from matplotlib.transforms import Affine2D, Bbox +from matplotlib.transforms import Affine2D, Bbox, Transform ,\ + BboxBase, BboxTransformTo from matplotlib.lines import Line2D from matplotlib.artist import allow_rasterization @@ -306,7 +307,7 @@ ismath=ismath) else: w, h, d = 0, 0, 0 - + if baseline is None: baseline = h - d whs[i] = w, h @@ -1389,6 +1390,45 @@ docstring.interpd.update(TextWithDash=artist.kwdoc(TextWithDash)) + +class OffsetFrom(object): + def __init__(self, artist, ref_coord, unit="points"): + self._artist = artist + self._ref_coord= ref_coord + self.set_unit(unit) + + def set_unit(self, unit): + assert unit in ["points", "pixels"] + self._unit = unit + + def get_unit(self): + return self._unit + + def _get_scale(self, renderer): + unit = self.get_unit() + if unit == "pixels": + return 1. + else: + return renderer.points_to_pixels(1.) + + def __call__(self, renderer): + if isinstance(self._artist, Artist): + bbox = self._artist.get_window_extent(renderer) + l, b, w, h = bbox.bounds + xf, yf = self._ref_coord + x, y = l+w*xf, b+h*yf + elif isinstance(self._artist, BboxBase): + l, b, w, h = self._artist.bounds + xf, yf = self._ref_coord + x, y = l+w*xf, b+h*yf + elif isinstance(self._artist, Transform): + x, y = self._artist.transform_point(self._ref_coord) + + sc = self._get_scale(renderer) + tr = Affine2D().scale(sc, sc).translate(x, y) + + return tr + class _AnnotationBase(object): def __init__(self, xy, xytext=None, @@ -1408,102 +1448,169 @@ self._draggable = None + def _get_xy(self, renderer, x, y, s): + if isinstance(s, tuple): + s1, s2 = s + else: + s1, s2 = s, s - def _get_xy(self, x, y, s): - if s=='data': - trans = self.axes.transData + if s1 == 'data': x = float(self.convert_xunits(x)) + if s2 == 'data': y = float(self.convert_yunits(y)) - return trans.transform_point((x, y)) - elif s=='offset points': - # convert the data point - dx, dy = self.xy - # prevent recursion - if self.xycoords == 'offset points': - return self._get_xy(dx, dy, 'data') - dx, dy = self._get_xy(dx, dy, self.xycoords) + tr = self._get_xy_transform(renderer, s) + x1, y1 = tr.transform_point((x, y)) + return x1, y1 - # convert the offset - dpi = self.figure.get_dpi() - x *= dpi/72. - y *= dpi/72. + def _get_xy_transform(self, renderer, s): - # add the offset to the data point - x += dx - y += dy + if isinstance(s, tuple): + s1, s2 = s + from matplotlib.transforms import blended_transform_factory + tr1 = self._get_xy_transform(renderer, s1) + tr2 = self._get_xy_transform(renderer, s2) + tr = blended_transform_factory(tr1, tr2) + return tr - return x, y + if callable(s): + tr = s(renderer) + if isinstance(tr, BboxBase): + return BboxTransformTo(tr) + elif isinstance(tr, Transform): + return tr + else: + raise RuntimeError("unknown return type ...") + if isinstance(s, Artist): + bbox = s.get_window_extent(renderer) + return BboxTransformTo(bbox) + elif isinstance(s, BboxBase): + return BboxTransformTo(s) + elif isinstance(s, Transform): + return s + elif not is_string_like(s): + raise RuntimeError("unknown coordinate type : %s" % (s,)) + + if s=='data': + return self.axes.transData elif s=='polar': - theta, r = x, y - x = r*np.cos(theta) - y = r*np.sin(theta) - trans = self.axes.transData - return trans.transform_point((x,y)) - elif s=='figure points': - #points from the lower left corner of the figure - dpi = self.figure.dpi - l,b,w,h = self.figure.bbox.bounds - r = l+w - t = b+h + from matplotlib.projections import PolarAxes + tr = PolarAxes.PolarTransform() + trans = tr + self.axes.transData + return trans + + s_ = s.split() + if len(s_) != 2: + raise ValueError("%s is not a recognized coodinate" % s) - x *= dpi/72. - y *= dpi/72. - if x<0: - x = r + x - if y<0: - y = t + y - return x,y - elif s=='figure pixels': - #pixels from the lower left corner of the figure - l,b,w,h = self.figure.bbox.bounds - r = l+w - t = b+h - if x<0: - x = r + x - if y<0: - y = t + y - return x, y - elif s=='figure fraction': - #(0,0) is lower left, (1,1) is upper right of figure - trans = self.figure.transFigure - return trans.transform_point((x,y)) - elif s=='axes points': - #points from the lower left corner of the axes - dpi = self.figure.dpi - l,b,w,h = self.axes.bbox.bounds - r = l+w - t = b+h - if x<0: - x = r + x*dpi/72. - else: - x = l + x*dpi/72. - if y<0: - y = t + y*dpi/72. - else: - y = b + y*dpi/72. - return x, y - elif s=='axes pixels': - #pixels from the lower left corner of the axes + bbox0, xy0 = None, None - l,b,w,h = self.axes.bbox.bounds - r = l+w - t = b+h - if x<0: - x = r + x + bbox_name, unit = s_ + # if unit is offset-like + if bbox_name == "figure": + bbox0 = self.figure.bbox + elif bbox_name == "axes": + bbox0 = self.axes.bbox + # elif bbox_name == "bbox": + # if bbox is None: + # raise RuntimeError("bbox is specified as a coordinate but never set") + # bbox0 = self._get_bbox(renderer, bbox) + + if bbox0 is not None: + xy0 = bbox0.bounds[:2] + elif bbox_name == "offset": + xy0 = self._get_ref_xy(renderer) + + if xy0 is not None: + # reference x, y in display coordinate + ref_x, ref_y = xy0 + from matplotlib.transforms import Affine2D + if unit == "points": + dpi = self.figure.get_dpi() + tr = Affine2D().scale(dpi/72., dpi/72.) + elif unit == "pixels": + tr = Affine2D() + elif unit == "fontsize": + fontsize = self.get_size() + dpi = self.figure.get_dpi() + tr = Affine2D().scale(fontsize*dpi/72., fontsize*dpi/72.) + elif unit == "fraction": + w, h = bbox0.bounds[2:] + tr = Affine2D().scale(w, h) else: - x = l + x - if y<0: - y = t + y - else: - y = b + y - return x, y - elif s=='axes fraction': - #(0,0) is lower left, (1,1) is upper right of axes - trans = self.axes.transAxes - return trans.transform_point((x, y)) + raise ValueError("%s is not a recognized coodinate" % s) + return tr.translate(ref_x, ref_y) + + else: + raise ValueError("%s is not a recognized coodinate" % s) + + + def _get_ref_xy(self, renderer): + """ + return x, y (in display coordinate) that is to be used for a reference + of any offset coordinate + """ + + if isinstance(self.xycoords, tuple): + s1, s2 = self.xycoords + if s1.split()[0] == "offset" or s2.split()[0] == "offset": + raise ValueError("xycoords should not be an offset coordinate") + x, y = self.xy + x1, y1 = self._get_xy(renderer, x, y, s1) + x2, y2 = self._get_xy(renderer, x, y, s2) + return x1, y2 + elif is_string_like(self.xycoords) and self.xycoords.split()[0] == "offset": + raise ValueError("xycoords should not be an offset coordinate") + else: + x, y = self.xy + return self._get_xy(renderer, x, y, self.xycoords) + #raise RuntimeError("must be defined by the derived class") + + + # def _get_bbox(self, renderer): + # if hasattr(bbox, "bounds"): + # return bbox + # elif hasattr(bbox, "get_window_extent"): + # bbox = bbox.get_window_extent() + # return bbox + # else: + # raise ValueError("A bbox instance is expected but got %s" % str(bbox)) + + + + def _get_xy_legacy(self, renderer, x, y, s): + """ + only used when s in ['axes points', 'axes pixel', 'figure points', 'figure pixel']. + """ + s_ = s.split() + bbox0, xy0 = None, None + bbox_name, unit = s_ + + if bbox_name == "figure": + bbox0 = self.figure.bbox + elif bbox_name == "axes": + bbox0 = self.axes.bbox + + if unit == "points": + sc = self.figure.get_dpi()/72. + elif unit == "pixels": + sc = 1 + + l,b,r,t = bbox0.extents + if x<0: + x = r + x*sc + else: + x = l + x*sc + if y<0: + y = t + y*sc + else: + y = b + y*sc + + return x, y + + def set_annotation_clip(self, b): """ set *annotation_clip* attribute. @@ -1524,7 +1631,7 @@ def _get_position_xy(self, renderer): "Return the pixel position of the the annotated point." x, y = self.xy - return self._get_xy(x, y, self.xycoords) + return self._get_xy(renderer, x, y, self.xycoords) def _check_xy(self, renderer, xy_pixel): """ @@ -1533,6 +1640,7 @@ """ b = self.get_annotation_clip() + if b or (b is None and self.xycoords == "data"): # check if self.xy is inside the axes. if not self.axes.contains_point(xy_pixel): @@ -1550,7 +1658,7 @@ * True : turn draggable on * False : turn draggable off - + If draggable is on, you can drag the annotation on the canvas with the mouse. The DraggableAnnotation helper instance is returned if draggable is on. @@ -1561,7 +1669,7 @@ # if state is None we'll toggle if state is None: state = not is_draggable - + if state: if self._draggable is None: self._draggable = DraggableAnnotation(self, use_blit) @@ -1706,7 +1814,7 @@ else: self.arrow_patch = None - + def contains(self,event): t,tinfo = Text.contains(self,event) if self.arrow is not None: @@ -1737,7 +1845,8 @@ "Update the pixel positions of the annotation text and the arrow patch." x, y = self.xytext - self._x, self._y = self._get_xy(x, y, self.textcoords) + self._x, self._y = self._get_xy(renderer, x, y, + self.textcoords) x, y = xy_pixel This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lee...@us...> - 2010-02-26 00:31:49
|
Revision: 8158 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8158&view=rev Author: leejjoon Date: 2010-02-26 00:28:14 +0000 (Fri, 26 Feb 2010) Log Message: ----------- add annotation_demo3.py Modified Paths: -------------- trunk/matplotlib/CHANGELOG Added Paths: ----------- trunk/matplotlib/examples/pylab_examples/annotation_demo3.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2010-02-26 00:28:07 UTC (rev 8157) +++ trunk/matplotlib/CHANGELOG 2010-02-26 00:28:14 UTC (rev 8158) @@ -1,3 +1,5 @@ +2010-02-25 add annotation_demo3.py that demonstrates new functionality. -JJL + 2010-02-25 refactor Annotation to support arbitrary Transform as xycoords or textcoords. Also, if a tuple of two coordinates is provided, they are interpreted as coordinates for each x and y position. Added: trunk/matplotlib/examples/pylab_examples/annotation_demo3.py =================================================================== --- trunk/matplotlib/examples/pylab_examples/annotation_demo3.py (rev 0) +++ trunk/matplotlib/examples/pylab_examples/annotation_demo3.py 2010-02-26 00:28:14 UTC (rev 8158) @@ -0,0 +1,102 @@ +import matplotlib.pyplot as plt + +fig = plt.figure(1) +fig.clf() + +ax1 = plt.subplot(121) +ax2 = plt.subplot(122) + +bbox_args = dict(boxstyle="round", fc="0.8") +arrow_args = dict(arrowstyle="->") + +ax1.annotate('figure fraction : 0, 0', xy=(0, 0), xycoords='figure fraction', + xytext=(20, 20), textcoords='offset points', + ha="left", va="bottom", + bbox=bbox_args, + arrowprops=arrow_args + ) + +ax1.annotate('figure fraction : 1, 1', xy=(1, 1), xycoords='figure fraction', + xytext=(-20, -20), textcoords='offset points', + ha="right", va="top", + bbox=bbox_args, + arrowprops=arrow_args + ) + +ax1.annotate('axes fraction : 0, 0', xy=(0, 0), xycoords='axes fraction', + xytext=(20, 20), textcoords='offset points', + ha="left", va="bottom", + bbox=bbox_args, + arrowprops=arrow_args + ) + +ax1.annotate('axes fraction : 1, 1', xy=(1, 1), xycoords='axes fraction', + xytext=(-20, -20), textcoords='offset points', + ha="right", va="top", + bbox=bbox_args, + arrowprops=arrow_args + ) + + +an1 = ax1.annotate('Drag me 1', xy=(.5, .7), xycoords='data', + #xytext=(.5, .7), textcoords='data', + ha="center", va="center", + bbox=bbox_args, + #arrowprops=arrow_args + ) + +an2 = ax1.annotate('Drag me 2', xy=(.5, .5), xycoords=an1, + xytext=(.5, .3), textcoords='axes fraction', + ha="center", va="center", + bbox=bbox_args, + arrowprops=dict(patchB=an1.get_bbox_patch(), + connectionstyle="arc3,rad=0.2", + **arrow_args) + ) + +an3 = ax1.annotate('', xy=(.5, .5), xycoords=an2, + xytext=(.5, .5), textcoords=an1, + ha="center", va="center", + bbox=bbox_args, + arrowprops=dict(patchA=an1.get_bbox_patch(), + patchB=an2.get_bbox_patch(), + connectionstyle="arc3,rad=0.2", + **arrow_args) + ) + + + +t = ax2.annotate('xy=(0, 1)\nxycoords=("data", "axes fraction")', + xy=(0, 1), xycoords=("data", 'axes fraction'), + xytext=(0, -20), textcoords='offset points', + ha="center", va="top", + bbox=bbox_args, + arrowprops=arrow_args + ) + +from matplotlib.text import OffsetFrom + +ax2.annotate('xy=(0.5, 0)\nxycoords="bbox fraction"\nxybbox=artist', + xy=(0.5, 0.), xycoords=t.get_window_extent, + xytext=(0, -20), textcoords='offset points', + ha="center", va="top", + bbox=bbox_args, + arrowprops=arrow_args + ) + +ax2.annotate('xy=(0.8, 0.5)\nxycoords="bbox"\nxybbox=ax1.transData', + xy=(0.8, 0.5), xycoords=ax1.transData, + #xytext=(0, 0), textcoords='data', + xytext=(10, 10), textcoords=OffsetFrom(ax2.bbox, (0, 0), "points"), + ha="left", va="bottom", + bbox=bbox_args, + arrowprops=arrow_args + ) + +ax2.set_xlim(-2, 2) +ax2.set_ylim(-2, 2) + +an1.draggable() +an2.draggable() + +plt.show() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <js...@us...> - 2010-02-25 15:57:21
|
Revision: 8156 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8156&view=rev Author: jswhit Date: 2010-02-25 15:57:15 +0000 (Thu, 25 Feb 2010) Log Message: ----------- update transform_scalar and transform_vector docstrings. Modified Paths: -------------- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py =================================================================== --- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-02-25 15:54:08 UTC (rev 8155) +++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-02-25 15:57:15 UTC (rev 8156) @@ -2384,7 +2384,8 @@ array with values outside map projection region masked (Default False). order 0 for nearest-neighbor interpolation, 1 for - bilinear (Default 1). + bilinear, 3 for cubic spline (Default 1). + Cubic spline interpolation requires scipy.ndimage. ============== ==================================================== Returns ``datout`` (data on map projection grid). @@ -2455,7 +2456,8 @@ array with values outside map projection region masked (Default False). order 0 for nearest-neighbor interpolation, 1 for - bilinear (Default 1). + bilinear, 3 for cubic spline (Default 1). + Cubic spline interpolation requires scipy.ndimage. ============== ==================================================== Returns ``uout, vout`` (vector field on map projection grid). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <js...@us...> - 2010-02-25 15:54:31
|
Revision: 8155 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8155&view=rev Author: jswhit Date: 2010-02-25 15:54:08 +0000 (Thu, 25 Feb 2010) Log Message: ----------- fix typo in previous commit Modified Paths: -------------- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py =================================================================== --- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-02-25 15:53:30 UTC (rev 8154) +++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-02-25 15:54:08 UTC (rev 8155) @@ -3753,7 +3753,7 @@ except ImportError: raise ValueError('scipy.ndimage must be installed if order=3') coords = [ycoords,xcoords] - map_coordinates(datain,coords,order=3,mode='constant') + dataout = map_coordinates(datain,coords,order=3,mode='constant') else: raise ValueError,'order keyword must be 0, 1 or 3' if masked and isinstance(masked,bool): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <js...@us...> - 2010-02-25 15:53:38
|
Revision: 8154 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8154&view=rev Author: jswhit Date: 2010-02-25 15:53:30 +0000 (Thu, 25 Feb 2010) Log Message: ----------- added order=3 option to interp Modified Paths: -------------- trunk/toolkits/basemap/Changelog trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py Modified: trunk/toolkits/basemap/Changelog =================================================================== --- trunk/toolkits/basemap/Changelog 2010-02-24 20:48:26 UTC (rev 8153) +++ trunk/toolkits/basemap/Changelog 2010-02-25 15:53:30 UTC (rev 8154) @@ -1,4 +1,6 @@ version 0.99.5 (not yet released) + * added option for cubic spline interpolation in interp function + (order=3) using scipy.ndimage. * added "near-sided perspective" projection for a satellite view at an arbitrary altitude. * patch from Stephane Raynaud to pass format string to Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py =================================================================== --- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-02-24 20:48:26 UTC (rev 8153) +++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-02-25 15:53:30 UTC (rev 8154) @@ -3639,7 +3639,7 @@ y, 2nd dimension x. xin, yin rank-1 arrays containing x and y of datain grid in increasing order. - xout, yout arrays containing x and y of desired output grid. + xout, yout rank-2 arrays containing x and y of desired output grid. ============== ==================================================== .. tabularcolumns:: |l|L| @@ -3660,7 +3660,8 @@ points outside the range of xin and yin will be set to that number. Default False. order 0 for nearest-neighbor interpolation, 1 for - bilinear interpolation (default 1). + bilinear interpolation, 3 for cublic spline + (default 1). order=3 requires scipy.ndimage. ============== ==================================================== .. note:: @@ -3746,8 +3747,15 @@ xcoordsi = np.around(xcoords).astype(np.int32) ycoordsi = np.around(ycoords).astype(np.int32) dataout = datain[ycoordsi,xcoordsi] + elif order == 3: + try: + from scipy.ndimage import map_coordinates + except ImportError: + raise ValueError('scipy.ndimage must be installed if order=3') + coords = [ycoords,xcoords] + map_coordinates(datain,coords,order=3,mode='constant') else: - raise ValueError,'order keyword must be 0 or 1' + raise ValueError,'order keyword must be 0, 1 or 3' if masked and isinstance(masked,bool): dataout = ma.masked_array(dataout) newmask = ma.mask_or(ma.getmask(dataout), xymask) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ef...@us...> - 2010-02-24 20:48:33
|
Revision: 8153 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8153&view=rev Author: efiring Date: 2010-02-24 20:48:26 +0000 (Wed, 24 Feb 2010) Log Message: ----------- cntr.c: declare variables at start of block; fixes 2933705 Modified Paths: -------------- trunk/matplotlib/src/cntr.c Modified: trunk/matplotlib/src/cntr.c =================================================================== --- trunk/matplotlib/src/cntr.c 2010-02-24 18:30:42 UTC (rev 8152) +++ trunk/matplotlib/src/cntr.c 2010-02-24 20:48:26 UTC (rev 8153) @@ -420,19 +420,21 @@ /* this is a saddle zone, determine whether to turn left or * right depending on height of centre of zone relative to * contour level. Set saddle[zone] if not already decided. */ + int turnRight; long zone = edge + (left > 0 ? left : 0); if (!(saddle[zone] & SADDLE_SET)) { + double zcentre; saddle[zone] = SADDLE_SET; - double zcentre = (z[p0] + z[p0+left] + z[p1] + z[p1+left])/4.0; + zcentre = (z[p0] + z[p0+left] + z[p1] + z[p1+left])/4.0; if (zcentre > site->zlevel[0]) saddle[zone] |= (two_levels && zcentre > site->zlevel[1]) ? SADDLE_GT0 | SADDLE_GT1 : SADDLE_GT0; } - int turnRight = level == 2 ? (saddle[zone] & SADDLE_GT1) - : (saddle[zone] & SADDLE_GT0); + turnRight = level == 2 ? (saddle[zone] & SADDLE_GT1) + : (saddle[zone] & SADDLE_GT0); if (z1 ^ (level == 2)) turnRight = !turnRight; if (!turnRight) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fer...@us...> - 2010-02-24 19:09:49
|
Revision: 8151 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8151&view=rev Author: fer_perez Date: 2010-02-24 18:25:49 +0000 (Wed, 24 Feb 2010) Log Message: ----------- Add pyplot.fig_subplot, for easier creation of figures with multiple subplots. Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/pyplot.py Added Paths: ----------- trunk/matplotlib/examples/pylab_examples/fig_subplot_demo.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2010-02-23 17:02:11 UTC (rev 8150) +++ trunk/matplotlib/CHANGELOG 2010-02-24 18:25:49 UTC (rev 8151) @@ -1,3 +1,7 @@ +2010-02-24 Added pyplot.fig_subplot(), to create a figure and a group of + subplots in a single call. This offers an easier pattern than + manually making figures and calling add_subplot() multiple times. FP + 2010-02-17 Added Gokhan's and Mattias' customizable keybindings patch for the toolbar. You can now set the keymap.* properties in the matplotlibrc file. Newbindings were added for Added: trunk/matplotlib/examples/pylab_examples/fig_subplot_demo.py =================================================================== --- trunk/matplotlib/examples/pylab_examples/fig_subplot_demo.py (rev 0) +++ trunk/matplotlib/examples/pylab_examples/fig_subplot_demo.py 2010-02-24 18:25:49 UTC (rev 8151) @@ -0,0 +1,42 @@ +""" +""" +import matplotlib.pyplot as plt +import numpy as np + +x = np.linspace(0, 2*np.pi, 400) +y = np.sin(x**2) + +plt.close('all') + +# Just a figure and one subplot +f, ax = plt.fig_subplot() +ax.plot(x, y) +ax.set_title('Simple plot') + +# Two subplots, grab the whole fig_axes list +fax = plt.fig_subplot(2, sharex=True) +fax[1].plot(x, y) +fax[1].set_title('Sharing X axis') +fax[2].scatter(x, y) + +# Two subplots, unpack the output immediately +f, ax1, ax2 = plt.fig_subplot(1, 2, sharey=True) +ax1.plot(x, y) +ax1.set_title('Sharing Y axis') +ax2.scatter(x, y) + +# Three subplots sharing both x/y axes +f, ax1, ax2, ax3 = plt.fig_subplot(3, sharex=True, sharey=True) +ax1.plot(x, y) +ax1.set_title('Sharing both axes') +ax2.scatter(x, y) +ax3.scatter(x, 2*y**2-1,color='r') +# Fine-tune figure; make subplots close to each other and hide x ticks for +# all but bottom plot. +f.subplots_adjust(hspace=0) +plt.setp([a.get_xticklabels() for a in f.axes[:-1]], visible=False) + +# Four polar axes +plt.fig_subplot(2, 2, subplot_kw=dict(polar=True)) + +plt.show() Modified: trunk/matplotlib/lib/matplotlib/pyplot.py =================================================================== --- trunk/matplotlib/lib/matplotlib/pyplot.py 2010-02-23 17:02:11 UTC (rev 8150) +++ trunk/matplotlib/lib/matplotlib/pyplot.py 2010-02-24 18:25:49 UTC (rev 8151) @@ -649,6 +649,80 @@ return a +def fig_subplot(nrows=1, ncols=1, sharex=False, sharey=False, + subplot_kw=None, **fig_kw): + """Create a figure with a set of subplots already made. + + This utility wrapper makes it convenient to create common layouts of + subplots, including the enclosing figure object, in a single call. + + Keyword arguments: + + nrows : int + Number of rows of the subplot grid. Defaults to 1. + + nrows : int + Number of columns of the subplot grid. Defaults to 1. + + sharex : bool + If True, the X axis will be shared amongst all subplots. + + sharex : bool + If True, the Y axis will be shared amongst all subplots. + + subplot_kw : dict + Dict with keywords passed to the add_subplot() call used to create each + subplots. + + fig_kw : dict + Dict with keywords passed to the figure() call. Note that all keywords + not recognized above will be automatically included here. + + Returns: + + fig_axes : list + A list containing [fig, ax1, ax2, ...], where fig is the Matplotlib + Figure object and the rest are the axes. + + **Examples:** + + x = np.linspace(0, 2*np.pi, 400) + y = np.sin(x**2) + + # Just a figure and one subplot + f, ax = plt.fig_subplot() + ax.plot(x, y) + ax.set_title('Simple plot') + + # Two subplots, unpack the output immediately + f, ax1, ax2 = plt.fig_subplot(1, 2, sharey=True) + ax1.plot(x, y) + ax1.set_title('Sharing Y axis') + ax2.scatter(x, y) + + # Four polar axes + plt.fig_subplot(2, 2, subplot_kw=dict(polar=True)) + """ + + if subplot_kw is None: + subplot_kw = {} + + fig = figure(**fig_kw) + + # Create first subplot separately, so we can share it if requested + ax1 = fig.add_subplot(nrows, ncols, 1, **subplot_kw) + if sharex: + subplot_kw['sharex'] = ax1 + if sharey: + subplot_kw['sharey'] = ax1 + + # Valid indices for axes start at 1, since fig is at 0: + axes = [ fig.add_subplot(nrows, ncols, i, **subplot_kw) + for i in range(2, nrows*ncols+1)] + + return [fig, ax1] + axes + + def twinx(ax=None): """ Make a second axes overlay *ax* (or the current axes if *ax* is This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ef...@us...> - 2010-02-24 18:30:49
|
Revision: 8152 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8152&view=rev Author: efiring Date: 2010-02-24 18:30:42 +0000 (Wed, 24 Feb 2010) Log Message: ----------- cntr.c: patch by Ian Thomas to fix bug ID 2956378 Modified Paths: -------------- trunk/matplotlib/src/cntr.c Modified: trunk/matplotlib/src/cntr.c =================================================================== --- trunk/matplotlib/src/cntr.c 2010-02-24 18:25:49 UTC (rev 8151) +++ trunk/matplotlib/src/cntr.c 2010-02-24 18:30:42 UTC (rev 8152) @@ -605,6 +605,9 @@ } if (fwd < 0 && level0 && left < 0) { + /* remove J0_START from this boundary edge as boundary is + * included by the upwards slit from contour line below. */ + data[edge] &= ~J0_START; if (n_kind) kcp[n_kind] += kind_start_slit; return slit_cutter (site, 0, pass2); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2010-02-23 17:02:19
|
Revision: 8150 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8150&view=rev Author: jdh2358 Date: 2010-02-23 17:02:11 +0000 (Tue, 23 Feb 2010) Log Message: ----------- add Ben Axelrod's button patch for RectangleSelector Modified Paths: -------------- trunk/matplotlib/examples/widgets/rectangle_selector.py trunk/matplotlib/lib/matplotlib/widgets.py Modified: trunk/matplotlib/examples/widgets/rectangle_selector.py =================================================================== --- trunk/matplotlib/examples/widgets/rectangle_selector.py 2010-02-22 23:23:05 UTC (rev 8149) +++ trunk/matplotlib/examples/widgets/rectangle_selector.py 2010-02-23 17:02:11 UTC (rev 8150) @@ -30,5 +30,6 @@ # drawtype is 'box' or 'line' or 'none' LS = RectangleSelector(current_ax, line_select_callback, drawtype='box',useblit=True, + button = [1, 3], # don't use center mouse button minspanx=5,minspany=5,spancoords='pixels') show() Modified: trunk/matplotlib/lib/matplotlib/widgets.py =================================================================== --- trunk/matplotlib/lib/matplotlib/widgets.py 2010-02-22 23:23:05 UTC (rev 8149) +++ trunk/matplotlib/lib/matplotlib/widgets.py 2010-02-23 17:02:11 UTC (rev 8150) @@ -1017,7 +1017,8 @@ """ def __init__(self, ax, onselect, drawtype='box', minspanx=None, minspany=None, useblit=False, - lineprops=None, rectprops=None, spancoords='data'): + lineprops=None, rectprops=None, spancoords='data', + button=None): """ Create a selector in ax. When a selection is made, clear @@ -1047,6 +1048,15 @@ spancoords is one of 'data' or 'pixels'. If 'data', minspanx and minspanx will be interpreted in the same coordinates as the x and ya axis, if 'pixels', they are in pixels + + button is a list of integers indicating which mouse buttons should + be used for rectangle selection. You can also specify a single + integer if only a single button is desired. Default is None, which + does not limit which button can be used. + Note, typically: + 1 = left mouse button + 2 = center mouse button (scroll wheel) + 3 = right mouse button """ self.ax = ax self.visible = True @@ -1084,6 +1094,11 @@ self.minspanx = minspanx self.minspany = minspany + if button is None or isinstance(button, list): + self.validButtons = button + elif isinstance(button, int): + self.validButtons = [button] + assert(spancoords in ('data', 'pixels')) self.spancoords = spancoords @@ -1109,6 +1124,12 @@ if not self.canvas.widgetlock.available(self): return True + # Only do rectangle selection if event was triggered + # with a desired button + if self.validButtons is not None: + if not event.button in self.validButtons: + return True + # If no button was pressed yet ignore the event if it was out # of the axes if self.eventpress == None: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2010-02-22 23:23:11
|
Revision: 8149 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8149&view=rev Author: jdh2358 Date: 2010-02-22 23:23:05 +0000 (Mon, 22 Feb 2010) Log Message: ----------- support LogNorm as arg to hexbin Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/axes.py trunk/matplotlib/lib/matplotlib/colorbar.py trunk/matplotlib/lib/matplotlib/ticker.py trunk/matplotlib/make.osx Modified: trunk/matplotlib/lib/matplotlib/axes.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axes.py 2010-02-22 16:41:11 UTC (rev 8148) +++ trunk/matplotlib/lib/matplotlib/axes.py 2010-02-22 23:23:05 UTC (rev 8149) @@ -5769,9 +5769,22 @@ transOffset = self.transData, ) + if isinstance(norm, mcolors.LogNorm): + if (accum==0).any(): + # make sure we have not zeros + accum += 1 + + # Transform accum if needed if bins=='log': accum = np.log10(accum+1) + + # autoscale the norm with curren accum values if it hasn't + # been set + if norm is not None: + if norm.vmin is None and norm.vmax is None: + norm.autoscale(accum) + elif bins!=None: if not iterable(bins): minimum, maximum = min(accum), max(accum) Modified: trunk/matplotlib/lib/matplotlib/colorbar.py =================================================================== --- trunk/matplotlib/lib/matplotlib/colorbar.py 2010-02-22 16:41:11 UTC (rev 8148) +++ trunk/matplotlib/lib/matplotlib/colorbar.py 2010-02-22 23:23:05 UTC (rev 8149) @@ -455,6 +455,10 @@ locator.set_data_interval(*intv) formatter.set_view_interval(*intv) formatter.set_data_interval(*intv) + + # the dummy axis is expecting a minpos + locator.axis.get_minpos = lambda : intv[0] + formatter.axis.get_minpos = lambda : intv[0] b = np.array(locator()) b, ticks = self._locate(b) formatter.set_locs(b) Modified: trunk/matplotlib/lib/matplotlib/ticker.py =================================================================== --- trunk/matplotlib/lib/matplotlib/ticker.py 2010-02-22 16:41:11 UTC (rev 8148) +++ trunk/matplotlib/lib/matplotlib/ticker.py 2010-02-22 23:23:05 UTC (rev 8149) @@ -147,6 +147,7 @@ def set_data_interval(self, vmin, vmax): self.dataLim.intervalx = vmin, vmax + def set_axis(self, axis): self.axis = axis Modified: trunk/matplotlib/make.osx =================================================================== --- trunk/matplotlib/make.osx 2010-02-22 16:41:11 UTC (rev 8148) +++ trunk/matplotlib/make.osx 2010-02-22 23:23:05 UTC (rev 8149) @@ -25,7 +25,7 @@ fetch: ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://www.zlib.net/zlib-${ZLIBVERSION}.tar.gz", "zlib-${ZLIBVERSION}.tar.gz")' &&\ - ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://internap.dl.sourceforge.net/sourceforge/libpng/libpng-${PNGVERSION}.tar.bz2", "libpng-${PNGVERSION}.tar.bz2")' &&\ + ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://download.sourceforge.net/libpng/libpng-${PNGVERSION}.tar.gz", "libpng-${PNGVERSION}.tar.bz2")' &&\ ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2", "freetype-${FREETYPEVERSION}.tar.bz2")' @@ -46,7 +46,7 @@ png: zlib export PKG_CONFIG_PATH=${PKG_CONFIG_PATH} &&\ rm -rf libpng-${PNGVERSION} &&\ - tar xvfj libpng-${PNGVERSION}.tar.bz2 + tar xvfz libpng-${PNGVERSION}.tar.gz cd libpng-${PNGVERSION} &&\ export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\ export CFLAGS=${CFLAGS} &&\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2010-02-22 16:41:18
|
Revision: 8148 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8148&view=rev Author: mdboom Date: 2010-02-22 16:41:11 +0000 (Mon, 22 Feb 2010) Log Message: ----------- Initialized merge tracking via "svnmerge" with revisions "1-7318" from http://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_99_maint Modified Paths: -------------- trunk/matplotlib/doc/_templates/index.html trunk/matplotlib/doc/_templates/indexsidebar.html trunk/matplotlib/doc/faq/installing_faq.rst trunk/matplotlib/doc/users/installing.rst trunk/matplotlib/examples/pylab_examples/boxplot_demo2.py trunk/matplotlib/release/osx/Makefile Property Changed: ---------------- trunk/matplotlib/ trunk/matplotlib/doc/pyplots/README trunk/matplotlib/doc/sphinxext/gen_gallery.py trunk/matplotlib/doc/sphinxext/gen_rst.py trunk/matplotlib/examples/misc/multiprocess.py trunk/matplotlib/examples/mplot3d/contour3d_demo.py trunk/matplotlib/examples/mplot3d/contourf3d_demo.py trunk/matplotlib/examples/mplot3d/polys3d_demo.py trunk/matplotlib/examples/mplot3d/scatter3d_demo.py trunk/matplotlib/examples/mplot3d/surface3d_demo.py trunk/matplotlib/examples/mplot3d/wire3d_demo.py trunk/matplotlib/lib/matplotlib/sphinxext/mathmpl.py trunk/matplotlib/lib/matplotlib/sphinxext/only_directives.py trunk/matplotlib/lib/matplotlib/sphinxext/plot_directive.py trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png 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/v0_99_maint:1-7318 /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 Modified: svn:mergeinfo - /branches/v0_91_maint:5753-5771 /branches/v0_98_5_maint:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_91_maint:5753-5771 /branches/v0_98_5_maint:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Modified: trunk/matplotlib/doc/_templates/index.html =================================================================== --- trunk/matplotlib/doc/_templates/index.html 2010-02-22 16:30:27 UTC (rev 8147) +++ trunk/matplotlib/doc/_templates/index.html 2010-02-22 16:41:11 UTC (rev 8148) @@ -1,7 +1,7 @@ {% extends "layout.html" %} {% set title = 'matplotlib: python plotting' %} - + {% block body %} <h1>intro</h1> Modified: trunk/matplotlib/doc/_templates/indexsidebar.html =================================================================== --- trunk/matplotlib/doc/_templates/indexsidebar.html 2010-02-22 16:30:27 UTC (rev 8147) +++ trunk/matplotlib/doc/_templates/indexsidebar.html 2010-02-22 16:41:11 UTC (rev 8148) @@ -9,7 +9,7 @@ pathto('users/installing') }}">installing</a> </p> -<p>Sandro Tosi has a new book +<p>Sandro Tosi has a new book <a href="http://www.packtpub.com/matplotlib-python-development/book">Matplotlib for python developers</a> also @@ -22,13 +22,12 @@ tutorial. </p> - <h3>Videos</h3> <p>Watch the <a href="http://conference.scipy.org/">SciPy</a> 2009 <a href="http://www.archive.org/details/scipy09_introTutorialDay2_1">intro</a> and <a href="http://www.archive.org/details/scipy09_advancedTutorialDay1_3">advanced</a> matplotlib tutorials </p> -<p>Watch a <a href="http://videolectures.net/mloss08_hunter_mat">talk</a> about matplotlib presented at <a href="http://videolectures.net/mloss08_whistler">NIPS 08 Workshop</a> <i>MLOSS</i></a>. +<p>Watch a <a href="http://videolectures.net/mloss08_hunter_mat">talk</a> about matplotlib presented at <a href="http://videolectures.net/mloss08_whistler">NIPS 08 Workshop</a> <i>MLOSS</i></a>. </p> Modified: trunk/matplotlib/doc/faq/installing_faq.rst =================================================================== --- trunk/matplotlib/doc/faq/installing_faq.rst 2010-02-22 16:30:27 UTC (rev 8147) +++ trunk/matplotlib/doc/faq/installing_faq.rst 2010-02-22 16:41:11 UTC (rev 8148) @@ -206,19 +206,19 @@ using the `Anti-Grain Geometry`_ engine PS :term:`ps` :term:`vector graphics` -- Postscript_ output :term:`eps` -PDF :term:`pdf` :term:`vector graphics` -- +PDF :term:`pdf` :term:`vector graphics` -- `Portable Document Format`_ SVG :term:`svg` :term:`vector graphics` -- `Scalable Vector Graphics`_ :term:`Cairo` :term:`png` :term:`vector graphics` -- :term:`ps` `Cairo graphics`_ - :term:`pdf` - :term:`svg` - ... + :term:`pdf` + :term:`svg` + ... :term:`GDK` :term:`png` :term:`raster graphics` -- :term:`jpg` the `Gimp Drawing Kit`_ - :term:`tiff` - ... + :term:`tiff` + ... ============= ============ ================================================ And here are the user interfaces and renderer combinations supported: @@ -264,8 +264,8 @@ :file:`pygobject.h` to add the :cmacro:`G_BEGIN_DECLS` and :cmacro:`G_END_DECLS` macros, and rename :cdata:`typename` parameter to :cdata:`typename_`:: - - const char *typename, - + const char *typename_, + - const char *typename, + + const char *typename_, .. _`bug in PyGTK-2.4`: http://bugzilla.gnome.org/show_bug.cgi?id=155304 @@ -294,20 +294,22 @@ ----------------------- If you want to install matplotlib from one of the binary installers we -build, you have two choices: a dmg installer, which is a typical +build, you have two choices: a mpkg installer, which is a typical Installer.app, or an binary OSX egg, which you can install via setuptools easy_install. -The mkpg installer will have a "dmg" extension, and will have a name -like :file:`matplotlib-0.99.0-py2.5-macosx10.5.dmg` depending on the -python, matplotlib, and OSX versions. Save this file and double -click it, which will open up a folder with a file in it that has the -mpkg extension. Double click this to run the Installer.app, which -will prompt you for a password if you need system wide installation -privileges, and install to a directory like -:file:`/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages`, -again depedending on your python version. This directory should be in -your python path, so you can test your installation with:: +The mkpg installer will have a "zip" extension, and will have a name +like file:`matplotlib-0.99.0.rc1-py2.5-macosx10.5_mpkg.zip` depending on +the python, matplotlib, and OSX versions. You need to unzip this file +using either the "unzip" command on OSX, or simply double clicking on +it to run StuffIt Expander. When you double click on the resultant +mpkd directory, which will have a name like +file:`matplotlib-0.99.0.rc1-py2.5-macosx10.5.mpkg`, it will run the +Installer.app, prompt you for a password if you need system wide +installation privileges, and install to a directory like +file:`/Library/Python/2.5/site-packages/`, again depedending on your +python version. This directory may not be in your python path, so you +can test your installation with:: > python -c 'import matplotlib; print matplotlib.__version__, matplotlib.__file__' @@ -319,24 +321,10 @@ then you will need to set your PYTHONPATH, eg:: - export PYTHONPATH=/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages:$PYTHONPATH + export PYTHONPATH=/Library/Python/2.5/site-packages:$PYTHONPATH -See also :ref:`environment-variables`. +See also ref:`environment-variables`. - -If you are upgrading your matplotlib using the dmg installer over an -Enthought Python Distribution, you may get an error like "You must use -a framework install of python". EPD puts their python in a directory -like :file:``//Library/Frameworks/Python.framework/Versions/4.3.0`` -where 4.3.0 is an EPD version number. The mpl installer needs the -`python` version number, so you need to create a symlink pointing your -python version to the EPS version before installing matplotlib. For -example, for python veersion 2.5 and EPD version 4.3.0:: - - > cd /Library/Frameworks/Python.framework/Versions - > ln -s 4.3.0 2.5 - - .. _easy-install-osx-egg: easy_install from egg @@ -411,25 +399,25 @@ #branch="release" branch="trunk" if [ $branch = "trunk" ] - then - echo getting the trunk - svn co https://matplotlib.svn.sourceforge.net/svnroot/$NAME/trunk/$NAME $NAME - cd $NAME + then + echo getting the trunk + svn co https://matplotlib.svn.sourceforge.net/svnroot/$NAME/trunk/$NAME $NAME + cd $NAME - fi - if [ $branch = "release" ] - then - echo getting the maintenance branch - svn co https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v${VERSION}_maint $NAME$VERSION - cd $NAME$VERSION - fi - export CFLAGS="-Os -arch i386" - export LDFLAGS="-Os -arch i386" - export PKG_CONFIG_PATH="/usr/x11/lib/pkgconfig" - export ARCHFLAGS="-arch i386" - python setup.py build - python setup.py install #--prefix=$PREFIX #Use this if you don't want it installed into your default location - cd .. + fi + if [ $branch = "release" ] + then + echo getting the maintenance branch + svn co https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v${VERSION}_maint $NAME$VERSION + cd $NAME$VERSION + fi + export CFLAGS="-Os -arch i386" + export LDFLAGS="-Os -arch i386" + export PKG_CONFIG_PATH="/usr/x11/lib/pkgconfig" + export ARCHFLAGS="-arch i386" + python setup.py build + python setup.py install #--prefix=$PREFIX #Use this if you don't want it installed into your default location + cd .. Run this script (for example ``sh ./install-matplotlib-epd-osx.sh``) in the directory in which you want the source code to be placed, or simply type the Property changes on: trunk/matplotlib/doc/pyplots/README ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_98_5_maint/doc/pyplots/README:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint/doc/pyplots/README:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_98_5_maint/doc/pyplots/README:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint/doc/pyplots/README:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Property changes on: trunk/matplotlib/doc/sphinxext/gen_gallery.py ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_91_maint/doc/_templates/gen_gallery.py:5753-5771 /branches/v0_98_5_maint/doc/sphinxext/gen_gallery.py:6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint/doc/sphinxext/gen_gallery.py:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_91_maint/doc/_templates/gen_gallery.py:5753-5771 /branches/v0_98_5_maint/doc/sphinxext/gen_gallery.py:6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint/doc/sphinxext/gen_gallery.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Property changes on: trunk/matplotlib/doc/sphinxext/gen_rst.py ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_91_maint/doc/examples/gen_rst.py:5753-5771 /branches/v0_98_5_maint/doc/sphinxext/gen_rst.py:6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint/doc/sphinxext/gen_rst.py:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_91_maint/doc/examples/gen_rst.py:5753-5771 /branches/v0_98_5_maint/doc/sphinxext/gen_rst.py:6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint/doc/sphinxext/gen_rst.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Modified: trunk/matplotlib/doc/users/installing.rst =================================================================== --- trunk/matplotlib/doc/users/installing.rst 2010-02-22 16:30:27 UTC (rev 8147) +++ trunk/matplotlib/doc/users/installing.rst 2010-02-22 16:41:11 UTC (rev 8148) @@ -79,6 +79,9 @@ In [2]: hist(x, 100) +Instructions for installing our OSX binaries are found in the FAQ +ref:`install_osx_binaries`. + Note that when testing matplotlib installations from the interactive python console, there are some issues relating to user interface toolkits and interactive settings that are discussed in Property changes on: trunk/matplotlib/examples/misc/multiprocess.py ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_91_maint/examples/misc/log.py:5753-5771 /branches/v0_98_5_maint/examples/misc/log.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/misc/multiprocess.py:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_91_maint/examples/misc/log.py:5753-5771 /branches/v0_98_5_maint/examples/misc/log.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/misc/multiprocess.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Property changes on: trunk/matplotlib/examples/mplot3d/contour3d_demo.py ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_91_maint/examples/mplot3d/contour.py:5753-5771 /branches/v0_98_5_maint/examples/mplot3d/contour.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/mplot3d/contour3d_demo.py:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_91_maint/examples/mplot3d/contour.py:5753-5771 /branches/v0_98_5_maint/examples/mplot3d/contour.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/mplot3d/contour3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Property changes on: trunk/matplotlib/examples/mplot3d/contourf3d_demo.py ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_91_maint/examples/mplot3d/contourf.py:5753-5771 /branches/v0_98_5_maint/examples/mplot3d/contourf.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/mplot3d/contourf3d_demo.py:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_91_maint/examples/mplot3d/contourf.py:5753-5771 /branches/v0_98_5_maint/examples/mplot3d/contourf.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/mplot3d/contourf3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Property changes on: trunk/matplotlib/examples/mplot3d/polys3d_demo.py ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_91_maint/examples/mplot3d/polys.py:5753-5771 /branches/v0_98_5_maint/examples/mplot3d/polys.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/mplot3d/polys3d_demo.py:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_91_maint/examples/mplot3d/polys.py:5753-5771 /branches/v0_98_5_maint/examples/mplot3d/polys.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/mplot3d/polys3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Property changes on: trunk/matplotlib/examples/mplot3d/scatter3d_demo.py ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_91_maint/examples/mplot3d/scatter.py:5753-5771 /branches/v0_98_5_maint/examples/mplot3d/scatter.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/mplot3d/scatter3d_demo.py:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_91_maint/examples/mplot3d/scatter.py:5753-5771 /branches/v0_98_5_maint/examples/mplot3d/scatter.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/mplot3d/scatter3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Property changes on: trunk/matplotlib/examples/mplot3d/surface3d_demo.py ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_91_maint/examples/mplot3d/surface.py:5753-5771 /branches/v0_98_5_maint/examples/mplot3d/surface.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/mplot3d/surface3d_demo.py:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_91_maint/examples/mplot3d/surface.py:5753-5771 /branches/v0_98_5_maint/examples/mplot3d/surface.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/mplot3d/surface3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Property changes on: trunk/matplotlib/examples/mplot3d/wire3d_demo.py ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_91_maint/examples/mplot3d/wire.py:5753-5771 /branches/v0_98_5_maint/examples/mplot3d/wire.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/mplot3d/wire3d_demo.py:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_91_maint/examples/mplot3d/wire.py:5753-5771 /branches/v0_98_5_maint/examples/mplot3d/wire.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080 /branches/v0_99_maint/examples/mplot3d/wire3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Modified: trunk/matplotlib/examples/pylab_examples/boxplot_demo2.py =================================================================== --- trunk/matplotlib/examples/pylab_examples/boxplot_demo2.py 2010-02-22 16:30:27 UTC (rev 8147) +++ trunk/matplotlib/examples/pylab_examples/boxplot_demo2.py 2010-02-22 16:41:11 UTC (rev 8148) @@ -16,9 +16,6 @@ randomDists = ['Normal(1,1)',' Lognormal(1,1)', 'Exp(1)', 'Gumbel(6,4)', 'Triangular(2,9,11)'] N = 500 - -np.random.seed(3) # make identical plots each time - norm = np.random.normal(1,1, N) logn = np.random.lognormal(1,1, N) expo = np.random.exponential(1, N) @@ -42,8 +39,8 @@ ax1 = fig.add_subplot(111) plt.subplots_adjust(left=0.075, right=0.95, top=0.9, bottom=0.25) -bp = plt.boxplot(data, notch=0, sym='+', vert=1, whis=1.5, patch_artist=True) -plt.setp(bp['boxes'], edgecolor='black') +bp = plt.boxplot(data, notch=0, sym='+', vert=1, whis=1.5) +plt.setp(bp['boxes'], color='black') plt.setp(bp['whiskers'], color='black') plt.setp(bp['fliers'], color='red', marker='+') @@ -64,12 +61,25 @@ medians = range(numBoxes) for i in range(numBoxes): box = bp['boxes'][i] + boxX = [] + boxY = [] + for j in range(5): + boxX.append(box.get_xdata()[j]) + boxY.append(box.get_ydata()[j]) + boxCoords = zip(boxX,boxY) + # Alternate between Dark Khaki and Royal Blue k = i % 2 - # Set the box colors - box.set_facecolor(boxColors[k]) - # Now get the medians + boxPolygon = Polygon(boxCoords, facecolor=boxColors[k]) + ax1.add_patch(boxPolygon) + # Now draw the median lines back over what we just filled in med = bp['medians'][i] - medians[i] = med.get_ydata()[0] + medianX = [] + medianY = [] + for j in range(2): + medianX.append(med.get_xdata()[j]) + medianY.append(med.get_ydata()[j]) + plt.plot(medianX, medianY, 'k') + medians[i] = medianY[0] # Finally, overplot the sample averages, with horixzontal alignment # in the center of each box plt.plot([np.average(med.get_xdata())], [np.average(data[i])], Property changes on: trunk/matplotlib/lib/matplotlib/sphinxext/mathmpl.py ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_91_maint/doc/sphinxext/mathmpl.py:5753-5771 /branches/v0_98_5_maint/lib/matplotlib/sphinxext/mathmpl.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint/lib/matplotlib/sphinxext/mathmpl.py:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_91_maint/doc/sphinxext/mathmpl.py:5753-5771 /branches/v0_98_5_maint/lib/matplotlib/sphinxext/mathmpl.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint/lib/matplotlib/sphinxext/mathmpl.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Property changes on: trunk/matplotlib/lib/matplotlib/sphinxext/only_directives.py ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_91_maint/doc/sphinxext/only_directives.py:5753-5771 /branches/v0_98_5_maint/lib/matplotlib/sphinxext/only_directives.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint/lib/matplotlib/sphinxext/only_directives.py:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_91_maint/doc/sphinxext/only_directives.py:5753-5771 /branches/v0_98_5_maint/lib/matplotlib/sphinxext/only_directives.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint/lib/matplotlib/sphinxext/only_directives.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Property changes on: trunk/matplotlib/lib/matplotlib/sphinxext/plot_directive.py ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_91_maint/doc/sphinxext/plot_directive.py:5753-5771 /branches/v0_98_5_maint/lib/matplotlib/sphinxext/plot_directive.py:6920-6925,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint/lib/matplotlib/sphinxext/plot_directive.py:7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_91_maint/doc/sphinxext/plot_directive.py:5753-5771 /branches/v0_98_5_maint/lib/matplotlib/sphinxext/plot_directive.py:6920-6925,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245 /branches/v0_99_maint/lib/matplotlib/sphinxext/plot_directive.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Property changes on: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png ___________________________________________________________________ Modified: svn:mergeinfo - /branches/v0_99_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 + /branches/v0_99_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:7323-7337,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135 Modified: trunk/matplotlib/release/osx/Makefile =================================================================== --- trunk/matplotlib/release/osx/Makefile 2010-02-22 16:30:27 UTC (rev 8147) +++ trunk/matplotlib/release/osx/Makefile 2010-02-22 16:41:11 UTC (rev 8148) @@ -22,86 +22,86 @@ LDFLAGS_DEPS="-arch i386 -arch ppc -L${SRCDIR}/zlib-${ZLIBVERSION} -syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" clean: - rm -rf zlib-${ZLIBVERSION}.tar.gz libpng-${PNGVERSION}.tar.bz2 \ - freetype-${FREETYPEVERSION}.tar.bz2 bdist_mpkg-${BDISTMPKGVERSION}.tar.gz \ - bdist_mpkg-${BDISTMPKGVERSION} \ - zlib-${ZLIBVERSION} libpng-${PNGVERSION} freetype-${FREETYPEVERSION} \ - matplotlib-${MPLVERSION} *~ + rm -rf zlib-${ZLIBVERSION}.tar.gz libpng-${PNGVERSION}.tar.bz2 \ + freetype-${FREETYPEVERSION}.tar.bz2 bdist_mpkg-${BDISTMPKGVERSION}.tar.gz \ + bdist_mpkg-${BDISTMPKGVERSION} \ + zlib-${ZLIBVERSION} libpng-${PNGVERSION} freetype-${FREETYPEVERSION} \ + matplotlib-${MPLVERSION} *~ fetch: - curl -LO http://www.zlib.net/zlib-${ZLIBVERSION}.tar.gz &&\ - curl -LO http://internap.dl.sourceforge.net/sourceforge/libpng/libpng-${PNGVERSION}.tar.bz2 &&\ - curl -LO http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2&&\ - curl -LO http://pypi.python.org/packages/source/b/bdist_mpkg/bdist_mpkg-${BDISTMPKGVERSION}.tar.gz&&\ - tar xvfz bdist_mpkg-${BDISTMPKGVERSION}.tar.gz &&\ - echo "You need to install bdist_mpkg-${BDISTMPKGVERSION} now" + curl -LO http://www.zlib.net/zlib-${ZLIBVERSION}.tar.gz &&\ + curl -LO http://internap.dl.sourceforge.net/sourceforge/libpng/libpng-${PNGVERSION}.tar.bz2 &&\ + curl -LO http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2&&\ + curl -LO http://pypi.python.org/packages/source/b/bdist_mpkg/bdist_mpkg-${BDISTMPKGVERSION}.tar.gz&&\ + tar xvfz bdist_mpkg-${BDISTMPKGVERSION}.tar.gz &&\ + echo "You need to install bdist_mpkg-${BDISTMPKGVERSION} now" zlib: - unset PKG_CONFIG_PATH &&\ - rm -rf zlib-${ZLIBVERSION} &&\ - tar xvfz zlib-${ZLIBVERSION}.tar.gz &&\ - cd zlib-${ZLIBVERSION} &&\ - export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\ - export CFLAGS=${CFLAGS_DEPS} &&\ - export LDFLAGS=${LDFLAGS_DEPS} &&\ - ./configure &&\ - MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} CFLAGS=${CFLAGS_ZLIB} LDFLAGS=${LDFLAGS_ZLIB} make -j3&& \ - unset MACOSX_DEPLOYMENT_TARGET + unset PKG_CONFIG_PATH &&\ + rm -rf zlib-${ZLIBVERSION} &&\ + tar xvfz zlib-${ZLIBVERSION}.tar.gz &&\ + cd zlib-${ZLIBVERSION} &&\ + export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\ + export CFLAGS=${CFLAGS_DEPS} &&\ + export LDFLAGS=${LDFLAGS_DEPS} &&\ + ./configure &&\ + MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} CFLAGS=${CFLAGS_ZLIB} LDFLAGS=${LDFLAGS_ZLIB} make -j3&& \ + unset MACOSX_DEPLOYMENT_TARGET png: zlib - unset PKG_CONFIG_PATH &&\ - rm -rf libpng-${PNGVERSION} &&\ - tar xvfj libpng-${PNGVERSION}.tar.bz2 - cd libpng-${PNGVERSION} &&\ - export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\ - export CFLAGS=${CFLAGS_DEPS} &&\ - export LDFLAGS=${LDFLAGS_DEPS} &&\ - ./configure --disable-dependency-tracking &&\ - make -j3 &&\ - cp .libs/libpng.a . &&\ - unset MACOSX_DEPLOYMENT_TARGET + unset PKG_CONFIG_PATH &&\ + rm -rf libpng-${PNGVERSION} &&\ + tar xvfj libpng-${PNGVERSION}.tar.bz2 + cd libpng-${PNGVERSION} &&\ + export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\ + export CFLAGS=${CFLAGS_DEPS} &&\ + export LDFLAGS=${LDFLAGS_DEPS} &&\ + ./configure --disable-dependency-tracking &&\ + make -j3 &&\ + cp .libs/libpng.a . &&\ + unset MACOSX_DEPLOYMENT_TARGET freetype: zlib - unset PKG_CONFIG_PATH &&\ - rm -rf ${FREETYPEVERSION} &&\ - tar xvfj freetype-${FREETYPEVERSION}.tar.bz2 &&\ - cd freetype-${FREETYPEVERSION} &&\ - export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\ - export CFLAGS=${CFLAGS_DEPS} &&\ - export LDFLAGS=${LDFLAGS_DEPS} &&\ - ./configure &&\ - make -j3 &&\ - cp objs/.libs/libfreetype.a . &&\ - unset MACOSX_DEPLOYMENT_TARGET + unset PKG_CONFIG_PATH &&\ + rm -rf ${FREETYPEVERSION} &&\ + tar xvfj freetype-${FREETYPEVERSION}.tar.bz2 &&\ + cd freetype-${FREETYPEVERSION} &&\ + export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\ + export CFLAGS=${CFLAGS_DEPS} &&\ + export LDFLAGS=${LDFLAGS_DEPS} &&\ + ./configure &&\ + make -j3 &&\ + cp objs/.libs/libfreetype.a . &&\ + unset MACOSX_DEPLOYMENT_TARGET deps: - make zlib png freetype + make zlib png freetype installers: - unset PKG_CONFIG_PATH &&\ - tar xvfz matplotlib-${MPLVERSION}.tar.gz && \ - cd ${MPLSRC} && \ - rm -rf build && \ - cp ../data/setup.cfg ../data/ReadMe.txt . &&\ - export CFLAGS=${CFLAGS} &&\ - export LDFLAGS=${LDFLAGS} &&\ - /Library/Frameworks/Python.framework/Versions/${PYVERSION}/bin/bdist_mpkg --readme=ReadMe.txt &&\ - hdiutil create -srcdir dist/matplotlib-${MPLVERSION}-py${PYVERSION}-macosx10.5.mpkg dist/matplotlib-${MPLVERSION}-py${PYVERSION}-macosx10.5.dmg &&\ - ${PYTHON} setupegg.py bdist_egg + unset PKG_CONFIG_PATH &&\ + tar xvfz matplotlib-${MPLVERSION}.tar.gz && \ + cd ${MPLSRC} && \ + rm -rf build && \ + cp ../data/setup.cfg ../data/ReadMe.txt . &&\ + export CFLAGS=${CFLAGS} &&\ + export LDFLAGS=${LDFLAGS} &&\ + /Library/Frameworks/Python.framework/Versions/${PYVERSION}/bin/bdist_mpkg --readme=ReadMe.txt &&\ + hdiutil create -srcdir dist/matplotlib-${MPLVERSION}-py${PYVERSION}-macosx10.5.mpkg dist/matplotlib-${MPLVERSION}-py${PYVERSION}-macosx10.5.dmg &&\ + ${PYTHON} setupegg.py bdist_egg upload: - rm -rf upload &&\ - mkdir upload &&\ - cp matplotlib-${MPLVERSION}.tar.gz upload/ &&\ - cp matplotlib-${MPLVERSION}/dist/matplotlib-${MPLVERSION}_r0-py${PYVERSION}-macosx-10.3-fat.egg upload/matplotlib-${MPLVERSION}-macosx-py${PYVERSION}.egg &&\ - cp matplotlib-${MPLVERSION}/dist/matplotlib-${MPLVERSION}-py${PYVERSION}-macosx10.5.zip upload/matplotlib-${MPLVERSION}-py${PYVERSION}-mpkg.zip&&\ - scp upload/* jd...@fr...:uploads/ + rm -rf upload &&\ + mkdir upload &&\ + cp matplotlib-${MPLVERSION}.tar.gz upload/ &&\ + cp matplotlib-${MPLVERSION}/dist/matplotlib-${MPLVERSION}_r0-py${PYVERSION}-macosx-10.3-fat.egg upload/matplotlib-${MPLVERSION}-macosx-py${PYVERSION}.egg &&\ + cp matplotlib-${MPLVERSION}/dist/matplotlib-${MPLVERSION}-py${PYVERSION}-macosx10.5.zip upload/matplotlib-${MPLVERSION}-py${PYVERSION}-mpkg.zip&&\ + scp upload/* jd...@fr...:uploads/ all: - make clean fetch deps installers upload + make clean fetch deps installers upload This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2010-02-22 16:30:33
|
Revision: 8147 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8147&view=rev Author: mdboom Date: 2010-02-22 16:30:27 +0000 (Mon, 22 Feb 2010) Log Message: ----------- Fixing merge tracking from 0.99.x 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/v0_99_maint:1-7318 /trunk/matplotlib:1-7315 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2010-02-22 16:22:35
|
Revision: 8146 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8146&view=rev Author: mdboom Date: 2010-02-22 16:22:28 +0000 (Mon, 22 Feb 2010) Log Message: ----------- Backporting numpy version check fix to 0.99 branch Modified Paths: -------------- branches/v0_99_maint/doc/make.py branches/v0_99_maint/setupext.py Modified: branches/v0_99_maint/doc/make.py =================================================================== --- branches/v0_99_maint/doc/make.py 2010-02-22 14:31:45 UTC (rev 8145) +++ branches/v0_99_maint/doc/make.py 2010-02-22 16:22:28 UTC (rev 8146) @@ -65,8 +65,9 @@ print 'latex build has not been tested on windows' def clean(): - shutil.rmtree("build") - shutil.rmtree("examples") + for dirpath in ['build', 'examples']: + if os.path.exists(dirpath): + shutil.rmtree(dirpath) for pattern in ['mpl_examples/api/*.png', 'mpl_examples/pylab_examples/*.png', 'mpl_examples/pylab_examples/*.pdf', Modified: branches/v0_99_maint/setupext.py =================================================================== --- branches/v0_99_maint/setupext.py 2010-02-22 14:31:45 UTC (rev 8145) +++ branches/v0_99_maint/setupext.py 2010-02-22 16:22:28 UTC (rev 8146) @@ -499,9 +499,10 @@ return False nn = numpy.__version__.split('.') if not (int(nn[0]) >= 1 and int(nn[1]) >= 1): - print_message( - 'numpy 1.1 or later is required; you have %s' % numpy.__version__) - return False + if not int(nn[0]) >= 1: + print_message( + 'numpy 1.1 or later is required; you have %s' % numpy.__version__) + return False module = Extension('test', []) add_numpy_flags(module) add_base_flags(module) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2010-02-22 14:31:51
|
Revision: 8145 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8145&view=rev Author: jdh2358 Date: 2010-02-22 14:31:45 +0000 (Mon, 22 Feb 2010) Log Message: ----------- fix setters for regular polygon Modified Paths: -------------- branches/v0_99_maint/lib/matplotlib/patches.py Modified: branches/v0_99_maint/lib/matplotlib/patches.py =================================================================== --- branches/v0_99_maint/lib/matplotlib/patches.py 2010-02-22 14:30:59 UTC (rev 8144) +++ branches/v0_99_maint/lib/matplotlib/patches.py 2010-02-22 14:31:45 UTC (rev 8145) @@ -631,19 +631,22 @@ def _get_xy(self): return self._xy def _set_xy(self, xy): + self._xy = xy self._update_transform() xy = property(_get_xy, _set_xy) def _get_orientation(self): return self._orientation - def _set_orientation(self, xy): - self._orientation = xy + def _set_orientation(self, orientation): + self._orientation = orientation + self._update_transform() orientation = property(_get_orientation, _set_orientation) def _get_radius(self): return self._radius - def _set_radius(self, xy): - self._radius = xy + def _set_radius(self, radius): + self._radius = radius + self._update_transform() radius = property(_get_radius, _set_radius) def _get_numvertices(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2010-02-22 14:31:09
|
Revision: 8144 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8144&view=rev Author: jdh2358 Date: 2010-02-22 14:30:59 +0000 (Mon, 22 Feb 2010) Log Message: ----------- fix setters for regular polygon Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/patches.py Modified: trunk/matplotlib/lib/matplotlib/patches.py =================================================================== --- trunk/matplotlib/lib/matplotlib/patches.py 2010-02-22 14:29:31 UTC (rev 8143) +++ trunk/matplotlib/lib/matplotlib/patches.py 2010-02-22 14:30:59 UTC (rev 8144) @@ -653,19 +653,22 @@ def _get_xy(self): return self._xy def _set_xy(self, xy): + self._xy = xy self._update_transform() xy = property(_get_xy, _set_xy) def _get_orientation(self): return self._orientation - def _set_orientation(self, xy): - self._orientation = xy + def _set_orientation(self, orientation): + self._orientation = orientation + self._update_transform() orientation = property(_get_orientation, _set_orientation) def _get_radius(self): return self._radius - def _set_radius(self, xy): - self._radius = xy + def _set_radius(self, radius): + self._radius = radius + self._update_transform() radius = property(_get_radius, _set_radius) def _get_numvertices(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2010-02-22 14:29:37
|
Revision: 8143 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8143&view=rev Author: jdh2358 Date: 2010-02-22 14:29:31 +0000 (Mon, 22 Feb 2010) Log Message: ----------- call update transform after setting orientation and radius Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Modified: svnmerge-integrated - <<<<<<< (modified) /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_99_maint:1-8135>>>>>>> (latest) + /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. |
From: <md...@us...> - 2010-02-22 09:43:26
|
Revision: 8142 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8142&view=rev Author: mdehoon Date: 2010-02-22 09:43:19 +0000 (Mon, 22 Feb 2010) Log Message: ----------- Removing the check for path length; this seems not needed with recent versions of cairo/pycairo. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/backends/backend_cairo.py Modified: trunk/matplotlib/lib/matplotlib/backends/backend_cairo.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_cairo.py 2010-02-18 14:54:30 UTC (rev 8141) +++ trunk/matplotlib/lib/matplotlib/backends/backend_cairo.py 2010-02-22 09:43:19 UTC (rev 8142) @@ -138,9 +138,6 @@ 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.") - ctx = gc.ctx transform = transform + \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2010-02-18 14:54:36
|
Revision: 8141 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8141&view=rev Author: mdehoon Date: 2010-02-18 14:54:30 +0000 (Thu, 18 Feb 2010) Log Message: ----------- Make the save_figure methods consistent with the base class signature. Fix a call to save_figure in backend_bases.py. This bug caused the keypress_demo.py example to fail on all backends except those based on GTK. The bug was reported by David Arnold on the mailing list on February 14, 2010. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/backend_bases.py trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py trunk/matplotlib/lib/matplotlib/backends/backend_macosx.py trunk/matplotlib/lib/matplotlib/backends/backend_qt.py trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py Modified: trunk/matplotlib/lib/matplotlib/backend_bases.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backend_bases.py 2010-02-17 15:25:38 UTC (rev 8140) +++ trunk/matplotlib/lib/matplotlib/backend_bases.py 2010-02-18 14:54:30 UTC (rev 8141) @@ -1923,7 +1923,7 @@ self.canvas.toolbar.zoom() # saving current figure (default key 's') elif event.key in save_keys: - self.canvas.toolbar.save_figure(self.canvas.toolbar) + self.canvas.toolbar.save_figure() if event.inaxes is None: return Modified: trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py 2010-02-17 15:25:38 UTC (rev 8140) +++ trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py 2010-02-18 14:54:30 UTC (rev 8141) @@ -653,7 +653,7 @@ filetypes=self.canvas.get_supported_filetypes(), default_filetype=self.canvas.get_default_filetype()) - def save_figure(self, button): + def save_figure(self, *args): fname, format = self.get_filechooser().get_filename_from_user() if fname: try: @@ -908,7 +908,7 @@ filetypes=self.canvas.get_supported_filetypes(), default_filetype=self.canvas.get_default_filetype()) - def save_figure(self, button): + def save_figure(self, *args): fname, format = self.get_filechooser().get_filename_from_user() if fname: try: Modified: trunk/matplotlib/lib/matplotlib/backends/backend_macosx.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_macosx.py 2010-02-17 15:25:38 UTC (rev 8140) +++ trunk/matplotlib/lib/matplotlib/backends/backend_macosx.py 2010-02-18 14:54:30 UTC (rev 8141) @@ -392,7 +392,7 @@ axes[i].yaxis.zoom(direction) self.canvas.invalidate() - def save_figure(self): + def save_figure(self, *args): filename = _macosx.choose_save_file('Save the figure') if filename is None: # Cancel return @@ -416,7 +416,7 @@ def set_cursor(self, cursor): _macosx.set_cursor(cursor) - def save_figure(self): + def save_figure(self, *args): filename = _macosx.choose_save_file('Save the figure') if filename is None: # Cancel return Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_qt.py 2010-02-17 15:25:38 UTC (rev 8140) +++ trunk/matplotlib/lib/matplotlib/backends/backend_qt.py 2010-02-18 14:54:30 UTC (rev 8141) @@ -422,7 +422,7 @@ def _get_canvas(self, fig): return FigureCanvasQT(fig) - def save_figure( self ): + def save_figure(self, *args): filetypes = self.canvas.get_supported_filetypes_grouped() sorted_filetypes = filetypes.items() sorted_filetypes.sort() Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2010-02-17 15:25:38 UTC (rev 8140) +++ trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2010-02-18 14:54:30 UTC (rev 8141) @@ -431,7 +431,7 @@ def _get_canvas(self, fig): return FigureCanvasQT(fig) - def save_figure( self ): + def save_figure(self, *args): filetypes = self.canvas.get_supported_filetypes_grouped() sorted_filetypes = filetypes.items() sorted_filetypes.sort() Modified: trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py 2010-02-17 15:25:38 UTC (rev 8140) +++ trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py 2010-02-18 14:54:30 UTC (rev 8141) @@ -576,7 +576,7 @@ a.yaxis.zoom(direction) self.canvas.draw() - def save_figure(self): + def save_figure(self, *args): fs = FileDialog.SaveFileDialog(master=self.window, title='Save the figure') try: @@ -703,7 +703,7 @@ canvas.show() canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1) - def save_figure(self): + def save_figure(self, *args): from tkFileDialog import asksaveasfilename from tkMessageBox import showerror filetypes = self.canvas.get_supported_filetypes().copy() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2010-02-17 15:25:46
|
Revision: 8140 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8140&view=rev Author: jdh2358 Date: 2010-02-17 15:25:38 +0000 (Wed, 17 Feb 2010) Log Message: ----------- added customizable keymap patch; L or k works for log scaling xaxis Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/doc/users/navigation_toolbar.rst trunk/matplotlib/lib/matplotlib/backend_bases.py trunk/matplotlib/lib/matplotlib/rcsetup.py trunk/matplotlib/matplotlibrc.template Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Modified: svnmerge-integrated - /branches/mathtex:1-7263 /branches/v0_99_maint:1-8135 + <<<<<<< (modified) /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_99_maint:1-8135>>>>>>> (latest) Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2010-02-17 02:43:26 UTC (rev 8139) +++ trunk/matplotlib/CHANGELOG 2010-02-17 15:25:38 UTC (rev 8140) @@ -1,3 +1,8 @@ +2010-02-17 Added Gokhan's and Mattias' customizable keybindings patch + for the toolbar. You can now set the keymap.* properties + in the matplotlibrc file. Newbindings were added for + toggling log scaling on the x-axis. JDH + 2010-02-16 Committed TJ's filled marker patch for left|right|bottom|top|full filled markers. See examples/pylab_examples/filledmarker_demo.py. JDH Modified: trunk/matplotlib/doc/users/navigation_toolbar.rst =================================================================== --- trunk/matplotlib/doc/users/navigation_toolbar.rst 2010-02-17 02:43:26 UTC (rev 8139) +++ trunk/matplotlib/doc/users/navigation_toolbar.rst 2010-02-17 15:25:38 UTC (rev 8140) @@ -79,6 +79,8 @@ Navigation Keyboard Shortcuts ----------------------------- +The following table holds all the default keys, which can be overwritten by use of your matplotlibrc (#keymap.\*). + ================================== ============================================== Command Keyboard Shortcut(s) ================================== ============================================== @@ -93,6 +95,7 @@ Constrain pan/zoom to y axis hold **y** Preserve aspect ratio hold **CONTROL** Toggle grid **g** +Toggle x axis scale (log/linear) **L** or **k** Toggle y axis scale (log/linear) **l** ================================== ============================================== Modified: trunk/matplotlib/lib/matplotlib/backend_bases.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backend_bases.py 2010-02-17 02:43:26 UTC (rev 8139) +++ trunk/matplotlib/lib/matplotlib/backend_bases.py 2010-02-17 15:25:38 UTC (rev 8140) @@ -1888,50 +1888,85 @@ # self.destroy() # how cruel to have to destroy oneself! # return - if event.key == 'f': + # Load key-mappings from your matplotlibrc file. + fullscreen_keys = rcParams['keymap.fullscreen'] + home_keys = rcParams['keymap.home'] + back_keys = rcParams['keymap.back'] + forward_keys = rcParams['keymap.forward'] + pan_keys = rcParams['keymap.pan'] + zoom_keys = rcParams['keymap.zoom'] + save_keys = rcParams['keymap.save'] + grid_keys = rcParams['keymap.grid'] + toggle_yscale_keys = rcParams['keymap.yscale'] + toggle_xscale_keys = rcParams['keymap.xscale'] + all = rcParams['keymap.all_axes'] + + # toggle fullscreen mode (default key 'f') + if event.key in fullscreen_keys: self.full_screen_toggle() - # *h*ome or *r*eset mnemonic - elif event.key == 'h' or event.key == 'r' or event.key == "home": + # home or reset mnemonic (default key 'h', 'home' and 'r') + elif event.key in home_keys: self.canvas.toolbar.home() - # c and v to enable left handed quick navigation - elif event.key == 'left' or event.key == 'c' or event.key == 'backspace': + # forward / backward keys to enable left handed quick navigation + # (default key for backward: 'left', 'backspace' and 'c') + elif event.key in back_keys: self.canvas.toolbar.back() - elif event.key == 'right' or event.key == 'v': + # (default key for forward: 'right' and 'v') + elif event.key in forward_keys: self.canvas.toolbar.forward() - # *p*an mnemonic - elif event.key == 'p': + # pan mnemonic (default key 'p') + elif event.key in pan_keys: self.canvas.toolbar.pan() - # z*o*om mnemonic - elif event.key == 'o': + # zoom mnemonic (default key 'o') + elif event.key in zoom_keys: self.canvas.toolbar.zoom() - elif event.key == 's': + # saving current figure (default key 's') + elif event.key in save_keys: self.canvas.toolbar.save_figure(self.canvas.toolbar) if event.inaxes is None: return # the mouse has to be over an axes to trigger these - if event.key == 'g': + # switching on/off a grid in current axes (default key 'g') + if event.key in grid_keys: event.inaxes.grid() self.canvas.draw() - elif event.key == 'l': + # toggle scaling of y-axes between 'log and 'linear' (default key 'l') + elif event.key in toggle_yscale_keys: ax = event.inaxes scale = ax.get_yscale() - if scale=='log': + if scale == 'log': ax.set_yscale('linear') ax.figure.canvas.draw() - elif scale=='linear': + elif scale == 'linear': ax.set_yscale('log') ax.figure.canvas.draw() + # toggle scaling of x-axes between 'log and 'linear' (default key 'k') + elif event.key in toggle_xscale_keys: + ax = event.inaxes + scalex = ax.get_xscale() + if scalex == 'log': + ax.set_xscale('linear') + ax.figure.canvas.draw() + elif scalex == 'linear': + ax.set_xscale('log') + ax.figure.canvas.draw() - elif event.key is not None and (event.key.isdigit() and event.key!='0') or event.key=='a': - # 'a' enables all axes - if event.key!='a': - n=int(event.key)-1 + elif event.key is not None and \ + (event.key.isdigit() and event.key!='0') or event.key in all: + # keys in list 'all' enables all axes (default key 'a'), + # otherwise if key is a number only enable this particular axes + # if it was the axes, where the event was raised + if not (event.key in all): + n = int(event.key)-1 for i, a in enumerate(self.canvas.figure.get_axes()): - if event.x is not None and event.y is not None and a.in_axes(event): - if event.key=='a': + # consider axes, in which the event was raised + # FIXME: Why only this axes? + if event.x is not None and event.y is not None \ + and a.in_axes(event): + if event.key in all: a.set_navigate(True) else: a.set_navigate(i==n) Modified: trunk/matplotlib/lib/matplotlib/rcsetup.py =================================================================== --- trunk/matplotlib/lib/matplotlib/rcsetup.py 2010-02-17 02:43:26 UTC (rev 8139) +++ trunk/matplotlib/lib/matplotlib/rcsetup.py 2010-02-17 15:25:38 UTC (rev 8140) @@ -546,9 +546,22 @@ 'path.simplify' : [True, validate_bool], 'path.simplify_threshold' : [1.0 / 9.0, ValidateInterval(0.0, 1.0)], - 'agg.path.chunksize' : [0, validate_int] # 0 to disable chunking; - # recommend about 20000 to - # enable. Experimental. + 'agg.path.chunksize' : [0, validate_int], # 0 to disable chunking; + # recommend about 20000 to + # enable. Experimental. + # key-mappings + 'keymap.fullscreen' : ['f', validate_stringlist], + 'keymap.home' : [['h', 'r', 'home'], validate_stringlist], + 'keymap.back' : [['left', 'c', 'backspace'], validate_stringlist], + 'keymap.forward' : [['right', 'v'], validate_stringlist], + 'keymap.pan' : ['p', validate_stringlist], + 'keymap.zoom' : ['o', validate_stringlist], + 'keymap.save' : ['s', validate_stringlist], + 'keymap.grid' : ['g', validate_stringlist], + 'keymap.yscale' : ['l', validate_stringlist], + 'keymap.xscale' : [['k', 'L'], validate_stringlist], + 'keymap.all_axes' : ['a', validate_stringlist] + } if __name__ == '__main__': Modified: trunk/matplotlib/matplotlibrc.template =================================================================== --- trunk/matplotlib/matplotlibrc.template 2010-02-17 02:43:26 UTC (rev 8139) +++ trunk/matplotlib/matplotlibrc.template 2010-02-17 15:25:38 UTC (rev 8140) @@ -360,3 +360,20 @@ # from matplotlib import verbose. #verbose.level : silent # one of silent, helpful, debug, debug-annoying #verbose.fileo : sys.stdout # a log filename, sys.stdout or sys.stderr + +# Event keys to interact with figures/plots via keyboard. +# Customize these settings according to your needs. +# Leave the field(s) empty if you don't need a key-map. (i.e., fullscreen : '') + +#keymap.fullscreen : f # toggling +#keymap.home : h, r, home # home or reset mnemonic +#keymap.back : left, c, backspace # forward / backward keys to enable +#keymap.forward : right, v # left handed quick navigation +#keymap.pan : p # pan mnemonic +#keymap.zoom : o # zoom mnemonic +#keymap.save : s # saving current figure +#keymap.grid : g # switching on/off a grid in current axes +#keymap.yscale : l # toggle scaling of y-axes ('log'/'linear') +#keymap.xscale : L, k # toggle scaling of x-axes ('log'/'linear') +#keymap.all_axes : a # enable all axes + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2010-02-17 02:43:33
|
Revision: 8139 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8139&view=rev Author: jdh2358 Date: 2010-02-17 02:43:26 +0000 (Wed, 17 Feb 2010) Log Message: ----------- fixed some axes/axis doc typos Modified Paths: -------------- trunk/matplotlib/doc/users/navigation_toolbar.rst Modified: trunk/matplotlib/doc/users/navigation_toolbar.rst =================================================================== --- trunk/matplotlib/doc/users/navigation_toolbar.rst 2010-02-17 02:33:01 UTC (rev 8138) +++ trunk/matplotlib/doc/users/navigation_toolbar.rst 2010-02-17 02:43:26 UTC (rev 8139) @@ -39,11 +39,11 @@ the right mouse button to zoom, dragging it to a new position. The x axis will be zoomed in proportionate to the rightward movement and zoomed out proportionate to the leftward movement. - Ditto for the yaxis and up/down motions. The point under your + Ditto for the y axis and up/down motions. The point under your mouse when you begin the zoom remains stationary, allowing you to zoom to an arbitrary point in the figure. You can use the modifier keys 'x', 'y' or 'CONTROL' to constrain the zoom to the x - axes, the y axes, or aspect ratio preserve, respectively. + axis, the y axis, or aspect ratio preserve, respectively. With polar plots, the pan and zoom functionality behaves differently. The radius axis labels can be dragged using the left This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |