You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(115) |
Aug
(120) |
Sep
(137) |
Oct
(170) |
Nov
(461) |
Dec
(263) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
(120) |
Feb
(74) |
Mar
(35) |
Apr
(74) |
May
(245) |
Jun
(356) |
Jul
(240) |
Aug
(115) |
Sep
(78) |
Oct
(225) |
Nov
(98) |
Dec
(271) |
| 2009 |
Jan
(132) |
Feb
(84) |
Mar
(74) |
Apr
(56) |
May
(90) |
Jun
(79) |
Jul
(83) |
Aug
(296) |
Sep
(214) |
Oct
(76) |
Nov
(82) |
Dec
(66) |
| 2010 |
Jan
(46) |
Feb
(58) |
Mar
(51) |
Apr
(77) |
May
(58) |
Jun
(126) |
Jul
(128) |
Aug
(64) |
Sep
(50) |
Oct
(44) |
Nov
(48) |
Dec
(54) |
| 2011 |
Jan
(68) |
Feb
(52) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <lee...@us...> - 2009-12-07 01:17:27
|
Revision: 8010
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8010&view=rev
Author: leejjoon
Date: 2009-12-07 01:17:16 +0000 (Mon, 07 Dec 2009)
Log Message:
-----------
axes_grid : doc update and new examples
Modified Paths:
--------------
trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/axes_grid_api.rst
trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/index.rst
trunk/matplotlib/doc/mpl_toolkits/axes_grid/users/axislines.rst
trunk/matplotlib/doc/mpl_toolkits/axes_grid/users/overview.rst
Added Paths:
-----------
trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/axis_artist_api.rst
trunk/matplotlib/doc/mpl_toolkits/axes_grid/figures/demo_axis_direction.py
trunk/matplotlib/doc/mpl_toolkits/axes_grid/figures/demo_ticklabel_alignment.py
trunk/matplotlib/doc/mpl_toolkits/axes_grid/figures/demo_ticklabel_direction.py
trunk/matplotlib/examples/axes_grid/demo_curvelinear_grid2.py
trunk/matplotlib/examples/axes_grid/demo_floating_axes.py
Modified: trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/axes_grid_api.rst
===================================================================
--- trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/axes_grid_api.rst 2009-12-07 01:16:44 UTC (rev 8009)
+++ trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/axes_grid_api.rst 2009-12-07 01:17:16 UTC (rev 8010)
@@ -2,6 +2,10 @@
:mod:`mpl_toolkits.axes_grid.axes_grid`
=======================================
-.. autoclass:: mpl_toolkits.axes_grid.axes_grid.AxesGrid
+.. autoclass:: mpl_toolkits.axes_grid.axes_grid.Grid
:members:
:undoc-members:
+
+.. autoclass:: mpl_toolkits.axes_grid.axes_grid.ImageGrid
+ :members:
+ :undoc-members:
Added: trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/axis_artist_api.rst
===================================================================
--- trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/axis_artist_api.rst (rev 0)
+++ trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/axis_artist_api.rst 2009-12-07 01:17:16 UTC (rev 8010)
@@ -0,0 +1,16 @@
+
+:mod:`mpl_toolkits.axes_grid.axis_artist`
+=======================================
+
+.. autoclass:: mpl_toolkits.axes_grid.axis_artist.AxisArtist
+ :members:
+ :undoc-members:
+
+.. autoclass:: mpl_toolkits.axes_grid.axis_artist.Ticks
+ :members:
+
+.. autoclass:: mpl_toolkits.axes_grid.axis_artist.AxisLabel
+ :members:
+
+.. autoclass:: mpl_toolkits.axes_grid.axis_artist.TickLabels
+ :members:
Modified: trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/index.rst
===================================================================
--- trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/index.rst 2009-12-07 01:16:44 UTC (rev 8009)
+++ trunk/matplotlib/doc/mpl_toolkits/axes_grid/api/index.rst 2009-12-07 01:17:16 UTC (rev 8010)
@@ -12,3 +12,4 @@
axes_size_api.rst
axes_divider_api.rst
axes_grid_api.rst
+ axis_artist_api.rst
Added: trunk/matplotlib/doc/mpl_toolkits/axes_grid/figures/demo_axis_direction.py
===================================================================
--- trunk/matplotlib/doc/mpl_toolkits/axes_grid/figures/demo_axis_direction.py (rev 0)
+++ trunk/matplotlib/doc/mpl_toolkits/axes_grid/figures/demo_axis_direction.py 2009-12-07 01:17:16 UTC (rev 8010)
@@ -0,0 +1,98 @@
+
+
+import numpy as np
+import mpl_toolkits.axes_grid.angle_helper as angle_helper
+import mpl_toolkits.axes_grid.grid_finder as grid_finder
+from matplotlib.projections import PolarAxes
+from matplotlib.transforms import Affine2D
+
+import mpl_toolkits.axes_grid.axislines as axislines
+
+from mpl_toolkits.axes_grid.grid_helper_curvelinear import GridHelperCurveLinear
+
+
+def setup_axes(fig, rect):
+ """
+ polar projection, but in a rectangular box.
+ """
+
+ # see demo_curvelinear_grid.py for details
+ tr = Affine2D().scale(np.pi/180., 1.) + PolarAxes.PolarTransform()
+
+ extreme_finder = angle_helper.ExtremeFinderCycle(20, 20,
+ lon_cycle = 360,
+ lat_cycle = None,
+ lon_minmax = None,
+ lat_minmax = (0, np.inf),
+ )
+
+ grid_locator1 = angle_helper.LocatorDMS(12)
+ grid_locator2 = grid_finder.MaxNLocator(5)
+
+ tick_formatter1 = angle_helper.FormatterDMS()
+
+ grid_helper = GridHelperCurveLinear(tr,
+ extreme_finder=extreme_finder,
+ grid_locator1=grid_locator1,
+ grid_locator2=grid_locator2,
+ tick_formatter1=tick_formatter1
+ )
+
+
+ ax1 = axislines.Subplot(fig, rect, grid_helper=grid_helper)
+ ax1.axis[:].toggle(ticklabels=False)
+
+ fig.add_subplot(ax1)
+
+ ax1.set_aspect(1.)
+ ax1.set_xlim(-5, 12)
+ ax1.set_ylim(-5, 10)
+
+ #ax1.grid(True)
+
+ return ax1
+
+
+def add_floating_axis1(ax1):
+ ax1.axis["lat"] = axis = ax1.new_floating_axis(0, 30)
+ axis.label.set_text(r"$\theta = 30^{\circ}$")
+ axis.label.set_visible(True)
+
+ return axis
+
+
+def add_floating_axis2(ax1):
+ ax1.axis["lon"] = axis = ax1.new_floating_axis(1, 6)
+ axis.label.set_text(r"$r = 6$")
+ axis.label.set_visible(True)
+
+ return axis
+
+
+import matplotlib.pyplot as plt
+fig = plt.figure(1, figsize=(8, 4.))
+fig.clf()
+fig.subplots_adjust(left=0.01, right=0.99, bottom=0.01, top=0.99,
+ wspace=0.01, hspace=0.01)
+
+for i, d in enumerate(["bottom", "left", "top", "right"]):
+ ax1 = setup_axes(fig, rect=241++i)
+ axis = add_floating_axis1(ax1)
+ axis.set_axis_direction(d)
+ ax1.annotate(d, (0, 1), (5, -5),
+ xycoords="axes fraction", textcoords="offset points",
+ va="top", ha="left")
+
+for i, d in enumerate(["bottom", "left", "top", "right"]):
+ ax1 = setup_axes(fig, rect=245++i)
+ axis = add_floating_axis2(ax1)
+ axis.set_axis_direction(d)
+ ax1.annotate(d, (0, 1), (5, -5),
+ xycoords="axes fraction", textcoords="offset points",
+ va="top", ha="left")
+
+
+
+plt.show()
+
+
Added: trunk/matplotlib/doc/mpl_toolkits/axes_grid/figures/demo_ticklabel_alignment.py
===================================================================
--- trunk/matplotlib/doc/mpl_toolkits/axes_grid/figures/demo_ticklabel_alignment.py (rev 0)
+++ trunk/matplotlib/doc/mpl_toolkits/axes_grid/figures/demo_ticklabel_alignment.py 2009-12-07 01:17:16 UTC (rev 8010)
@@ -0,0 +1,38 @@
+
+
+import matplotlib.pyplot as plt
+import mpl_toolkits.axes_grid.axislines as axislines
+
+
+def setup_axes(fig, rect):
+
+ ax = axislines.Subplot(fig, rect)
+ fig.add_subplot(ax)
+
+ ax.set_yticks([0.2, 0.8])
+ ax.set_yticklabels(["short", "loooong"])
+ ax.set_xticks([0.2, 0.8])
+ ax.set_xticklabels([r"$\frac{1}{2}\pi$", r"$\pi$"])
+
+ return ax
+
+fig = plt.figure(1, figsize=(3, 5))
+fig.subplots_adjust(left=0.5, hspace=0.7)
+
+
+
+ax = setup_axes(fig, 311)
+ax.set_ylabel("ha=right")
+ax.set_xlabel("va=baseline")
+
+ax = setup_axes(fig, 312)
+ax.axis["left"].major_ticklabels.set_ha("center")
+ax.axis["bottom"].major_ticklabels.set_va("top")
+ax.set_ylabel("ha=center")
+ax.set_xlabel("va=top")
+
+ax = setup_axes(fig, 313)
+ax.axis["left"].major_ticklabels.set_ha("left")
+ax.axis["bottom"].major_ticklabels.set_va("bottom")
+ax.set_ylabel("ha=left")
+ax.set_xlabel("va=bottom")
Added: trunk/matplotlib/doc/mpl_toolkits/axes_grid/figures/demo_ticklabel_direction.py
===================================================================
--- trunk/matplotlib/doc/mpl_toolkits/axes_grid/figures/demo_ticklabel_direction.py (rev 0)
+++ trunk/matplotlib/doc/mpl_toolkits/axes_grid/figures/demo_ticklabel_direction.py 2009-12-07 01:17:16 UTC (rev 8010)
@@ -0,0 +1,52 @@
+
+import matplotlib.pyplot as plt
+import mpl_toolkits.axes_grid.axislines as axislines
+
+
+def setup_axes(fig, rect):
+
+ ax = axislines.Subplot(fig, rect)
+ fig.add_subplot(ax)
+
+ ax.set_yticks([0.2, 0.8])
+ #ax.set_yticklabels(["short", "loooong"])
+ ax.set_xticks([0.2, 0.8])
+ #ax.set_xticklabels([r"$\frac{1}{2}\pi$", r"$\pi$"])
+
+ return ax
+
+fig = plt.figure(1, figsize=(6, 3))
+fig.subplots_adjust(bottom=0.2)
+
+
+
+ax = setup_axes(fig, 131)
+for axis in ax.axis.values(): axis.major_ticks.set_tick_out(True)
+#or you can simply do "ax.axis[:].major_ticks.set_tick_out(True)"
+
+
+
+
+ax = setup_axes(fig, 132)
+ax.axis["left"].set_axis_direction("right")
+ax.axis["bottom"].set_axis_direction("top")
+ax.axis["right"].set_axis_direction("left")
+ax.axis["top"].set_axis_direction("bottom")
+
+ax.axis["left"].major_ticklabels.set_pad(0)
+ax.axis["bottom"].major_ticklabels.set_pad(10)
+
+
+
+ax = setup_axes(fig, 133)
+ax.axis["left"].set_axis_direction("right")
+ax.axis[:].major_ticks.set_tick_out(True)
+
+ax.axis["left"].label.set_text("Long Label Left")
+ax.axis["bottom"].label.set_text("Label Bottom")
+ax.axis["right"].label.set_text("Long Label Right")
+ax.axis["right"].label.set_visible(True)
+ax.axis["left"].label.set_pad(0)
+ax.axis["bottom"].label.set_pad(10)
+
+plt.show()
Modified: trunk/matplotlib/doc/mpl_toolkits/axes_grid/users/axislines.rst
===================================================================
--- trunk/matplotlib/doc/mpl_toolkits/axes_grid/users/axislines.rst 2009-12-07 01:16:44 UTC (rev 8009)
+++ trunk/matplotlib/doc/mpl_toolkits/axes_grid/users/axislines.rst 2009-12-07 01:17:16 UTC (rev 8010)
@@ -42,7 +42,7 @@
axis-related method in mpl may have no effect.
In addition to AxisArtist instances, the axes_grid.axislines.Axes will
have *gridlines* attribute (Gridlines), which obviously draws grid
-lines.
+lines.
In both AxisArtist and Gridlines, the calculation of tick and grid
location is delegated to an instance of GridHelper class.
@@ -119,7 +119,44 @@
ax.axis["left"].major_ticklabels.set_color("r")
+3. To change the attributes of multiple axis::
+ ax.axis["left","bottom"].major_ticklabels.set_color("r")
+
+ or to change the attributes of all axis::
+
+ ax.axis[:].major_ticklabels.set_color("r")
+
+4. To change the tick size (length), you need to use
+ axis.major_ticks.set_ticksize method. To change the direction of
+ the ticks (ticks are in opposite direction of ticklabels by
+ default), use axis.major_ticks.set_tick_out method.
+
+ To change the pad between ticks and ticklabels, use
+ axis.major_ticklabels.set_pad method.
+
+ To change the pad between ticklabels and axis label,
+ axis.label.set_pad method.
+
+Examples
+========
+
+Adjusting axis_direction
+------------------------
+
+.. plot:: mpl_toolkits/axes_grid/figures/demo_axis_direction.py
+
+Adjusting ticklabels alignment
+------------------------------
+
+.. plot:: mpl_toolkits/axes_grid/figures/demo_ticklabel_alignment.py
+
+Adjusting ticklabels pad
+------------------------
+
+.. plot:: mpl_toolkits/axes_grid/figures/demo_ticklabel_direction.py
+
+
GridHelper
==========
@@ -138,7 +175,7 @@
from mpl_toolkits.axes_grid.axislines import Subplot
# from curved coordinate to rectlinear coordinate.
- def tr(x, y):
+ def tr(x, y):
x, y = np.asarray(x), np.asarray(y)
return x, y-x
@@ -171,7 +208,7 @@
# extreme finder : find a range of coordinate.
# 20, 20 : number of sampling points along x, y direction
- # The first coordinate (longitude, but theta in polar)
+ # The first coordinate (longitude, but theta in polar)
# has a cycle of 360 degree.
# The second coordinate (latitude, but radius in polar) has a minimum of 0
extreme_finder = angle_helper.ExtremeFinderCycle(20, 20,
@@ -225,7 +262,7 @@
the resulting AxisArtist is properly added to the axes. A recommended
way is to add it as an item of Axes's axis attribute.::
- # floating axis whose first (index starts from 0) coordinate
+ # floating axis whose first (index starts from 0) coordinate
# (theta) is fixed at 60
ax1.axis["lat"] = axis = ax1.new_floating_axis(0, 60)
Modified: trunk/matplotlib/doc/mpl_toolkits/axes_grid/users/overview.rst
===================================================================
--- trunk/matplotlib/doc/mpl_toolkits/axes_grid/users/overview.rst 2009-12-07 01:16:44 UTC (rev 8009)
+++ trunk/matplotlib/doc/mpl_toolkits/axes_grid/users/overview.rst 2009-12-07 01:17:16 UTC (rev 8010)
@@ -35,7 +35,7 @@
padding between them cannot be easily done in matplotlib. AxesGrid is
used in such case.
-.. plot:: mpl_examples/axes_grid/simple_axesgrid.py
+.. plot:: mpl_toolkits/axes_grid/examples/simple_axesgrid.py
:include-source:
* The postion of each axes is determined at the drawing time (see
@@ -398,3 +398,11 @@
.. plot:: mpl_toolkits/axes_grid/examples/demo_floating_axis.py
+Floating Axes
+=============
+
+An axes whose outer axis are defined as floating axis.
+
+.. plot:: mpl_toolkits/axes_grid/examples/demo_floating_axes.py
+
+
Added: trunk/matplotlib/examples/axes_grid/demo_curvelinear_grid2.py
===================================================================
--- trunk/matplotlib/examples/axes_grid/demo_curvelinear_grid2.py (rev 0)
+++ trunk/matplotlib/examples/axes_grid/demo_curvelinear_grid2.py 2009-12-07 01:17:16 UTC (rev 8010)
@@ -0,0 +1,63 @@
+import numpy as np
+#from matplotlib.path import Path
+
+import matplotlib.pyplot as plt
+
+from mpl_toolkits.axes_grid.grid_helper_curvelinear import GridHelperCurveLinear
+from mpl_toolkits.axes_grid.axislines import Subplot
+
+import mpl_toolkits.axes_grid.angle_helper as angle_helper
+
+def curvelinear_test1(fig):
+ """
+ grid for custom transform.
+ """
+
+ def tr(x, y):
+ sgn = np.sign(x)
+ x, y = np.abs(np.asarray(x)), np.asarray(y)
+ return sgn*x**.5, y
+
+ def inv_tr(x,y):
+ sgn = np.sign(x)
+ x, y = np.asarray(x), np.asarray(y)
+ return sgn*x**2, y
+
+ extreme_finder = angle_helper.ExtremeFinderCycle(20, 20,
+ lon_cycle = None,
+ lat_cycle = None,
+ lon_minmax = None, #(0, np.inf),
+ lat_minmax = None,
+ )
+
+ grid_helper = GridHelperCurveLinear((tr, inv_tr),
+ extreme_finder=extreme_finder)
+
+ ax1 = Subplot(fig, 111, grid_helper=grid_helper)
+ # ax1 will have a ticks and gridlines defined by the given
+ # transform (+ transData of the Axes). Note that the transform of
+ # the Axes itself (i.e., transData) is not affected by the given
+ # transform.
+
+ fig.add_subplot(ax1)
+
+ ax1.imshow(np.arange(25).reshape(5,5),
+ vmax = 50, cmap=plt.cm.gray_r,
+ interpolation="nearest",
+ origin="lower")
+
+ # tick density
+ grid_helper.grid_finder.grid_locator1._nbins = 6
+ grid_helper.grid_finder.grid_locator2._nbins = 6
+
+
+
+if 1:
+ fig = plt.figure(1, figsize=(7, 4))
+ fig.clf()
+
+ curvelinear_test1(fig)
+ plt.show()
+
+
+
Added: trunk/matplotlib/examples/axes_grid/demo_floating_axes.py
===================================================================
--- trunk/matplotlib/examples/axes_grid/demo_floating_axes.py (rev 0)
+++ trunk/matplotlib/examples/axes_grid/demo_floating_axes.py 2009-12-07 01:17:16 UTC (rev 8010)
@@ -0,0 +1,130 @@
+from matplotlib.transforms import Affine2D
+
+from mpl_toolkits.axes_grid.floating_axes import FloatingSubplot,\
+ GridHelperCurveLinear
+
+import numpy as np
+import mpl_toolkits.axes_grid.angle_helper as angle_helper
+from matplotlib.projections import PolarAxes
+from mpl_toolkits.axes_grid.grid_finder import FixedLocator, MaxNLocator, \
+ DictFormatter
+
+def setup_axes1(fig, rect):
+
+ #tr_scale = Affine2D().scale(np.pi/180., 1.)
+
+ tr = PolarAxes.PolarTransform()
+
+ pi = np.pi
+ angle_ticks = [(0, r"$0$"),
+ (.25*pi, r"$\frac{1}{4}\pi$"),
+ (.5*pi, r"$\frac{1}{2}\pi$")]
+ grid_locator1 = FixedLocator([v for v, s in angle_ticks])
+ tick_formatter1 = DictFormatter(dict(angle_ticks))
+
+ grid_locator2 = MaxNLocator(2)
+
+ grid_helper = GridHelperCurveLinear(tr,
+ extremes=(.5*pi, 0, 2, 1),
+ #extremes=(0, .5*pi, 1, 2),
+ #extremes=(0, 1, 1, 2),
+ grid_locator1=grid_locator1,
+ grid_locator2=grid_locator2,
+ tick_formatter1=tick_formatter1,
+ tick_formatter2=None,
+ )
+
+ ax1 = FloatingSubplot(fig, rect, grid_helper=grid_helper)
+ fig.add_subplot(ax1)
+
+ #ax1.axis[:]
+
+ # create a parasite axes whose transData in RA, cz
+ aux_ax = ax1.get_aux_axes(tr)
+
+ aux_ax.patch = ax1.patch # for aux_ax to have a clip path as in ax
+ ax1.patch.zorder=0.9 # but this has a side effect that the patch is
+ # drawn twice, and possibly over some other
+ # artists. So, we decrease the zorder a bit to
+ # prevent this.
+
+ return ax1, aux_ax
+
+
+def setup_axes2(fig, rect):
+
+ # rotate a bit for better orientation
+ tr_rotate = Affine2D().translate(-95, 0)
+
+ # scale degree to radians
+ tr_scale = Affine2D().scale(np.pi/180., 1.)
+
+ tr = tr_rotate + tr_scale + PolarAxes.PolarTransform()
+
+ grid_locator1 = angle_helper.LocatorHMS(4)
+ tick_formatter1 = angle_helper.FormatterHMS()
+
+ grid_locator2 = MaxNLocator(3)
+
+ ra0, ra1 = 8.*15, 14.*15
+ cz0, cz1 = 0, 14000
+ grid_helper = GridHelperCurveLinear(tr,
+ extremes=(ra0, ra1, cz0, cz1),
+ grid_locator1=grid_locator1,
+ grid_locator2=grid_locator2,
+ tick_formatter1=tick_formatter1,
+ tick_formatter2=None,
+ )
+
+ ax1 = FloatingSubplot(fig, rect, grid_helper=grid_helper)
+ fig.add_subplot(ax1)
+
+ # adjust axis
+ ax1.axis["left"].set_axis_direction("bottom")
+ ax1.axis["right"].set_axis_direction("top")
+
+ ax1.axis["bottom"].set_visible(False)
+ ax1.axis["top"].set_axis_direction("bottom")
+ ax1.axis["top"].toggle(ticklabels=True, label=True)
+ ax1.axis["top"].major_ticklabels.set_axis_direction("top")
+ ax1.axis["top"].label.set_axis_direction("top")
+
+ ax1.axis["left"].label.set_text(r"cz [km$^{-1}$]")
+ ax1.axis["top"].label.set_text(r"$\alpha_{1950}$")
+
+
+ # create a parasite axes whose transData in RA, cz
+ aux_ax = ax1.get_aux_axes(tr)
+
+ aux_ax.patch = ax1.patch # for aux_ax to have a clip path as in ax
+ ax1.patch.zorder=0.9 # but this has a side effect that the patch is
+ # drawn twice, and possibly over some other
+ # artists. So, we decrease the zorder a bit to
+ # prevent this.
+
+ return ax1, aux_ax
+
+
+def sixty(d, m, s):
+ return d + (m + s/60.)/60.
+
+
+
+if 1:
+ import matplotlib.pyplot as plt
+ fig = plt.figure(1, figsize=(7, 5))
+
+ ax1, aux_ax1 = setup_axes1(fig, 121)
+
+ theta = np.random.rand(10)*.5*np.pi
+ radius = np.random.rand(10)+1.
+ aux_ax1.scatter(theta, radius)
+
+ ax2, aux_ax2 = setup_axes2(fig, 122)
+
+ theta = (8 + np.random.rand(10)*(14-8))*15. # indegree
+ radius = np.random.rand(10)*14000.
+ aux_ax2.scatter(theta, radius)
+
+ plt.show()
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <lee...@us...> - 2009-12-07 01:16:52
|
Revision: 8009
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8009&view=rev
Author: leejjoon
Date: 2009-12-07 01:16:44 +0000 (Mon, 07 Dec 2009)
Log Message:
-----------
support FloatingAxes
Added Paths:
-----------
trunk/matplotlib/lib/mpl_toolkits/axes_grid/floating_axes.py
Added: trunk/matplotlib/lib/mpl_toolkits/axes_grid/floating_axes.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/axes_grid/floating_axes.py (rev 0)
+++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/floating_axes.py 2009-12-07 01:16:44 UTC (rev 8009)
@@ -0,0 +1,691 @@
+"""
+An experimental support for curvelinear grid.
+"""
+
+
+# TODO :
+
+# *. see if tick_iterator method can be simplified by reusing the parent method.
+
+from itertools import chain
+from mpl_toolkits.axes_grid.grid_finder import GridFinder
+
+from mpl_toolkits.axes_grid.axislines import AxisArtistHelper, GridHelperBase
+from mpl_toolkits.axes_grid.axis_artist import AxisArtist
+from matplotlib.transforms import Affine2D
+import numpy as np
+
+
+import mpl_toolkits.axes_grid.grid_helper_curvelinear as grid_helper_curvelinear
+
+class FloatingAxisArtistHelper(grid_helper_curvelinear.FloatingAxisArtistHelper):
+ pass
+
+class FixedAxisArtistHelper(grid_helper_curvelinear.FloatingAxisArtistHelper):
+
+
+ def __init__(self, grid_helper, side, nth_coord_ticks=None):
+ """
+ nth_coord = along which coordinate value varies.
+ nth_coord = 0 -> x axis, nth_coord = 1 -> y axis
+ """
+
+ value, nth_coord = grid_helper.get_data_boundary(side) # return v= 0 , nth=1, extremes of the other coordinate.
+ super(FixedAxisArtistHelper, self).__init__(grid_helper,
+ nth_coord,
+ value,
+ axis_direction=side,
+ )
+ #self.grid_helper = grid_helper
+ if nth_coord_ticks is None:
+ nth_coord_ticks = nth_coord
+ self.nth_coord_ticks = nth_coord_ticks
+
+ self.value = value
+ self.grid_helper = grid_helper
+ self._side = side
+
+
+ def update_lim(self, axes):
+ self.grid_helper.update_lim(axes)
+
+ self.grid_info = self.grid_helper.grid_info
+
+
+
+ def get_axislabel_pos_angle(self, axes):
+
+ extremes = self.grid_info["extremes"]
+
+ if self.nth_coord == 0:
+ xx0 = self.value
+ yy0 = (extremes[2]+extremes[3])/2.
+ dxx, dyy = 0., abs(extremes[2]-extremes[3])/1000.
+ elif self.nth_coord == 1:
+ xx0 = (extremes[0]+extremes[1])/2.
+ yy0 = self.value
+ dxx, dyy = abs(extremes[0]-extremes[1])/1000., 0.
+
+ grid_finder = self.grid_helper.grid_finder
+ xx1, yy1 = grid_finder.transform_xy([xx0], [yy0])
+
+ trans_passingthrough_point = axes.transData + axes.transAxes.inverted()
+ p = trans_passingthrough_point.transform_point([xx1[0], yy1[0]])
+
+
+ if (0. <= p[0] <= 1.) and (0. <= p[1] <= 1.):
+ xx1c, yy1c = axes.transData.transform_point([xx1[0], yy1[0]])
+ xx2, yy2 = grid_finder.transform_xy([xx0+dxx], [yy0+dyy])
+ xx2c, yy2c = axes.transData.transform_point([xx2[0], yy2[0]])
+
+ return (xx1c, yy1c), np.arctan2(yy2c-yy1c, xx2c-xx1c)/np.pi*180.
+ else:
+ return None, None
+
+
+
+ def get_tick_transform(self, axes):
+ return axes.transData
+
+ def get_tick_iterators(self, axes):
+ """tick_loc, tick_angle, tick_label, (optionally) tick_label"""
+
+
+ grid_finder = self.grid_helper.grid_finder
+
+ lat_levs, lat_n, lat_factor = self.grid_info["lat_info"]
+ lon_levs, lon_n, lon_factor = self.grid_info["lon_info"]
+
+ lon_levs, lat_levs = np.asarray(lon_levs), np.asarray(lat_levs)
+ if lat_factor is not None:
+ yy0 = lat_levs / lat_factor
+ dy = 0.01 / lat_factor
+ else:
+ yy0 = lat_levs
+ dy = 0.01
+
+ if lon_factor is not None:
+ xx0 = lon_levs / lon_factor
+ dx = 0.01 / lon_factor
+ else:
+ xx0 = lon_levs
+ dx = 0.01
+
+ _extremes = self.grid_helper._extremes
+ xmin, xmax = sorted(_extremes[:2])
+ ymin, ymax = sorted(_extremes[2:])
+ if self.nth_coord == 0:
+ mask = (ymin <= yy0) & (yy0 <= ymax)
+ yy0 = yy0[mask]
+ elif self.nth_coord == 1:
+ mask = (xmin <= xx0) & (xx0 <= xmax)
+ xx0 = xx0[mask]
+
+ # find angles
+ if self.nth_coord == 0:
+ xx0 = np.empty_like(yy0)
+ xx0.fill(self.value)
+ xx1, yy1 = grid_finder.transform_xy(xx0, yy0)
+ xx2, yy2 = grid_finder.transform_xy(xx0+dx, yy0)
+ xx3, yy3 = grid_finder.transform_xy(xx0, yy0+dy)
+ labels = self.grid_info["lat_labels"]
+ labels = [l for l, m in zip(labels, mask) if m]
+
+ elif self.nth_coord == 1:
+ yy0 = np.empty_like(xx0)
+ yy0.fill(self.value)
+ xx1, yy1 = grid_finder.transform_xy(xx0, yy0)
+ xx2, yy2 = grid_finder.transform_xy(xx0, yy0+dy)
+ xx3, yy3 = grid_finder.transform_xy(xx0+dx, yy0)
+ labels = self.grid_info["lon_labels"]
+ labels = [l for l, m in zip(labels, mask) if m]
+
+
+ def f1():
+ dd = np.arctan2(yy2-yy1, xx2-xx1) # angle normal
+ dd2 = np.arctan2(yy3-yy1, xx3-xx1) # angle tangent
+ mm = ((yy2-yy1)==0.) & ((xx2-xx1)==0.) # mask where dd1 is not defined
+ dd[mm] = dd2[mm]+3.14159/2.
+
+ #dd += 3.14159
+ #dd = np.arctan2(xx2-xx1, angle_tangent-yy1)
+ trans_tick = self.get_tick_transform(axes)
+ tr2ax = trans_tick + axes.transAxes.inverted()
+ for x, y, d, d2, lab in zip(xx1, yy1, dd, dd2, labels):
+ c2 = tr2ax.transform_point((x, y))
+ delta=0.00001
+ if (0. -delta<= c2[0] <= 1.+delta) and \
+ (0. -delta<= c2[1] <= 1.+delta):
+ d1 = d/3.14159*180.
+ d2 = d2/3.14159*180.
+ #_mod = (d2-d1+180)%360
+ #if _mod < 180:
+ # d1 += 180
+ ##_div, _mod = divmod(d2-d1, 360)
+ yield [x, y], d1, d2, lab
+ #, d2/3.14159*180.+da)
+
+ return f1(), iter([])
+
+ def get_line_transform(self, axes):
+ return axes.transData
+
+ def get_line(self, axes):
+
+ self.update_lim(axes)
+ from matplotlib.path import Path
+ k, v = dict(left=("lon_lines0", 0),
+ right=("lon_lines0", 1),
+ bottom=("lat_lines0", 0),
+ top=("lat_lines0", 1))[self._side]
+
+ xx, yy = self.grid_info[k][v]
+ return Path(zip(xx, yy))
+
+
+
+from mpl_toolkits.axes_grid.grid_finder import ExtremeFinderSimple
+
+class ExtremeFinderFixed(ExtremeFinderSimple):
+ def __init__(self, extremes):
+ self._extremes = extremes
+
+ def __call__(self, transform_xy, x1, y1, x2, y2):
+ """
+ get extreme values.
+
+ x1, y1, x2, y2 in image coordinates (0-based)
+ nx, ny : number of dvision in each axis
+ """
+ #lon_min, lon_max, lat_min, lat_max = self._extremes
+ return self._extremes
+
+
+
+class GridHelperCurveLinear(grid_helper_curvelinear.GridHelperCurveLinear):
+
+ def __init__(self, aux_trans, extremes,
+ grid_locator1=None,
+ grid_locator2=None,
+ tick_formatter1=None,
+ tick_formatter2=None):
+ """
+ aux_trans : a transform from the source (curved) coordinate to
+ target (rectlinear) coordinate. An instance of MPL's Transform
+ (inverse transform should be defined) or a tuple of two callable
+ objects which defines the transform and its inverse. The callables
+ need take two arguments of array of source coordinates and
+ should return two target coordinates:
+ e.g. x2, y2 = trans(x1, y1)
+ """
+
+ self._old_values = None
+
+ self._extremes = extremes
+ extreme_finder = ExtremeFinderFixed(extremes)
+
+ super(GridHelperCurveLinear, self).__init__(aux_trans,
+ extreme_finder,
+ grid_locator1=grid_locator1,
+ grid_locator2=grid_locator2,
+ tick_formatter1=tick_formatter1,
+ tick_formatter2=tick_formatter2)
+
+
+ # def update_grid_finder(self, aux_trans=None, **kw):
+
+ # if aux_trans is not None:
+ # self.grid_finder.update_transform(aux_trans)
+
+ # self.grid_finder.update(**kw)
+ # self.invalidate()
+
+
+ # def _update(self, x1, x2, y1, y2):
+ # "bbox in 0-based image coordinates"
+ # # update wcsgrid
+
+ # if self.valid() and self._old_values == (x1, x2, y1, y2):
+ # return
+
+ # self._update_grid(x1, y1, x2, y2)
+
+ # self._old_values = (x1, x2, y1, y2)
+
+ # self._force_update = False
+
+
+ def get_data_boundary(self, side):
+ """
+ return v= 0 , nth=1
+ """
+ lon1, lon2, lat1, lat2 = self._extremes
+ return dict(left=(lon1, 0),
+ right=(lon2, 0),
+ bottom=(lat1, 1),
+ top=(lat2, 1))[side]
+
+
+ def new_fixed_axis(self, loc,
+ nth_coord=None,
+ axis_direction=None,
+ offset=None,
+ axes=None):
+
+ if axes is None:
+ axes = self.axes
+
+ if axis_direction is None:
+ axis_direction = loc
+
+ _helper = FixedAxisArtistHelper(self, loc,
+ nth_coord_ticks=nth_coord)
+
+
+ axisline = AxisArtist(axes, _helper, axis_direction=axis_direction)
+ axisline.line.set_clip_on(True)
+ axisline.line.set_clip_box(axisline.axes.bbox)
+
+
+ return axisline
+
+
+ # new_floating_axis will inheirt the grid_helper's extremes.
+
+ # def new_floating_axis(self, nth_coord,
+ # value,
+ # axes=None,
+ # axis_direction="bottom"
+ # ):
+
+ # axis = super(GridHelperCurveLinear,
+ # self).new_floating_axis(nth_coord,
+ # value, axes=axes,
+ # axis_direction=axis_direction)
+
+ # # set extreme values of the axis helper
+ # if nth_coord == 1:
+ # axis.get_helper().set_extremes(*self._extremes[:2])
+ # elif nth_coord == 0:
+ # axis.get_helper().set_extremes(*self._extremes[2:])
+
+ # return axis
+
+
+ def _update_grid(self, x1, y1, x2, y2):
+
+ #self.grid_info = self.grid_finder.get_grid_info(x1, y1, x2, y2)
+
+ if self.grid_info is None:
+ self.grid_info = dict()
+
+ grid_info = self.grid_info
+
+ grid_finder = self.grid_finder
+ extremes = grid_finder.extreme_finder(grid_finder.inv_transform_xy,
+ x1, y1, x2, y2)
+
+ lon_min, lon_max = sorted(extremes[:2])
+ lat_min, lat_max = sorted(extremes[2:])
+ lon_levs, lon_n, lon_factor = \
+ grid_finder.grid_locator1(lon_min, lon_max)
+ lat_levs, lat_n, lat_factor = \
+ grid_finder.grid_locator2(lat_min, lat_max)
+ grid_info["extremes"] = lon_min, lon_max, lat_min, lat_max #extremes
+
+ grid_info["lon_info"] = lon_levs, lon_n, lon_factor
+ grid_info["lat_info"] = lat_levs, lat_n, lat_factor
+
+ grid_info["lon_labels"] = grid_finder.tick_formatter1("bottom",
+ lon_factor,
+ lon_levs)
+
+ grid_info["lat_labels"] = grid_finder.tick_formatter2("bottom",
+ lat_factor,
+ lat_levs)
+
+ if lon_factor is None:
+ lon_values = np.asarray(lon_levs[:lon_n])
+ else:
+ lon_values = np.asarray(lon_levs[:lon_n]/lon_factor)
+ if lat_factor is None:
+ lat_values = np.asarray(lat_levs[:lat_n])
+ else:
+ lat_values = np.asarray(lat_levs[:lat_n]/lat_factor)
+
+ lon_values0 = lon_values[(lon_min<lon_values) & (lon_values<lon_max)]
+ lat_values0 = lat_values[(lat_min<lat_values) & (lat_values<lat_max)]
+ lon_lines, lat_lines = grid_finder._get_raw_grid_lines(lon_values0,
+ lat_values0,
+ lon_min, lon_max,
+ lat_min, lat_max)
+
+
+ grid_info["lon_lines"] = lon_lines
+ grid_info["lat_lines"] = lat_lines
+
+
+ lon_lines, lat_lines = grid_finder._get_raw_grid_lines(extremes[:2],
+ extremes[2:],
+ *extremes)
+ #lon_min, lon_max,
+ # lat_min, lat_max)
+
+
+ grid_info["lon_lines0"] = lon_lines
+ grid_info["lat_lines0"] = lat_lines
+
+
+
+ def get_gridlines(self):
+ grid_lines = []
+ for gl in self.grid_info["lat_lines"]:
+ grid_lines.extend([gl])
+ for gl in self.grid_info["lon_lines"]:
+ grid_lines.extend([gl])
+
+ return grid_lines
+
+
+ def get_boundary(self):
+ """
+ return Nx2 array of x,y coordinate of the boundary
+ """
+ x0, x1, y0, y1 = self._extremes
+ tr = self._aux_trans
+ xx = np.linspace(x0, x1, 100)
+ yy0, yy1 = np.empty_like(xx), np.empty_like(xx)
+ yy0.fill(y0)
+ yy1.fill(y1)
+
+ yy = np.linspace(y0, y1, 100)
+ xx0, xx1 = np.empty_like(yy), np.empty_like(yy)
+ xx0.fill(x0)
+ xx1.fill(x1)
+
+ xxx = np.concatenate([xx[:-1], xx1[:-1], xx[-1:0:-1], xx0])
+ yyy = np.concatenate([yy0[:-1], yy[:-1], yy1[:-1], yy[::-1]])
+ t = tr.transform(np.array([xxx, yyy]).transpose())
+
+ return t
+
+
+
+
+
+
+
+#from mpl_toolkits.axes_grid.axislines import Axes
+
+from mpl_toolkits.axes_grid.parasite_axes import HostAxes, ParasiteAxesAuxTrans
+
+
+
+
+class FloatingAxesBase(object):
+
+
+ def __init__(self, *kl, **kwargs):
+ grid_helper = kwargs.get("grid_helper", None)
+ if grid_helper is None:
+ raise ValueError("FloatingAxes requires grid_helper argument")
+ if not hasattr(grid_helper, "get_boundary"):
+ raise ValueError("grid_helper must implement get_boundary method")
+
+ self._axes_class_floating.__init__(self, *kl, **kwargs)
+
+ self.set_aspect(1.)
+ self.adjust_axes_lim()
+
+
+ def _gen_axes_patch(self):
+ """
+ Returns the patch used to draw the background of the axes. It
+ is also used as the clipping path for any data elements on the
+ axes.
+
+ In the standard axes, this is a rectangle, but in other
+ projections it may not be.
+
+ .. note::
+ Intended to be overridden by new projection types.
+ """
+ import matplotlib.patches as mpatches
+ grid_helper = self.get_grid_helper()
+ t = grid_helper.get_boundary()
+ return mpatches.Polygon(t)
+
+ def cla(self):
+ self._axes_class_floating.cla(self)
+ #HostAxes.cla(self)
+ self.patch.set_transform(self.transData)
+
+
+ patch = self._axes_class_floating._gen_axes_patch(self)
+ patch.set_figure(self.figure)
+ patch.set_visible(False)
+ patch.set_transform(self.transAxes)
+
+ self.patch.set_clip_path(patch)
+ self.gridlines.set_clip_path(patch)
+
+ self._original_patch = patch
+
+
+ def adjust_axes_lim(self):
+
+ #t = self.get_boundary()
+ grid_helper = self.get_grid_helper()
+ t = grid_helper.get_boundary()
+ x, y = t[:,0], t[:,1]
+
+ xmin, xmax = min(x), max(x)
+ ymin, ymax = min(y), max(y)
+
+ dx = (xmax-xmin)/100.
+ dy = (ymax-ymin)/100.
+
+ self.set_xlim(xmin-dx, xmax+dx)
+ self.set_ylim(ymin-dy, ymax+dy)
+
+
+
+import new
+
+_floatingaxes_classes = {}
+
+def floatingaxes_class_factory(axes_class):
+
+ new_class = _floatingaxes_classes.get(axes_class)
+ if new_class is None:
+ new_class = new.classobj("Floating %s" % (axes_class.__name__),
+ (FloatingAxesBase, axes_class),
+ {'_axes_class_floating': axes_class})
+ _floatingaxes_classes[axes_class] = new_class
+
+ return new_class
+
+FloatingAxes = floatingaxes_class_factory(HostAxes)
+
+
+
+import matplotlib.axes as maxes
+FloatingSubplot = maxes.subplot_class_factory(FloatingAxes)
+
+# def test(fig):
+# from mpl_toolkits.axes_grid.axislines import Subplot
+# ax = Subplot(fig, 111)
+
+# fig.add_subplot(ax)
+
+# plt.draw()
+
+
+def curvelinear_test3(fig):
+ """
+ polar projection, but in a rectangular box.
+ """
+ global ax1, axis
+ import numpy as np
+ import mpl_toolkits.axes_grid.angle_helper as angle_helper
+ from matplotlib.projections import PolarAxes
+
+ # PolarAxes.PolarTransform takes radian. However, we want our coordinate
+ # system in degree
+ tr = Affine2D().scale(np.pi/180., 1.) + PolarAxes.PolarTransform()
+
+ # polar projection, which involves cycle, and also has limits in
+ # its coordinates, needs a special method to find the extremes
+ # (min, max of the coordinate within the view).
+
+
+ grid_locator1 = angle_helper.LocatorDMS(15)
+ # Find a grid values appropriate for the coordinate (degree,
+ # minute, second).
+
+ tick_formatter1 = angle_helper.FormatterDMS()
+ # And also uses an appropriate formatter. Note that,the
+ # acceptable Locator and Formatter class is a bit different than
+ # that of mpl's, and you cannot directly use mpl's Locator and
+ # Formatter here (but may be possible in the future).
+
+ from mpl_toolkits.axes_grid.grid_finder import FixedLocator
+ grid_locator2 = FixedLocator([2, 4, 6, 8, 10])
+
+
+ grid_helper = GridHelperCurveLinear(tr,
+ extremes=(0, 360, 10, 3),
+ grid_locator1=grid_locator1,
+ grid_locator2=grid_locator2,
+ tick_formatter1=tick_formatter1,
+ tick_formatter2=None,
+ )
+
+ ax1 = FloatingSubplot(fig, 111, grid_helper=grid_helper)
+
+
+ #ax1.axis["top"].set_visible(False)
+ #ax1.axis["bottom"].major_ticklabels.set_axis_direction("top")
+
+ fig.add_subplot(ax1)
+
+
+ #ax1.grid(True)
+
+
+ r_scale = 10.
+ tr2 = Affine2D().scale(1., 1./r_scale) + tr
+ grid_locator2 = FixedLocator([30, 60, 90])
+ grid_helper2 = GridHelperCurveLinear(tr2,
+ extremes=(0, 360,
+ 10.*r_scale, 3.*r_scale),
+ grid_locator2=grid_locator2,
+ )
+
+ ax1.axis["right"] = axis = grid_helper2.new_fixed_axis("right", axes=ax1)
+
+ ax1.axis["left"].label.set_text("Test 1")
+ ax1.axis["right"].label.set_text("Test 2")
+
+
+ for an in [ "left", "right"]:
+ ax1.axis[an].set_visible(False)
+
+
+ #grid_helper2 = ax1.get_grid_helper()
+ ax1.axis["z"] = axis = grid_helper.new_floating_axis(1, 7,
+ axes=ax1,
+ axis_direction="bottom")
+ axis.toggle(all=True, label=True)
+ #axis.label.set_axis_direction("top")
+ axis.label.set_text("z = ?")
+ axis.label.set_visible(True)
+ axis.line.set_color("0.5")
+ #axis.label.set_visible(True)
+
+
+ ax2 = ax1.get_aux_axes(tr)
+
+ xx, yy = [67, 90, 75, 30], [2, 5, 8, 4]
+ ax2.scatter(xx, yy)
+ l, = ax2.plot(xx, yy, "k-")
+ l.set_clip_path(ax1.patch)
+
+
+def curvelinear_test4(fig):
+ """
+ polar projection, but in a rectangular box.
+ """
+ global ax1, axis
+ import numpy as np
+ import mpl_toolkits.axes_grid.angle_helper as angle_helper
+ from matplotlib.projections import PolarAxes
+
+ tr = Affine2D().scale(np.pi/180., 1.) + PolarAxes.PolarTransform()
+
+ grid_locator1 = angle_helper.LocatorDMS(5)
+ tick_formatter1 = angle_helper.FormatterDMS()
+
+ from mpl_toolkits.axes_grid.grid_finder import FixedLocator
+ grid_locator2 = FixedLocator([2, 4, 6, 8, 10])
+
+ grid_helper = GridHelperCurveLinear(tr,
+ extremes=(120, 30, 10, 0),
+ grid_locator1=grid_locator1,
+ grid_locator2=grid_locator2,
+ tick_formatter1=tick_formatter1,
+ tick_formatter2=None,
+ )
+
+ ax1 = FloatingSubplot(fig, 111, grid_helper=grid_helper)
+
+
+ #ax1.axis["top"].set_visible(False)
+ #ax1.axis["bottom"].major_ticklabels.set_axis_direction("top")
+
+ fig.add_subplot(ax1)
+
+
+ #ax1.grid(True)
+
+
+ ax1.axis["left"].label.set_text("Test 1")
+ ax1.axis["right"].label.set_text("Test 2")
+
+
+ for an in [ "top"]:
+ ax1.axis[an].set_visible(False)
+
+
+ #grid_helper2 = ax1.get_grid_helper()
+ ax1.axis["z"] = axis = grid_helper.new_floating_axis(1, 70,
+ axes=ax1,
+ axis_direction="bottom")
+ axis.toggle(all=True, label=True)
+ axis.label.set_axis_direction("top")
+ axis.label.set_text("z = ?")
+ axis.label.set_visible(True)
+ axis.line.set_color("0.5")
+ #axis.label.set_visible(True)
+
+
+ ax2 = ax1.get_aux_axes(tr)
+
+ xx, yy = [67, 90, 75, 30], [2, 5, 8, 4]
+ ax2.scatter(xx, yy)
+ l, = ax2.plot(xx, yy, "k-")
+ l.set_clip_path(ax1.patch)
+
+if __name__ == "__main__":
+ import matplotlib.pyplot as plt
+ fig = plt.figure(1, figsize=(5, 5))
+ fig.clf()
+
+ #test(fig)
+ #curvelinear_test1(fig)
+ curvelinear_test4(fig)
+
+ #plt.draw()
+ plt.show()
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <lee...@us...> - 2009-12-07 01:16:44
|
Revision: 8008
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8008&view=rev
Author: leejjoon
Date: 2009-12-07 01:16:36 +0000 (Mon, 07 Dec 2009)
Log Message:
-----------
reimplmenting AxisArtist
Modified Paths:
--------------
trunk/matplotlib/examples/axes_grid/demo_axes_grid2.py
trunk/matplotlib/examples/axes_grid/demo_axisline_style.py
trunk/matplotlib/examples/axes_grid/demo_curvelinear_grid.py
trunk/matplotlib/lib/mpl_toolkits/axes_grid/angle_helper.py
trunk/matplotlib/lib/mpl_toolkits/axes_grid/axisline_style.py
trunk/matplotlib/lib/mpl_toolkits/axes_grid/axislines.py
trunk/matplotlib/lib/mpl_toolkits/axes_grid/clip_path.py
trunk/matplotlib/lib/mpl_toolkits/axes_grid/grid_finder.py
trunk/matplotlib/lib/mpl_toolkits/axes_grid/grid_helper_curvelinear.py
trunk/matplotlib/lib/mpl_toolkits/axes_grid/parasite_axes.py
Added Paths:
-----------
trunk/matplotlib/lib/mpl_toolkits/axes_grid/axis_artist.py
Modified: trunk/matplotlib/examples/axes_grid/demo_axes_grid2.py
===================================================================
--- trunk/matplotlib/examples/axes_grid/demo_axes_grid2.py 2009-12-05 17:47:26 UTC (rev 8007)
+++ trunk/matplotlib/examples/axes_grid/demo_axes_grid2.py 2009-12-07 01:16:36 UTC (rev 8008)
@@ -11,28 +11,17 @@
def add_inner_title(ax, title, loc, size=None, **kwargs):
- from matplotlib.offsetbox import AuxTransformBox, AnchoredOffsetbox
- from matplotlib.font_manager import FontProperties
- from matplotlib.patches import PathPatch
- from matplotlib.textpath import TextPath
- from matplotlib.transforms import IdentityTransform
+ from matplotlib.offsetbox import AnchoredText
+ from matplotlib.patheffects import withStroke
if size is None:
- size = FontProperties(size=plt.rcParams['legend.fontsize'])
- text_path = TextPath((0, 0), title, size=10)
- p1 = PathPatch(text_path, ec="w", lw=3, transform=IdentityTransform())
- p2 = PathPatch(text_path, ec="none", fc="k", transform=IdentityTransform())
+ size = dict(size=plt.rcParams['legend.fontsize'])
+ at = AnchoredText(title, loc=loc, prop=size,
+ pad=0., borderpad=0.5,
+ frameon=False, **kwargs)
+ ax.add_artist(at)
+ at.txt._text.set_path_effects([withStroke(foreground="w", linewidth=3)])
+ return at
- offsetbox = AuxTransformBox(IdentityTransform())
- offsetbox.add_artist(p1)
- offsetbox.add_artist(p2)
-
- ao = AnchoredOffsetbox(loc=loc, child=offsetbox,
- pad=0., borderpad=0.5,
- frameon=False, **kwargs)
- ax.add_artist(ao)
-
- return ao
-
if 1:
F = plt.figure(1, (6, 6))
F.clf()
Modified: trunk/matplotlib/examples/axes_grid/demo_axisline_style.py
===================================================================
--- trunk/matplotlib/examples/axes_grid/demo_axisline_style.py 2009-12-05 17:47:26 UTC (rev 8007)
+++ trunk/matplotlib/examples/axes_grid/demo_axisline_style.py 2009-12-07 01:16:36 UTC (rev 8008)
@@ -9,7 +9,7 @@
fig.add_subplot(ax)
for direction in ["xzero", "yzero"]:
- ax.axis[direction].set_axisline_style("->")
+ ax.axis[direction].set_axisline_style("-|>")
ax.axis[direction].set_visible(True)
for direction in ["left", "right", "bottom", "top"]:
Modified: trunk/matplotlib/examples/axes_grid/demo_curvelinear_grid.py
===================================================================
--- trunk/matplotlib/examples/axes_grid/demo_curvelinear_grid.py 2009-12-05 17:47:26 UTC (rev 8007)
+++ trunk/matplotlib/examples/axes_grid/demo_curvelinear_grid.py 2009-12-07 01:16:36 UTC (rev 8008)
@@ -42,6 +42,8 @@
ax1.set_xlim(0, 10.)
ax1.set_ylim(0, 10.)
+ ax1.axis["t"]=ax1.new_floating_axis(0, 3.)
+ ax1.axis["t2"]=ax1.new_floating_axis(1, 7.)
ax1.grid(True)
Modified: trunk/matplotlib/lib/mpl_toolkits/axes_grid/angle_helper.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/axes_grid/angle_helper.py 2009-12-05 17:47:26 UTC (rev 8007)
+++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/angle_helper.py 2009-12-07 01:16:36 UTC (rev 8008)
@@ -147,7 +147,7 @@
levs = np.arange(0, nv, 1) * step
n = len(levs)
- return levs, n, factor
+ return np.array(levs), n, factor
def select_step24(v1, v2, nv):
@@ -214,7 +214,7 @@
#return [fmt % (ss[0]*degree, floor(v/60.), v%60) \
# for s, v in zip(ss, values-3600*degree)]
else: # factor > 3600.
- return ["$%s$" % (str(v),) for v in values]
+ return [r"$%s^{\mathrm{h}}$" % (str(v),) for v in ss*values]
class FormatterDMS(object):
@@ -255,7 +255,7 @@
#return [fmt % (ss[0]*degree, floor(v/60.), v%60) \
# for s, v in zip(ss, values-3600*degree)]
else: # factor > 3600.
- return ["$%s$" % (str(v),) for v in ss*values]
+ return [r"$%s^{\circ}$" % (str(v),) for v in ss*values]
Added: trunk/matplotlib/lib/mpl_toolkits/axes_grid/axis_artist.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/axes_grid/axis_artist.py (rev 0)
+++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/axis_artist.py 2009-12-07 01:16:36 UTC (rev 8008)
@@ -0,0 +1,1468 @@
+"""
+axis_artist.py module provides axis-related artists. They are
+
+ * axis line
+ * tick lines
+ * tick labels
+ * axis label
+ * grid lines
+
+The main artist class is a AxisArtist and a GridLineCollection. The
+GridLineCollection is responsible for drawing grid lines and the
+AxisArtist is responsible for all other artists. The AxisArtist class
+has attributest that are associated with each type of artists.
+
+ * line : axis line
+ * major_ticks : major tick lines
+ * major_ticklabels : major tick labels
+ * minor_ticks : minor tick lines
+ * minor_ticklabels : minor tick labels
+ * label : axis label
+
+Typically, the AxisArtist associated with a axes will be accessed with
+the *axis* dictionary of the axes, i.e., the AxisArtist for the bottom
+axis is
+
+ ax.axis["bottom"]
+
+where *ax* is an instance of axes (mpl_toolkits.axes_grid.axislines.Axes).
+Thus, ax.axis["bottom"].line is an artist associated with the axis line, and ax.axis["bottom"].major_ticks is an artist associated with the major tick lines.
+
+You can change the colors, fonts, line widths, etc. of these artists
+by calling sutable set method. For example, to change the color of the major ticks of the bottom axis to red,
+
+ ax.axis["bottom"].major_ticks.set_color("r")
+
+However, things like the locations of ticks, and their ticklabels need
+to be changed from the side of the grid_helper.
+
+axis_direction
+--------------
+
+AxisArtist, AxisLabel, TickLabels have *axis_drection* attribute,
+which adjusts the location, angle, etc.,. The *axis_direction* must be
+one of [left, right, bottom, top] and they follow the matplotlib
+convention for the rectangle axis.
+
+For example, for the *bottom* axis (the left and right is relative to
+the direction of the increasing coordinate),
+
+ * ticklabels and axislabel are on the right
+ * ticklabels and axislabel have text angle of 0
+ * ticklabels are baseline, center-aligned
+ * axislabel is top, center-aligned
+
+
+The text angles are actually relative to (90 + angle of the direction
+to the ticklabel), which gives 0 for bottom axis.
+
+ left bottom right top
+ ticklabels location left right right left
+ axislabel location left right right left
+ ticklabels angle 90 0 -90 180
+ axislabel angle 180 0 0 180
+ ticklabel va center baseline center baseline
+ axislabel va center top center btoom
+ ticklabel ha right center right center
+ axislabel ha right center right center
+
+
+Ticks are by default direct opposite side of the ticklabels. To make
+ticks to the same side of the ticklabels,
+
+ ax.axis["bottom"].major_ticks.set_ticks_out(True)
+
+
+Following attributes can be customized (use set_xxx method)
+
+ * Ticks : ticksize, tick_out
+ * TickLabels : pad
+ * AxisLabel : pad
+
+"""
+
+
+# FIXME :
+
+# * : angles are given in data coordinate - need to convert it to canvas coordinate
+
+
+import matplotlib.axes as maxes
+import matplotlib.artist as martist
+import matplotlib.text as mtext
+import matplotlib.font_manager as font_manager
+
+from matplotlib.path import Path
+from matplotlib.transforms import Affine2D, ScaledTranslation, \
+ IdentityTransform, TransformedPath, Bbox
+from matplotlib.collections import LineCollection
+
+from matplotlib import rcParams
+
+from matplotlib.artist import allow_rasterization
+
+import warnings
+
+import numpy as np
+
+
+import matplotlib.lines as mlines
+from axisline_style import AxislineStyle
+
+
+class BezierPath(mlines.Line2D):
+
+ def __init__(self, path, *kl, **kw):
+ mlines.Line2D.__init__(self, [], [], *kl, **kw)
+ self._path = path
+ self._invalid = False
+
+ def recache(self):
+
+ self._transformed_path = TransformedPath(self._path, self.get_transform())
+
+ self._invalid = False
+
+ def set_path(self, path):
+ self._path = path
+ self._invalid = True
+
+
+ def draw(self, renderer):
+ if self._invalid:
+ self.recache()
+
+ renderer.open_group('line2d')
+
+ if not self._visible: return
+ gc = renderer.new_gc()
+ self._set_gc_clip(gc)
+
+ gc.set_foreground(self._color)
+ gc.set_antialiased(self._antialiased)
+ gc.set_linewidth(self._linewidth)
+ gc.set_alpha(self._alpha)
+ if self.is_dashed():
+ cap = self._dashcapstyle
+ join = self._dashjoinstyle
+ else:
+ cap = self._solidcapstyle
+ join = self._solidjoinstyle
+ gc.set_joinstyle(join)
+ gc.set_capstyle(cap)
+
+ funcname = self._lineStyles.get(self._linestyle, '_draw_nothing')
+ if funcname != '_draw_nothing':
+ tpath, affine = self._transformed_path.get_transformed_path_and_affine()
+ lineFunc = getattr(self, funcname)
+ lineFunc(renderer, gc, tpath, affine.frozen())
+
+ gc.restore()
+ renderer.close_group('line2d')
+
+
+
+class UnimplementedException(Exception):
+ pass
+
+from matplotlib.artist import Artist
+
+class AttributeCopier(object):
+ def __init__(self, ref_artist, klass=Artist):
+ self._klass = klass
+ self._ref_artist = ref_artist
+ super(AttributeCopier, self).__init__()
+
+ def set_ref_artist(self, artist):
+ self._ref_artist = artist
+
+ def get_ref_artist(self):
+ raise RuntimeError("get_ref_artist must overriden")
+ #return self._ref_artist
+
+ def get_attribute_from_ref_artist(self, attr_name, default_value):
+ get_attr_method_name = "get_"+attr_name
+ c = getattr(self._klass, get_attr_method_name)(self)
+ if c == 'auto':
+ ref_artist = self.get_ref_artist()
+ if ref_artist:
+ attr = getattr(ref_artist,
+ get_attr_method_name)()
+ return attr
+ else:
+ return default_value
+
+ return c
+
+
+from matplotlib.lines import Line2D
+
+class Ticks(Line2D, AttributeCopier):
+ """
+ Ticks are derived from Line2D, and note that ticks themselves
+ are markers. Thus, you should use set_mec, set_mew, etc.
+
+ To change the tick size (length), you need to use
+ set_ticksize. To change the direction of the ticks (ticks are
+ in opposite direction of ticklabels by default), use
+ set_tick_out(False).
+ """
+
+ def __init__(self, ticksize, tick_out=False, **kwargs):
+ self._ticksize = ticksize
+ self.locs_angles_labels = []
+
+ self.set_tick_out(tick_out)
+
+ self._axis = kwargs.pop("axis", None)
+ if self._axis is not None:
+ if "color" not in kwargs:
+ kwargs["color"] = "auto"
+ if ("mew" not in kwargs) and ("markeredgewidth" not in kwargs):
+ kwargs["markeredgewidth"] = "auto"
+
+ Line2D.__init__(self, [0.], [0.], **kwargs)
+ AttributeCopier.__init__(self, self._axis, klass=Line2D)
+ self.set_snap(True)
+
+ def get_ref_artist(self):
+ return self._ref_artist.get_ticklines()[0]
+
+ def get_color(self):
+ return self.get_attribute_from_ref_artist("color", "k")
+
+ def get_markeredgecolor(self):
+ if self._markeredgecolor == 'auto':
+ return self.get_color()
+ else:
+ return self._markeredgecolor
+
+ def get_markeredgewidth(self):
+ return self.get_attribute_from_ref_artist("markeredgewidth", .5)
+
+
+ def set_tick_out(self, b):
+ """
+ set True if tick need to be rotated by 180 degree.
+ """
+ self._tick_out = b
+
+ def get_tick_out(self):
+ """
+ Return True if the tick will be rotated by 180 degree.
+ """
+ return self._tick_out
+
+
+ def set_ticksize(self, ticksize):
+ """
+ set lenth of the ticks in points.
+ """
+ self._ticksize = ticksize
+
+
+ def get_ticksize(self):
+ """
+ Return length of the ticks in points.
+ """
+ return self._ticksize
+
+ def set_locs_angles(self, locs_angles):
+ self.locs_angles = locs_angles
+
+
+ def _update(self, renderer):
+ pass
+
+ _tickvert_path = Path([[0., 0.], [1., 0.]])
+
+ def draw(self, renderer):
+ if not self.get_visible():
+ return
+
+ self._update(renderer) # update the tick
+
+ size = self._ticksize
+ path_trans = self.get_transform()
+
+ # set gc : copied from lines.py
+# gc = renderer.new_gc()
+# self._set_gc_clip(gc)
+
+# gc.set_foreground(self.get_color())
+# gc.set_antialiased(self._antialiased)
+# gc.set_linewidth(self._linewidth)
+# gc.set_alpha(self._alpha)
+# if self.is_dashed():
+# cap = self._dashcapstyle
+# join = self._dashjoinstyle
+# else:
+# cap = self._solidcapstyle
+# join = self._solidjoinstyle
+# gc.set_joinstyle(join)
+# gc.set_capstyle(cap)
+# gc.set_snap(self.get_snap())
+
+
+ gc = renderer.new_gc()
+ self._set_gc_clip(gc)
+ gc.set_foreground(self.get_markeredgecolor())
+ gc.set_linewidth(self.get_markeredgewidth())
+ gc.set_alpha(self._alpha)
+
+ offset = renderer.points_to_pixels(size)
+ marker_scale = Affine2D().scale(offset, offset)
+
+ if self.get_tick_out():
+ add_angle = 180
+ else:
+ add_angle = 0
+
+ marker_rotation = Affine2D()
+ marker_transform = marker_scale + marker_rotation
+
+ for loc, angle in self.locs_angles:
+ marker_rotation.rotate_deg(angle+add_angle)
+ locs = path_trans.transform_non_affine(np.array([loc, loc]))
+ renderer.draw_markers(gc, self._tickvert_path, marker_transform,
+ Path(locs), path_trans.get_affine())
+ marker_rotation.clear()
+
+ gc.restore()
+
+
+def test_ticks():
+ import matplotlib.pyplot as plt
+ fig = plt.figure(1)
+ fig.clf()
+ ax = fig.add_subplot(111)
+ ax.xaxis.set_visible(False)
+ ax.yaxis.set_visible(False)
+ ticks = Ticks(ticksize=10, axis=ax.xaxis)
+ ax.add_artist(ticks)
+ locs_angles = [((0.2, 0.), 90),
+ ((0.4, 0.), 120)]
+ ticks.set_locs_angles(locs_angles)
+ plt.draw()
+
+
+
+
+class LabelBase(mtext.Text):
+ """
+ A base class for AxisLabel and TickLabels. The position and angle
+ of the text are calculated by to offset_ref_angle,
+ text_ref_angle, and offset_radius attributes.
+ """
+
+ def __init__(self, *kl, **kwargs):
+ self.locs_angles_labels = []
+ self._ref_angle = 0
+ self._offset_radius = 0.
+
+ super(LabelBase, self).__init__(*kl,
+ **kwargs)
+
+ self.set_rotation_mode("anchor")
+ self._text_follow_ref_angle = True
+ #self._offset_ref_angle = 0
+
+ def _set_ref_angle(self, a):
+ self._ref_angle = a
+
+ def _get_ref_angle(self):
+ return self._ref_angle
+
+ def _get_text_ref_angle(self):
+ if self._text_follow_ref_angle:
+ return self._get_ref_angle()+90
+ else:
+ return 0 #self.get_ref_angle()
+
+ def _get_offset_ref_angle(self):
+ return self._get_ref_angle()
+
+ def _set_offset_radius(self, offset_radius):
+ self._offset_radius = offset_radius
+
+ def _get_offset_radius(self):
+ return self._offset_radius
+
+ def _update(self, renderer):
+ pass
+
+ def draw(self, renderer):
+ if not self.get_visible(): return
+
+ self._update(renderer)
+
+ # save original and adjust some properties
+ tr = self.get_transform()
+ angle_orig = self.get_rotation()
+
+ offset_tr = Affine2D()
+ self.set_transform(tr+offset_tr)
+
+ text_ref_angle = self._get_text_ref_angle()
+ offset_ref_angle = self._get_offset_ref_angle()
+
+ theta = (offset_ref_angle)/180.*np.pi
+ dd = self._get_offset_radius()
+ dx, dy = dd * np.cos(theta), dd * np.sin(theta)
+ offset_tr.translate(dx, dy)
+ self.set_rotation(text_ref_angle+angle_orig)
+ super(LabelBase, self).draw(renderer)
+ offset_tr.clear()
+
+
+ # restore original properties
+ self.set_transform(tr)
+ self.set_rotation(angle_orig)
+
+
+ def get_window_extent(self, renderer):
+
+ self._update(renderer)
+
+ # save original and adjust some properties
+ tr = self.get_transform()
+ angle_orig = self.get_rotation()
+
+ offset_tr = Affine2D()
+ self.set_transform(tr+offset_tr)
+
+ text_ref_angle = self._get_text_ref_angle()
+ offset_ref_angle = self._get_offset_ref_angle()
+
+ theta = (offset_ref_angle)/180.*np.pi
+ dd = self._get_offset_radius()
+ dx, dy = dd * np.cos(theta), dd * np.sin(theta)
+ offset_tr.translate(dx, dy)
+ self.set_rotation(text_ref_angle+angle_orig)
+
+ bbox = super(LabelBase, self).get_window_extent(renderer)
+
+ offset_tr.clear()
+
+
+ # restore original properties
+ self.set_transform(tr)
+ self.set_rotation(angle_orig)
+
+ return bbox
+
+
+
+def test_labelbase():
+ import matplotlib.pyplot as plt
+ fig = plt.figure(1)
+ fig.clf()
+ ax = fig.add_subplot(111)
+
+ ax.plot([0.5], [0.5], "o")
+ label = LabelBase(0.5, 0.5, "Test")
+
+ a = -90
+ label._set_ref_angle(a)
+ label._set_offset_radius(offset_radius=50)
+ label.set_rotation(-90)
+ label.set(ha="center", va="top")
+
+ ax.add_artist(label)
+ plt.draw()
+
+
+
+
+
+
+
+
+
+class AxisLabel(LabelBase, AttributeCopier):
+ """
+ Axis Label. Derived from Text. The position of the text is updated
+ in the fly, so chaning text position has no effect. Otherwise, the
+ properties can be changed as a normal Text.
+
+ To change the pad between ticklabels and axis label, use set_pad.
+ """
+
+ def __init__(self, *kl, **kwargs):
+
+ axis_direction = kwargs.pop("axis_direction", "bottom")
+ self._axis = kwargs.pop("axis", None)
+ #super(AxisLabel, self).__init__(*kl, **kwargs)
+ LabelBase.__init__(self, *kl, **kwargs)
+ AttributeCopier.__init__(self, self._axis, klass=LabelBase)
+
+ self.set_axis_direction(axis_direction)
+ self._pad = 5
+ self._extra_pad = 0
+
+ def set_pad(self, pad):
+ """
+ Set the pad in points. Note that the actual pad will be the
+ sum of the internal pad and the external pad (that are set
+ automatically by the AxisArtist), and it only set the internal
+ pad
+ """
+ self._pad = pad
+
+ def get_pad(self):
+ """
+ return pad in points. See set_pad for more details.
+ """
+ return self._pad
+
+
+ def _set_external_pad(self, p):
+ """
+ Set external pad IN PIXELS. This is intended to be set by the
+ AxisArtist, bot by user..
+ """
+ self._extra_pad = p
+
+ def _get_external_pad(self):
+ """
+ Get external pad.
+ """
+ return self._extra_pad
+
+
+ def get_ref_artist(self):
+ return self._axis.get_label()
+
+
+ def get_text(self):
+ t = super(AxisLabel, self).get_text()
+ if t == "__from_axes__":
+ return self._axis.get_label().get_text()
+ return self._text
+
+ _default_alignments = dict(left=("bottom", "center"),
+ right=("top", "center"),
+ bottom=("top", "center"),
+ top=("bottom", "center"))
+
+
+
+ def set_default_alignment(self, d):
+ if d not in ["left", "right", "top", "bottom"]:
+ raise ValueError('direction must be on of "left", "right", "top", "bottom"')
+
+ va, ha = self._default_alignments[d]
+ self.set_va(va)
+ self.set_ha(ha)
+
+
+ _default_angles = dict(left=180,
+ right=0,
+ bottom=0,
+ top=180)
+
+
+ def set_default_angle(self, d):
+ if d not in ["left", "right", "top", "bottom"]:
+ raise ValueError('direction must be on of "left", "right", "top", "bottom"')
+
+ self.set_rotation(self._default_angles[d])
+
+
+ def set_axis_direction(self, d):
+ """
+ Adjust the text angle and text alignment of axis label
+ according to the matplotlib convention.
+
+
+ ===================== ========== ========= ========== ==========
+ property left bottom right top
+ ===================== ========== ========= ========== ==========
+ axislabel angle 180 0 0 180
+ axislabel va center top center btoom
+ axislabel ha right center right center
+ ===================== ========== ========= ========== ==========
+
+ Note that the text angles are actually relative to (90 + angle
+ of the direction to the ticklabel), which gives 0 for bottom
+ axis.
+
+ """
+ if d not in ["left", "right", "top", "bottom"]:
+ raise ValueError('direction must be on of "left", "right", "top", "bottom"')
+
+ self.set_default_alignment(d)
+ self.set_default_angle(d)
+
+ def get_color(self):
+ return self.get_attribute_from_ref_artist("color", "k")
+
+ def draw(self, renderer):
+ if not self.get_visible():
+ return
+
+ pad = renderer.points_to_pixels(self.get_pad())
+ r = self._get_external_pad() + pad
+ self._set_offset_radius(r)
+
+ super(AxisLabel, self).draw(renderer)
+
+
+class TickLabels(AxisLabel, AttributeCopier): # mtext.Text
+ """
+ Tick Labels. While derived from Text, this single artist draws all
+ ticklabels. As in AxisLabel, the position of the text is updated
+ in the fly, so changing text position has no effect. Otherwise,
+ the properties can be changed as a normal Text. Unlike the
+ ticklabels of the mainline matplotlib, properties of single
+ ticklabel alone cannot modified.
+
+ To change the pad between ticks and ticklabels, use set_pad.
+ """
+
+ def __init__(self, **kwargs):
+
+ axis_direction = kwargs.pop("axis_direction", "bottom")
+ AxisLabel.__init__(self, **kwargs)
+ self.set_axis_direction(axis_direction)
+ #self._axis_direction = axis_direction
+ self._axislabel_pad = 0
+ #self._extra_pad = 0
+
+
+ # attribute coper
+ def get_ref_artist(self):
+ return self._axis.get_ticklabels()[0]
+
+ def set_axis_direction(self, label_direction):
+ """
+ Adjust the text angle and text alignment of ticklabels
+ according to the matplotlib convention.
+
+ The *label_direction* must be one of [left, right, bottom,
+ top].
+
+ ===================== ========== ========= ========== ==========
+ property left bottom right top
+ ===================== ========== ========= ========== ==========
+ ticklabels angle 90 0 -90 180
+ ticklabel va center baseline center baseline
+ ticklabel ha right center right center
+ ===================== ========== ========= ========== ==========
+
+
+ Note that the text angles are actually relative to (90 + angle
+ of the direction to the ticklabel), which gives 0 for bottom
+ axis.
+
+ """
+
+ if label_direction not in ["left", "right", "top", "bottom"]:
+ raise ValueError('direction must be one of "left", "right", "top", "bottom"')
+
+ self._axis_direction = label_direction
+ self.set_default_alignment(label_direction)
+ self.set_default_angle(label_direction)
+
+ def _get_ticklabels_offsets(self, renderer, label_direction):
+ """
+ Calculates the offsets of the ticklabels from the tick and
+ their total heights. The offset only takes account the offset
+ due to the vertical alignment of the ticklabels, i.e.,if axis
+ direction is bottom and va is ;top', it will return 0. if va
+ is 'baseline', it will return (height-descent).
+ """
+ whd_list = self.get_texts_widths_heights_descents(renderer)
+
+ if not whd_list:
+ return 0, 0
+
+ r = 0
+ va, ha = self.get_va(), self.get_ha()
+
+ if label_direction == "left":
+ pad = max([w for (w, h, d) in whd_list])
+ if ha == "left":
+ r = pad
+ elif ha == "center":
+ r = .5 * pad
+ elif label_direction == "right":
+ pad = max([w for (w, h, d) in whd_list])
+ if ha == "right":
+ r = pad
+ elif ha == "center":
+ r = .5 * pad
+ elif label_direction == "bottom":
+ pad = max([h for (w, h, d) in whd_list])
+ if va == "bottom":
+ r = pad
+ elif va == "center":
+ r =.5 * pad
+ elif va == "baseline":
+ max_ascent = max([(h-d) for (w, h, d) in whd_list])
+ max_descent = max([d for (w, h, d) in whd_list])
+ r = max_ascent
+ pad = max_ascent + max_descent
+ elif label_direction == "top":
+ pad = max([h for (w, h, d) in whd_list])
+ if va == "top":
+ r = pad
+ elif va == "center":
+ r =.5 * pad
+ elif va == "baseline":
+ max_ascent = max([(h-d) for (w, h, d) in whd_list])
+ max_descent = max([d for (w, h, d) in whd_list])
+ r = max_descent
+ pad = max_ascent + max_descent
+
+ #tick_pad = renderer.points_to_pixels(self.get_pad())
+
+ # r : offset
+
+ # pad : total height of the ticklabels. This will be used to
+ # calculate the pad for the axislabel.
+ return r, pad
+
+
+
+ _default_alignments = dict(left=("center", "right"),
+ right=("center", "left"),
+ bottom=("baseline", "center"),
+ top=("baseline", "center"))
+
+
+
+ # set_default_alignments(self, d)
+
+ _default_angles = dict(left=90,
+ right=-90,
+ bottom=0,
+ top=180)
+
+
+ def draw(self, renderer):
+ if not self.get_visible():
+ self._axislabel_pad = self._get_external_pad()
+ return
+
+ r, total_width = self._get_ticklabels_offsets(renderer,
+ self._axis_direction)
+
+ #self._set_external_pad(r+self._get_external_pad())
+ pad = self._get_external_pad() + \
+ renderer.points_to_pixels(self.get_pad())
+ self._set_offset_radius(r+pad)
+
+ #self._set_offset_radius(r)
+
+ for (x, y), a, l in self._locs_angles_labels:
+ self._set_ref_angle(a) #+ add_angle
+ self.set_x(x)
+ self.set_y(y)
+ self.set_text(l)
+ LabelBase.draw(self, renderer)
+
+ self._axislabel_pad = total_width \
+ + pad # the value saved will be used to draw axislabel.
+
+
+ def set_locs_angles_labels(self, locs_angles_labels):
+ self._locs_angles_labels = locs_angles_labels
+
+ def get_window_extents(self, renderer):
+
+ bboxes = []
+
+ r, total_width = self._get_ticklabels_offsets(renderer,
+ self._axis_direction)
+
+ pad = self._get_external_pad() + \
+ renderer.points_to_pixels(self.get_pad())
+ self._set_offset_radius(r+pad)
+
+
+ for (x, y), a, l in self._locs_angles_labels:
+ self._set_ref_angle(a) #+ add_angle
+ self.set_x(x)
+ self.set_y(y)
+ self.set_text(l)
+ bb = LabelBase.get_window_extent(self, renderer)
+ bboxes.append(bb)
+
+ return bboxes
+
+
+ def get_texts_widths_heights_descents(self, renderer):
+ """
+ return a list of width, height, descent for ticklaels.
+ """
+ whd_list = []
+ for (x, y), a, l in self._locs_angles_labels:
+ clean_line, ismath = self.is_math_text(l)
+ whd = renderer.get_text_width_height_descent(
+ clean_line, self._fontproperties, ismath=ismath)
+ whd_list.append(whd)
+
+ return whd_list
+
+
+
+def test_ticklabels():
+ import matplotlib.pyplot as plt
+ fig = plt.figure(1)
+ fig.clf()
+ ax = fig.add_subplot(111)
+ ax.xaxis.set_visible(False)
+ ax.yaxis.set_visible(False)
+ ax.plot([0.2, 0.4], [0.5, 0.5], "o")
+ ticks = Ticks(ticksize=10, axis=ax.xaxis)
+ ax.add_artist(ticks)
+ locs_angles_labels = [((0.2, 0.5), -90, "0.2"),
+ ((0.4, 0.5), -120, "0.4")]
+ tick_locs_angles = [(xy, a+180) for xy, a, l in locs_angles_labels]
+ ticks.set_locs_angles(tick_locs_angles)
+
+
+ ax.plot([0.5], [0.5], ",")
+ axislabel = AxisLabel(0.5, 0.5, "Test")
+ axislabel._set_offset_radius(20)
+ axislabel._set_ref_angle(0)
+ axislabel.set_axis_direction("bottom")
+ #axislabel._text_follow_ref_angle = True
+ #axislabel.set(va="center", ha="right")
+ ax.add_artist(axislabel)
+
+ if 1:
+ ticklabels = TickLabels(axis_direction="left")
+ ticklabels._locs_angles_labels = locs_angles_labels
+ #ticklabels.set_rotation(90)
+ ticklabels.set_pad(10)
+
+ ax.add_artist(ticklabels)
+
+ ax.set_xlim(0, 1); ax.set_ylim(0, 1)
+
+ plt.draw()
+
+
+
+
+class GridlinesCollection(LineCollection):
+ def __init__(self, *kl, **kwargs):
+ super(GridlinesCollection, self).__init__(*kl, **kwargs)
+ self.set_grid_helper(None)
+
+ def set_grid_helper(self, grid_helper):
+ self._grid_helper = grid_helper
+
+ def draw(self, renderer):
+ if self._grid_helper is not None:
+ self._grid_helper.update_lim(self.axes)
+ gl = self._grid_helper.get_gridlines()
+ if gl:
+ self.set_segments([np.transpose(l) for l in gl])
+ else:
+ self.set_segments([])
+ super(GridlinesCollection, self).draw(renderer)
+
+
+
+
+class AxisArtist(martist.Artist):
+ """
+ An artist which draws axis (a line along which the n-th axes coord
+ is constant) line, ticks, ticklabels, and axis label.
+ """
+
+ ZORDER=2.5
+
+ # LABELPAD : as property
+ def _set_labelpad(self, v):
+ return self.label.set_pad(v)
+
+ def _get_labelpad(self):
+ return self.label.get_pad()
+
+ LABELPAD = property(_get_labelpad, _set_labelpad)
+
+ def __init__(self, axes,
+ helper,
+ offset=None,
+ axis_direction="bottom",
+ **kw):
+ """
+ *axes* : axes
+ *helper* : an AxisArtistHelper instance.
+ """
+ #axes is also used to follow the axis attribute (tick color, etc).
+
+ super(AxisArtist, self).__init__(**kw)
+
+ self.axes = axes
+
+ self._axis_artist_helper = helper
+
+ if offset is None:
+ offset = (0, 0)
+ self.dpi_transform = Affine2D()
+ self.offset_transform = ScaledTranslation(offset[0], offset[1],
+ self.dpi_transform)
+
+ self._label_visible = True
+ self._majortick_visible = True
+ self._majorticklabel_visible = True
+ self._minortick_visible = True
+ self._minorticklabel_visible = True
+
+
+ #if self._axis_artist_helper._loc in ["left", "right"]:
+ if axis_direction in ["left", "right"]:
+ axis_name = "ytick"
+ self.axis = axes.yaxis
+ else:
+ axis_name = "xtick"
+ self.axis = axes.xaxis
+
+
+ self._axisline_style = None
+
+
+ self._axis_direction = axis_direction
+
+
+ self._init_line()
+ self._init_ticks(axis_name, **kw)
+ self._init_offsetText(axis_direction)
+ self._init_label()
+
+ self.set_zorder(self.ZORDER)
+
+ self._rotate_label_along_line = False
+
+ # axis direction
+ self._tick_add_angle = 180.
+ self._ticklabel_add_angle = 0.
+ self._axislabel_add_angle = 0.
+ self.set_axis_direction(axis_direction)
+
+
+ # axis direction
+
+ def set_axis_direction(self, axis_direction):
+ """
+ Adjust the direction, text angle, text alignment of
+ ticklabels, labels following the matplotlib convention for
+ the rectangle axes.
+
+ The *axis_direction* must be one of [left, right, bottom,
+ top].
+
+ ===================== ========== ========= ========== ==========
+ property left bottom right top
+ ===================== ========== ========= ========== ==========
+ ticklabels location "-" "+" "+" "-"
+ axislabel location "-" "+" "+" "-"
+ ticklabels angle 90 0 -90 180
+ ticklabel va center baseline center baseline
+ ticklabel ha right center right center
+ axislabel angle 180 0 0 180
+ axislabel va center top center btoom
+ axislabel ha right center right center
+ ===================== ========== ========= ========== ==========
+
+
+ Note that the direction "+" and "-" are relative to the direction of
+ the increasing coordinate. Also, the text angles are actually
+ relative to (90 + angle of the direction to the ticklabel),
+ which gives 0 for bottom axis.
+
+ """
+
+ if axis_direction not in ["left", "right", "top", "bottom"]:
+ raise ValueError('direction must be on of "left", "right", "top", "bottom"')
+ self._axis_direction = axis_direction
+ if axis_direction in ["left", "top"]:
+ #self._set_tick_direction("+")
+ self.set_ticklabel_direction("-")
+ self.set_axislabel_direction("-")
+ else:
+ #self._set_tick_direction("-")
+ self.set_ticklabel_direction("+")
+ self.set_axislabel_direction("+")
+
+ self.major_ticklabels.set_axis_direction(axis_direction)
+ self.label.set_axis_direction(axis_direction)
+
+ # def _set_tick_direction(self, d):
+ # if d not in ["+", "-"]:
+ # raise ValueError('direction must be on of "in", "out"')
+
+ # if d == "+":
+ # self._tick_add_angle = 0 #get_helper()._extremes=0, 10
+ # else:
+ # self._tick_add_angle = 180 #get_helper()._extremes=0, 10
+
+ def set_ticklabel_direction(self, tick_direction):
+ """
+ Adjust the direction of the ticklabel.
+
+ ACCEPTS: [ "+" | "-" ]
+
+ Note that the label_direction '+' and '-' are relative to the
+ direction of the increasing coordinate.
+ """
+
+ if tick_direction not in ["+", "-"]:
+ raise ValueError('direction must be one of "+", "-"')
+
+ if tick_direction == "-":
+ self._ticklabel_add_angle = 180
+ else:
+ self._ticklabel_add_angle = 0
+
+ def set_axislabel_direction(self, label_direction):
+ """
+ Adjust the direction of the axislabel.
+
+ ACCEPTS: [ "+" | "-" ]
+
+ Note that the label_direction '+' and '-' are relative to the
+ direction of the increasing coordinate.
+ """
+ if label_direction not in ["+", "-"]:
+ raise ValueError('direction must be one of "+", "-"')
+
+ if label_direction == "-":
+ self._axislabel_add_angle = 180
+ else:
+ self._axislabel_add_angle = 0
+
+
+
+ def get_transform(self):
+ return self.axes.transAxes + self.offset_transform
+
+ def get_helper(self):
+ """
+ Return axis artist helper instance.
+ """
+ return self._axis_artist_helper
+
+
+ def set_axisline_style(self, axisline_style=None, **kw):
+ """
+ Set the axisline style.
+
+ *axisline_style* can be a string with axisline style name with optional
+ comma-separated attributes. Alternatively, the attrs can
+ be provided as keywords.
+
+ set_arrowstyle("->,size=1.5")
+ set_arrowstyle("->", size=1.5)
+
+ Old attrs simply are forgotten.
+
+ Without argument (or with arrowstyle=None), return
+ available styles as a list of strings.
+ """
+
+ if axisline_style==None:
+ return AxislineStyle.pprint_styles()
+
+ if isinstance(axisline_style, AxislineStyle._Base):
+ self._axisline_style = axisline_style
+ else:
+ self._axisline_style = AxislineStyle(axisline_style, **kw)
+
+
+ self._init_line()
+
+
+ def get_axisline_style(self):
+ """
+ return the current axisline style.
+ """
+ return self._axisline_style
+
+ def _init_line(self):
+ """
+ Initialize the *line* artist that is responsible to draw the axis line.
+ """
+ tran = self._axis_artist_helper.get_line_transform(self.axes) \
+ + self.offset_transform
+
+ axisline_style = self.get_axisline_style()
+ if axisline_style is None:
+ self.line = BezierPath(self._axis_artist_helper.get_line(self.axes),
+ color=rcParams['axes.edgecolor'],
+ linewidth=rcParams['axes.linewidth'],
+ transform=tran)
+ else:
+ self.line = axisline_style(self, transform=tran)
+
+ def _draw_line(self, renderer):
+ self.line.set_path(self._axis_artist_helper.get_line(self.axes))
+ if self.get_axisline_style() is not None:
+ self.line.set_line_mutation_scale(self.major_ticklabels.get_size())
+ self.line.draw(renderer)
+
+
+ def _init_ticks(self, axis_name, **kw):
+
+ trans=self._axis_artist_helper.get_tick_transform(self.axes) \
+ + self.offset_transform
+
+
+ major_tick_size = kw.get("major_tick_size",
+ rcParams['%s.major.size'%axis_name])
+ major_tick_pad = kw.get("major_tick_pad",
+ rcParams['%s.major.pad'%axis_name])
+ minor_tick_size = kw.get("minor_tick_size",
+ rcParams['%s.minor.size'%axis_name])
+ minor_tick_pad = kw.get("minor_tick_pad",
+ rcParams['%s.minor.pad'%axis_name])
+
+ self.major_ticks = Ticks(major_tick_size,
+ axis=self.axis,
+ transform=trans)
+ self.minor_ticks = Ticks(minor_tick_size,
+ axis=self.axis,
+ transform=trans)
+
+ if axis_name == "xaxis":
+ size = rcParams['xtick.labelsize']
+ else:
+ size = rcParams['ytick.labelsize']
+
+
+ fontprops = font_manager.FontProperties(size=size)
+
+ self.major_ticklabels = TickLabels(size=size, axis=self.axis,
+ axis_direction=self._axis_direction)
+ self.minor_ticklabels = TickLabels(size=size, axis=self.axis,
+ axis_direction=self._axis_direction)
+
+
+ self.major_ticklabels.set(figure = self.axes.figure,
+ transform=trans,
+ fontproperties=fontprops)
+ self.major_ticklabels.set_pad(major_tick_pad)
+
+ self.minor_ticklabels.set(figure = self.axes.figure,
+ transform=trans,
+ fontproperties=fontprops)
+ self.minor_ticklabels.set_pad(minor_tick_pad)
+
+
+
+ def _get_tick_info(self, tick_iter):
+ """
+ return ticks_loc_angle, ticklabels_loc_angle_label
+
+ ticks_loc_angle : list of locs and angles for ticks
+ ticklabels_loc_angle_label : list of locs, angles and labels for tickslabels
+ """
+ ticks_loc_angle = []
+ ticklabels_loc_angle_label = []
+
+ tick_add_angle = self._tick_add_angle
+ ticklabel_add_angle = self._ticklabel_add_angle
+
+ for loc, angle_normal, angle_tangent, label in tick_iter:
+ angle_label = angle_tangent - 90
+ angle_label += ticklabel_add_angle
+
+ if np.cos((angle_label - angle_normal)/180.*np.pi) < 0.:
+ angle_tick = angle_normal
+ else:
+ angle_tick = angle_normal + 180
+
+ ticks_loc_angle.append([loc, angle_tick])
+ ticklabels_loc_angle_label.append([loc, angle_label, label])
+
+ return ticks_loc_angle, ticklabels_loc_angle_label
+
+
+ def _draw_ticks(self, renderer):
+
+
+ # set extra pad for major and minor ticklabels:
+ # use ticksize of majorticks even for minor ticks. not clear what is best.
+
+ if self.major_ticks.get_visible() and self.major_ticks.get_tick_out():
+ self.major_ticklabels._set_external_pad(self.major_ticks._ticksize)
+ self.minor_ticklabels._set_external_pad(self.major_ticks._ticksize)
+ else:
+ self.major_ticklabels._set_external_pad(0)
+ self.minor_ticklabels._set_external_pad(0)
+
+
+ majortick_iter, minortick_iter = \
+ self._axis_artist_helper.get_tick_iterators(self.axes)
+
+ tick_loc_angle, ticklabel_loc_angle_label \
+ = self._get_tick_info(majortick_iter)
+
+ self.major_ticks.set_locs_angles(tick_loc_angle)
+ self.major_ticklabels.set_locs_angles_labels(ticklabel_loc_angle_label)
+
+ self.major_ticks.draw(renderer)
+ self.major_ticklabels.draw(renderer)
+
+
+ # minor ticks
+ tick_loc_angle, ticklabel_loc_angle_label \
+ = self._get_tick_info(minortick_iter)
+
+ self.minor_ticks.set_locs_angles(tick_loc_angle)
+ self.minor_ticklabels.set_locs_angles_labels(ticklabel_loc_angle_label)
+
+ self.minor_ticks.draw(renderer)
+ self.minor_ticklabels.draw(renderer)
+
+
+ if (self.major_ticklabels.get_visible() or self.minor_ticklabels.get_visible()):
+ self._draw_offsetText(renderer)
+
+ return self.major_ticklabels.get_window_extents(renderer)
+
+
+
+
+ _offsetText_pos = dict(left=(0, 1, "bottom", "right"),
+ right=(1, 1, "bottom", "left"),
+ bottom=(1, 0, "top", "right"),
+ top=(1, 1, "bottom", "right"))
+
+ def _init_offsetText(self, direction):
+
+ x,y,va,ha = self._offsetText_pos[direction]
+
+ self.offsetText = mtext.Annotation("",
+ xy=(x,y), xycoords="axes fraction",
+ xytext=(0,0), textcoords="offset points",
+ #fontproperties = fp,
+ color = rcParams['xtick.color'],
+ verticalalignment=va,
+ horizontalalignment=ha,
+ )
+ self.offsetText.set_transform(IdentityTransform())
+ self.axes._set_artist_props(self.offsetText)
+
+
+ def _update_offsetText(self):
+ self.offsetText.set_text( self.axis.major.formatter.get_offset() )
+ self.offsetText.set_size(self.major_ticklabels.get_size())
+ offset = self.major_ticklabels.get_pad() + self.major_ticklabels.get_size() + 2.
+ self.offsetText.xytext= (0, offset)
+
+
+ def _draw_offsetText(self, renderer):
+ self._update_offsetText()
+ self.offsetText.draw(renderer)
+
+
+
+ def _init_label(self, **kw):
+ # x in axes coords, y in display coords (to be updated at draw
+ # time by _update_label_positions)
+
+ labelsize = kw.get("labelsize",
+ rcParams['axes.labelsize'])
+ #labelcolor = kw.get("labelcolor",
+ # rcParams['axes.labelcolor'])
+ fontprops = font_manager.FontProperties(size=labelsize)
+ textprops = dict(fontproperties = fontprops)
+ #color = labelcolor)
+
+ tr = self._axis_artist_helper.get_axislabel_transform(self.axes) \
+ + self.offset_transform
+
+ self.label = AxisLabel(0, 0, "__from_axes__",
+ color = "auto", #rcParams['axes.labelcolor'],
+ fontproperties=fontprops,
+ axis=self.axis,
+ transform=tr,
+ axis_direction=self._axis_direction,
+ )
+
+ self.label.set_figure(self.axes.figure)
+
+ labelpad = kw.get("labelpad", 5)
+ self.label.set_pad(labelpad)
+
+ def _draw_label(self, renderer):
+
+ if not self.label.get_visible():
+ return
+
+ fontprops = font_manager.FontProperties(size=rcParams['axes.labelsize'])
+
+ #pad_points = self.major_tick_pad
+
+ axislabel_pad = max([self.major_ticklabels._axislabel_pad,
+ self.minor_ticklabels._axislabel_pad])
+
+ #label_offset = axislabel_pad + self.LABELPAD
+
+ #self.label._set_offset_radius(label_offset)
+ self.label._set_external_pad(axislabel_pad)
+
+ xy, angle_tangent = self._axis_artist_helper.get_axislabel_pos_angle(self.axes)
+ if xy is None: return
+
+ angle_label = angle_tangent - 90
+
+
+ x, y = xy
+ self.label._set_ref_angle(angle_label+self._axislabel_add_angle)
+ self.label.set(x=x, y=y)
+ self.label.draw(renderer)
+
+
+
+ def set_label(self, s):
+ self.label.set_text(s)
+
+
+ @allow_rasterization
+ def draw(self, renderer):
+ 'Draw the axis lines, tick lines and labels'
+
+ if not self.get_visible(): return
+
+ renderer.open_group(__name__)
+
+ self._axis_artist_helper.update_lim(self.axes)
+
+ dpi_cor = renderer.points_to_pixels(1.)
+ self.dpi_transform.clear().scale(dpi_cor, dpi_cor)
+
+
+ self._draw_line(renderer)
+ self._draw_ticks(renderer)
+
+ #self._draw_offsetText(renderer)
+ self._draw_label(renderer)
+
+ renderer.close_group(__name__)
+
+ #def get_ticklabel_extents(self, renderer):
+ # pass
+
+ def toggle(self, all=None, ticks=None, ticklabels=None, label=None):
+ """
+ Toggle visibility of ticks, ticklabels, and (axis) label.
+ To turn all off, ::
+
+ axis.toggle(all=False)
+
+ To turn all off but ticks on ::
+
+ axis.toggle(all=False, ticks=True)
+
+ To turn all on but (axis) label off ::
+
+ axis.toggle(all=True, label=False))
+
+ """
+ if all:
+ _ticks, _ticklabels, _label = True, True, True
+ elif all is not None:
+ _ticks, _ticklabels, _label = False, False, False
+ else:
+ _ticks, _ticklabels, _label = None, None, None
+
+ if ticks is not None:
+ _ticks = ticks
+ if ticklabels is not None:
+ _ticklabels = ticklabels
+ if label is not None:
+ _label = label
+
+ if _ticks is not None:
+ self.major_ticks.set_visible(_ticks)
+ self.minor_ticks.set_visible(_ticks)
+ if _ticklabels is not None:
+ self.major_ticklabels.set_visible(_ticklabels)
+ self.minor_ticklabels.set_visible(_ticklabels)
+ if _label is not None:
+ self.label.set_visible(_label)
+
+
+
+
+
+def test_axis_artist():
+ global axisline
+
+ #self._axislines[loc] = new_fixed_axis(loc=loc, axes=axes)
+ from mpl_toolkits.axes_grid.axislines import AxisArtistHelperRectlinear
+ fig = plt.figure(1)
+ fig.clf()
+ ax=fig.add_subplot(111)
+ ax.xaxis.set_visible(False)
+ ax.yaxis.set_visible(False)
+
+ if 1:
+
+ _helper = AxisArtistHelperRectlinear.Fixed(ax, loc="left")
+ axisline = AxisArtist(ax, _helper, offset=None, axis_direction="left")
+ ax.add_artist(axisline)
+ _helper = AxisArtistHelperRectlinear.Fixed(ax, loc="right")
+ axisline = AxisArtist(ax, _helper, offset=None, axis_direction="right")
+ ax.add_artist(axisline)
+
+ _helper = AxisArtistHelperRectlinear.Fixed(ax, loc="bottom")
+ axisline = AxisArtist(ax, _helper, offset=None, axis_direction="bottom")
+ axisline.set_label("TTT")
+ #axisline.label.set_visible(False)
+ ax.add_artist(axisline)
+
+ #axisline.major_ticklabels.set_axis_direction("bottom")
+ axisline.major_ticks.set_tick_out(False)
+
+ ax.set_ylabel("Test")
+
+ axisline.label.set_pad(5)
+
+
+ plt.draw()
+
+def test_axis_artist2():
+ global axisline
+
+ #self._axislines[loc] = new_fixed_axis(loc=loc, axes=axes)
+ from mpl_toolkits.axes_grid.axislines import AxisArtistHelperRectlinear
+ fig = plt.figure(1)
+ fig.clf()
+ ax=fig.add_subplot(111)
+ ax.xaxis.set_visible(False)
+ ax.yaxis.set_visible(False)
+
+
+ _helper = AxisArtistHelperRectlinear.Fixed(ax, loc="bottom")
+ axisline = AxisArtist(ax, _helper, offset=None, axis_direction="bottom")
+ axisline.set_label("TTT")
+ ax.add_artist(axisline)
+
+ #axisline.major_ticklabels.set_axis_direction("bottom")
+ axisline.major_ticks.set_tick_out(False)
+
+
+ ax.set_ylabel("Test")
+
+ plt.draw()
+
+if __name__ == "__main__":
+ #test_labelbase()
+ #test_ticklabels()
+ test_axis_artist()
+ #test_axis_artist2()
+
+
+# DONE
+# *. ticks, ticklabels, axislabels
+# *. workon axisartist
+
+# TODO
Modified: trunk/matplotlib/lib/mpl_toolkits/axes_grid/axisline_style.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/axes_grid/axisline_style.py 2009-12-05 17:47:26 UTC (rev 8007)
+++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/axisline_style.py 2009-12-07 01:16:36 UTC (rev 8008)
@@ -3,6 +3,83 @@
from matplotlib.path import Path
import numpy as np
+class _FancyAxislineStyle:
+ class SimpleArrow(FancyArrowPatch):
+ """
+ The artist class that will be returend for SimpleArrow style.
+ """
+ _ARROW_STYLE = "->"
+
+ def __init__(self, axis_artist, line_path, transform,
+ line_mutation_scale):
+ self._axis_artist = axis_artist
+ self._line_transform = transform
+ self._line_path = line_path
+ self._line_mutation_scale = line_mutation_scale
+
+ FancyArrowPatch.__init__(self,
+ path=self._line_path,
+ arrowstyle=self._ARROW_STYLE,
+ arrow_transmuter=None,
+ patchA=None,
+ patchB=None,
+ shrinkA=0.,
+ shrinkB=0.,
+ mutation_scale=line_mutation_scale,
+ mutation_aspect=None,
+ transform=IdentityTransform(),
+ )
+
+ def set_line_mutation_scale(self, scale):
+ self.set_mutation_scale(scale*self._line_mutation_scale)
+
+ def _extend_path(self, path, mutation_size=10):
+ """
+ Extend the path to make a room for drawing arrow.
+ """
+ from matplotlib.bezier import get_cos_sin
+
+ x0, y0 = path.vertices[-2]
+ x1, y1 = path.vertices[-1]
+ cost, sint = get_cos_sin(x0, y0, x1, y1)
+
+ d = mutation_size * 1.
+ x2, y2 = x1 + cost*d, y1+sint*d
+
+ if path.codes is None:
+ _path = Path(np.concatenate([path.vertices, [[x2, y2]]]))
+ else:
+ _path = Path(np.concatenate([path.vertices, [[x2, y2]]]),
+ np.concatenate([path.codes, [Path.LINETO]]))
+
+ return _path
+
+ def set_path(self, path):
+ self._line_path = path
+
+ def draw(self, renderer):
+ """
+ Draw the axis line.
+ 1) transform the path to the display cooridnate.
+ 2) extend the path to make a room for arrow
+ 3) update the path of the FancyArrowPatch.
+ 4) draw
+ """
+ path_in_disp = self._line_transform.transform_path(self._line_path)
+ mutation_size = self.get_mutation_scale() #line_mutation_scale()
+ extented_path = self._extend_path(path_in_disp,
+ mutation_size=mutation_size)
+
+ self._path_original = extented_path
+ FancyArrowPatch.draw(self, renderer)
+
+ class FilledArrow(SimpleArrow):
+ """
+ The artist class that will be returend for SimpleArrow style.
+ """
+ _ARROW_STYLE = "-|>"
+
+
class AxislineStyle(_Style):
"""
:class:`AxislineStyle` is a container class which defines style classes
@@ -18,14 +95,14 @@
def set_path(self, path):
# set the path for axisline.
-
+
def set_line_mutation_scale(self, scale):
# set the scale
-
+
def draw(self, renderer):
# draw
-
+
"""
_style_list = {}
@@ -52,82 +129,15 @@
"""
return self.new_line(axis_artist, transform)
-
+
class SimpleArrow(_Base):
"""
A simple arrow.
"""
+ ArrowAxisClass = _FancyAxislineStyle.SimpleArrow
- class ArrowAxisline(FancyArrowPatch):
- """
- The artist class that will be returend for SimpleArrow style.
- """
- def __init__(self, axis_artist, line_path, transform,
- line_mutation_scale):
- self._axis_artist = axis_artist
- self._line_transform = transform
- self._line_path = line_path
- self._line_mutation_scale = line_mutation_scale
-
- FancyArrowPatch.__init__(self,
- path=self._line_path,
- arrowstyle="->",
- arrow_transmuter=None,
- patchA=None,
- patchB=None,
- shrinkA=0.,
- shrinkB=0.,
- mutation_scale=line_mutation_scale,
- mutation_aspect=None,
- transform=IdentityTransform(),
- )
-
- def set_line_mutation_scale(self, scale):
- self.set_mutation_scale(scale*self._line_mutation_scale)
-
- def _extend_path(self, path, mutation_size=10):
- """
- Extend the path to make a room for drawing arrow.
- """
- from matplotlib.bezier import get_cos_sin
-
- x0, y0 = path.vertices[-2]
- x1, y1 = path.vertices[-1]
- cost, sint = get_cos_sin(x0, y0, x1, y1)
-
- d = mutation_size * 1.
- x2, y2 = x1 + cost*d, y1+sint*d
-
- if path.codes is None:
- _path = Path(np.concatenate([path.vertices, [[x2, y2]]]))
- else:
- _path = Path(np.concatenate([path.vertices, [[x2, y2]]]),
- np.concatenate([path.codes, [Path.LINETO]]))
-
- return _path
-
- def set_path(self, path):
- self._line_path = path
-
- def draw(self, renderer):
- """
- Draw the axis line.
- 1) transform the path to the display cooridnate.
- 2) extend the path to make a room for arrow
- 3) update the path of the FancyArrowPatch.
- 4) draw
- """
- path_in_disp = self._line_transform.transform_path(self._line_path)
- mutation_size = self.get_mutation_scale() #line_mutation_scale()
- extented_path = self._extend_path(path_in_disp,
- mutation_size=mutation_size)
-
- self._path_original = extented_path
- FancyArrowPatch.draw(self, renderer)
-
-
def __init__(self, size=1):
"""
*size*
@@ -140,9 +150,15 @@
def new_line(self, axis_artist, transform):
linepath = Path([(0,0), (0, 1)])
- axisline = self.ArrowAxisline(axis_artist, linepath, transform,
- line_mutation_scale=self.size)
+ axisline = self.ArrowAxisClass(axis_artist, linepath, transform,
+ line_mutation_scale=self.size)
return axisline
-
+
_style_list["->"] = SimpleArrow
+
+ class FilledArrow(SimpleArrow):
+ ArrowAxisClass = _FancyAxislineStyle.FilledArrow
+
+ _style_list["-|>"] = FilledArrow
+
Modified: trunk/matplotlib/lib/mpl_toolkits/axes_grid/axislines.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/axes_grid/axislines.py 2009-12-05 17:47:26 UTC (rev 8007)
+++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/axislines.py 2009-12-07 01:16:36 UTC (rev 8008)
@@ -66,63 +66,8 @@
from axisline_style import AxislineStyle
-class BezierPath(mlines.Line2D):
+from axis_artist import AxisArtist, GridlinesCollection
- def __init__(self, path, *kl, **kw):
- mlines.Line2D.__init__(self, [], [], *kl, **kw)
- self._path = path
- self._inva...
[truncated message content] |
|
From: <jd...@us...> - 2009-12-05 17:47:34
|
Revision: 8007
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8007&view=rev
Author: jdh2358
Date: 2009-12-05 17:47:26 +0000 (Sat, 05 Dec 2009)
Log Message:
-----------
add izhikevich neuron ODE example
Modified Paths:
--------------
trunk/py4science/examples/lotka_volterra.py
Added Paths:
-----------
trunk/py4science/examples/izhikevich_neurons.py
Added: trunk/py4science/examples/izhikevich_neurons.py
===================================================================
--- trunk/py4science/examples/izhikevich_neurons.py (rev 0)
+++ trunk/py4science/examples/izhikevich_neurons.py 2009-12-05 17:47:26 UTC (rev 8007)
@@ -0,0 +1,165 @@
+import numpy as np
+import matplotlib.pyplot as plt
+from matplotlib.cbook import iterable
+
+def rk4step(derivs, y0, t, dt):
+
+ dt2 = dt/2.0
+
+ k1 = np.asarray(derivs(y0, t))
+ k2 = np.asarray(derivs(y0 + dt2*k1, t+dt2))
+ k3 = np.asarray(derivs(y0 + dt2*k2, t+dt2))
+ k4 = np.asarray(derivs(y0 + dt*k3, t+dt))
+ return y0 + dt/6.0*(k1 + 2*k2 + 2*k3 + k4)
+
+class Izhikevich:
+ def __init__(self, a, b, c, d):
+ self.a = a
+ self.b = b
+ self.c = c
+ self.d = d
+ self.I = 0
+ self.indI = 0
+
+ def __call__(self, state, t):
+ v, u = state
+ if hasattr(self.I, 'shape'):
+ if len(self.I.shape)==2:
+ I = self.I[:,self.indI]
+ else:
+ I = self.I[self.indI]
+ else:
+ I = self.I
+
+
+ dv = 0.04*v**2 + 5*v + 140 -u + I
+ du = self.a*(self.b*v-u)
+ return dv, du
+
+ def reset_if_action_potential(self, state):
+ v, u = state
+ spiked = v>=30.0
+
+ if iterable(spiked):
+ ind = np.nonzero(spiked)
+ v = np.where(spiked, self.c, v)
+ u = np.where(spiked, u + self.d, u)
+ else:
+ ind = None
+ if spiked:
+ v = self.c
+ u += self.d
+ self.indI += 1
+ return ind, v, u
+
+
+def integrate_single(times, abcd, V0, I):
+
+ model = Izhikevich(*abcd)
+
+
+ state = np.array( [V0,0], float)
+ if not iterable(I):
+ I = I*np.ones(times.shape, float)
+
+
+ model.I = I
+ volts = np.zeros(times.shape, float)
+ volts[0] = state[0]
+ for i in range(1, len(times)):
+
+ dt = times[i] - times[i-1]
+ state = rk4step(model, state, times[i], dt)
+ ind, v, u = model.reset_if_action_potential(state)
+ state[0] = v
+ state[1] = u
+ volts[i] = state[0]
+
+ return volts
+
+regular_spiking = 0.02, 0.2, -65, 8
+chattering = 0.02, 0.2, -50, 2
+fast_spiking = 0.1, 0.2, -65, 2
+intrinsically_bursting = 0.02, 0.2, -55, 4
+thalamocortical = 0.02, 0.25, -65, 0.05
+
+lines = []
+texts = []
+labels = []
+
+times = np.arange(0.0, 500.0, 0.1)
+V0 = -65
+I = np.where(times>=100, 10, 0)
+offset = 150
+#ax = plt.subplot(111)
+ax = plt.axes([0.125, .11, 0.725, 0.79], axisbg='w')
+
+num = 0
+v = integrate_single(times, regular_spiking, V0, I)
+l = ax.plot(times/1000.0, v+num*offset, 'k')
+ax.text(0.51, v[0]+num*offset+20, 'RS', fontsize=15)
+lines.extend(l)
+num += 1
+
+v = integrate_single(times, chattering, V0, I)
+l = ax.plot(times/1000.0, v+num*offset, 'k')
+ax.text(0.51, v[0]+num*offset+20, 'CH', fontsize=15)
+lines.extend(l)
+num += 1
+
+v = integrate_single(times, fast_spiking, V0, I)
+l = ax.plot(times/1000.0, v+num*offset, 'k')
+ax.text(0.51, v[0]+num*offset+20, 'FS', fontsize=15)
+lines.extend(l)
+
+num += 1
+
+v = integrate_single(times, intrinsically_bursting, V0, I)
+l = ax.plot(times/1000.0, v+num*offset, 'k')
+ax.text(0.51, v[0]+num*offset+20, 'IB', fontsize=15)
+lines.extend(l)
+num += 1
+
+
+ax.axis([0, 0.5, -100, 900])
+ax.set_yticklabels([])
+ax.set_xlabel('time (s)')
+ax.grid(False)
+
+
+ax = plt.axes([0.25, 0.7, 0.175, 0.175], axisbg='w')
+ax.set_xticks([0.02, 0.1])
+ax.set_yticks([0.2, 0.25])
+ax.plot([0.02, 0.1], [0.2, 0.2], 'o',
+ markerfacecolor='k', markeredgecolor='k', markersize=4)
+texts.append( ax.text(0.01, 0.18, 'RS, IB, CH') )
+texts.append( ax.text(0.1, 0.18, 'FS') )
+
+ax.grid(False)
+
+ax.axis([0, 0.15, 0.15, 0.3])
+labels.append(ax.set_xlabel('parameter a'))
+labels.append(ax.set_ylabel('parameter b'))
+
+ax = plt.axes([0.6, 0.7, 0.175, 0.175], axisbg='w')
+ax.set_xticks([-65, -55, -50])
+ax.set_yticks([2, 4, 8])
+ax.plot([-65, -50, -55, -65], [2, 2, 4, 8], 'o',
+ markerfacecolor='k', markeredgecolor='k', markersize=4)
+
+texts.append( ax.text(-64, 2.5, 'FS') )
+texts.append( ax.text(-49, 2.5, 'CH') )
+texts.append( ax.text(-54, 4.5, 'IB') )
+texts.append( ax.text(-64, 8.5, 'RS') )
+
+for text in texts:
+ text.set_fontsize(10)
+
+labels.append(ax.set_xlabel('parameter c'))
+labels.append(ax.set_ylabel('parameter d'))
+
+ax.axis([-70, -40, 0.05, 10])
+ax.grid(False)
+#plt.savefig('figures/four_neurons.eps')
+
+plt.show()
Modified: trunk/py4science/examples/lotka_volterra.py
===================================================================
--- trunk/py4science/examples/lotka_volterra.py 2009-12-03 20:51:21 UTC (rev 8006)
+++ trunk/py4science/examples/lotka_volterra.py 2009-12-05 17:47:26 UTC (rev 8007)
@@ -22,14 +22,14 @@
def derivs(state, t):
"""
- Return the derivatives of r and f, stored in the *state* vector::
+ Return the derivatives of R and F, stored in the *state* vector::
- state = [r, f]
+ state = [R, F]
- The return data should be [dr, df] which are the derivatives of r
- and f at position state and time *t*
+ The return data should be [dR, dF] which are the derivatives of R
+ and F at position state and time *t*
"""
- r, f = state # and foxes #@
+ R, F = state # and foxes #@
deltar = dr(r, f) # in rabbits #@
deltaf = df(r, f) # in foxes #@
return deltar, deltaf #@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2009-12-03 20:51:31
|
Revision: 8006
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8006&view=rev
Author: mdboom
Date: 2009-12-03 20:51:21 +0000 (Thu, 03 Dec 2009)
Log Message:
-----------
Adding test_mathtest.py file forgotten in last commit
Added Paths:
-----------
trunk/matplotlib/lib/matplotlib/tests/test_mathtext.py
Added: trunk/matplotlib/lib/matplotlib/tests/test_mathtext.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/tests/test_mathtext.py (rev 0)
+++ trunk/matplotlib/lib/matplotlib/tests/test_mathtext.py 2009-12-03 20:51:21 UTC (rev 8006)
@@ -0,0 +1,116 @@
+import numpy as np
+import matplotlib
+from matplotlib.testing.decorators import image_comparison, knownfailureif
+import matplotlib.pyplot as plt
+
+math_tests = [
+ r'$a+b+\dots+\dot{s}+\ldots$',
+ r'$x \doteq y$',
+ r'\$100.00 $\alpha \_$',
+ r'$\frac{\$100.00}{y}$',
+ r'$x y$',
+ r'$x+y\ x=y\ x<y\ x:y\ x,y\ x@y$',
+ r'$100\%y\ x*y\ x/y x\$y$',
+ r'$x\leftarrow y\ x\forall y\ x-y$',
+ r'$x \sf x \bf x {\cal X} \rm x$',
+ r'$x\ x\,x\;x\quad x\qquad x\!x\hspace{ 0.5 }y$',
+ r'$\{ \rm braces \}$',
+ r'$\left[\left\lfloor\frac{5}{\frac{\left(3\right)}{4}} y\right)\right]$',
+ r'$\left(x\right)$',
+ r'$\sin(x)$',
+ r'$x_2$',
+ r'$x^2$',
+ r'$x^2_y$',
+ r'$x_y^2$',
+ r'$\prod_{i=\alpha_{i+1}}^\infty$',
+ r'$x = \frac{x+\frac{5}{2}}{\frac{y+3}{8}}$',
+ r'$dz/dt = \gamma x^2 + {\rm sin}(2\pi y+\phi)$',
+ r'Foo: $\alpha_{i+1}^j = {\rm sin}(2\pi f_j t_i) e^{-5 t_i/\tau}$',
+ r'$\mathcal{R}\prod_{i=\alpha_{i+1}}^\infty a_i \sin(2 \pi f x_i)$',
+ r'Variable $i$ is good',
+ r'$\Delta_i^j$',
+ r'$\Delta^j_{i+1}$',
+ r'$\ddot{o}\acute{e}\grave{e}\hat{O}\breve{\imath}\tilde{n}\vec{q}$',
+ r"$\arccos((x^i))$",
+ r"$\gamma = \frac{x=\frac{6}{8}}{y} \delta$",
+ r'$\limsup_{x\to\infty}$',
+ r'$\oint^\infty_0$',
+ r"$f^'$",
+ r'$\frac{x_2888}{y}$',
+ r"$\sqrt[3]{\frac{X_2}{Y}}=5$",
+ r"$\sqrt[5]{\prod^\frac{x}{2\pi^2}_\infty}$",
+ r"$\sqrt[3]{x}=5$",
+ r'$\frac{X}{\frac{X}{Y}}$',
+ r"$W^{3\beta}_{\delta_1 \rho_1 \sigma_2} = U^{3\beta}_{\delta_1 \rho_1} + \frac{1}{8 \pi 2} \int^{\alpha_2}_{\alpha_2} d \alpha^\prime_2 \left[\frac{ U^{2\beta}_{\delta_1 \rho_1} - \alpha^\prime_2U^{1\beta}_{\rho_1 \sigma_2} }{U^{0\beta}_{\rho_1 \sigma_2}}\right]$",
+ r'$\mathcal{H} = \int d \tau \left(\epsilon E^2 + \mu H^2\right)$',
+ r'$\widehat{abc}\widetilde{def}$',
+ r'$\Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega$',
+ r'$\alpha \beta \gamma \delta \epsilon \zeta \eta \theta \iota \lambda \mu \nu \xi \pi \kappa \rho \sigma \tau \upsilon \phi \chi \psi$',
+ # r'$\operatorname{cos} x$',
+
+ # The examples prefixed by 'mmltt' are from the MathML torture test here:
+ # http://www.mozilla.org/projects/mathml/demo/texvsmml.xhtml
+ r'${x}^{2}{y}^{2}$',
+ r'${}_{2}F_{3}$',
+ r'$\frac{x+{y}^{2}}{k+1}$',
+ r'$x+{y}^{\frac{2}{k+1}}$',
+ r'$\frac{a}{b/2}$',
+ r'${a}_{0}+\frac{1}{{a}_{1}+\frac{1}{{a}_{2}+\frac{1}{{a}_{3}+\frac{1}{{a}_{4}}}}}$',
+ r'${a}_{0}+\frac{1}{{a}_{1}+\frac{1}{{a}_{2}+\frac{1}{{a}_{3}+\frac{1}{{a}_{4}}}}}$',
+ r'$\binom{n}{k/2}$',
+ r'$\binom{p}{2}{x}^{2}{y}^{p-2}-\frac{1}{1-x}\frac{1}{1-{x}^{2}}$',
+ # 'mmltt10' : r'$\sum _{\genfrac{}{}{0}{}{0\leq i\leq m}{0<j<n}}P\left(i,j\right)$',
+ r'${x}^{2y}$',
+ r'$\sum _{i=1}^{p}\sum _{j=1}^{q}\sum _{k=1}^{r}{a}_{ij}{b}_{jk}{c}_{ki}$',
+ r'$\sqrt{1+\sqrt{1+\sqrt{1+\sqrt{1+\sqrt{1+\sqrt{1+\sqrt{1+x}}}}}}}$',
+ r'$\left(\frac{{\partial }^{2}}{\partial {x}^{2}}+\frac{{\partial }^{2}}{\partial {y}^{2}}\right){|\varphi \left(x+iy\right)|}^{2}=0$',
+ r'${2}^{{2}^{{2}^{x}}}$',
+ r'${\int }_{1}^{x}\frac{\mathrm{dt}}{t}$',
+ r'$\int {\int }_{D}\mathrm{dx} \mathrm{dy}$',
+ # mathtex doesn't support array
+ # 'mmltt18' : r'$f\left(x\right)=\left\{\begin{array}{cc}\hfill 1/3\hfill & \text{if_}0\le x\le 1;\hfill \\ \hfill 2/3\hfill & \hfill \text{if_}3\le x\le 4;\hfill \\ \hfill 0\hfill & \text{elsewhere.}\hfill \end{array}$',
+ # mathtex doesn't support stackrel
+ # 'mmltt19' : ur'$\stackrel{\stackrel{k\text{times}}{\ufe37}}{x+...+x}$',
+ r'${y}_{{x}^{2}}$',
+ # mathtex doesn't support the "\text" command
+ # 'mmltt21' : r'$\sum _{p\text{\prime}}f\left(p\right)={\int }_{t>1}f\left(t\right) d\pi \left(t\right)$',
+ # mathtex doesn't support array
+ # 'mmltt23' : r'$\left(\begin{array}{cc}\hfill \left(\begin{array}{cc}\hfill a\hfill & \hfill b\hfill \\ \hfill c\hfill & \hfill d\hfill \end{array}\right)\hfill & \hfill \left(\begin{array}{cc}\hfill e\hfill & \hfill f\hfill \\ \hfill g\hfill & \hfill h\hfill \end{array}\right)\hfill \\ \hfill 0\hfill & \hfill \left(\begin{array}{cc}\hfill i\hfill & \hfill j\hfill \\ \hfill k\hfill & \hfill l\hfill \end{array}\right)\hfill \end{array}\right)$',
+ # mathtex doesn't support array
+ # 'mmltt24' : u'$det|\\begin{array}{ccccc}\\hfill {c}_{0}\\hfill & \\hfill {c}_{1}\\hfill & \\hfill {c}_{2}\\hfill & \\hfill \\dots \\hfill & \\hfill {c}_{n}\\hfill \\\\ \\hfill {c}_{1}\\hfill & \\hfill {c}_{2}\\hfill & \\hfill {c}_{3}\\hfill & \\hfill \\dots \\hfill & \\hfill {c}_{n+1}\\hfill \\\\ \\hfill {c}_{2}\\hfill & \\hfill {c}_{3}\\hfill & \\hfill {c}_{4}\\hfill & \\hfill \\dots \\hfill & \\hfill {c}_{n+2}\\hfill \\\\ \\hfill \\u22ee\\hfill & \\hfill \\u22ee\\hfill & \\hfill \\u22ee\\hfill & \\hfill \\hfill & \\hfill \\u22ee\\hfill \\\\ \\hfill {c}_{n}\\hfill & \\hfill {c}_{n+1}\\hfill & \\hfill {c}_{n+2}\\hfill & \\hfill \\dots \\hfill & \\hfill {c}_{2n}\\hfill \\end{array}|>0$',
+ r'${y}_{{x}_{2}}$',
+ r'${x}_{92}^{31415}+\pi $',
+ r'${x}_{{y}_{b}^{a}}^{{z}_{c}^{d}}$',
+ r'${y}_{3}^{\prime \prime \prime }$'
+]
+
+def _run_all_tests():
+ fig = plt.figure(figsize=(5, len(math_tests) / 2.0))
+ for i, test in enumerate(math_tests):
+ fig.text(0, float(len(math_tests) - i - 1) / len(math_tests), test)
+ return fig
+
+@image_comparison(baseline_images=['mathtext'])
+def test_mathtext():
+ fig = _run_all_tests()
+ fig.savefig('mathtext')
+
+@image_comparison(baseline_images=['mathtext_stix'])
+def test_mathtext_stix():
+ matplotlib.rcParams['mathtext.fontset'] = 'stix'
+
+ fig = _run_all_tests()
+ fig.savefig('mathtext_stix')
+
+ matplotlib.rcParams['mathtext.fontset'] = 'cm'
+
+@image_comparison(baseline_images=['mathtext_stixsans'])
+def test_mathtext_stixsans():
+ matplotlib.rcParams['mathtext.fontset'] = 'stixsans'
+
+ fig = _run_all_tests()
+ fig.savefig('mathtext_stixsans')
+
+ matplotlib.rcParams['mathtext.fontset'] = 'cm'
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2009-12-03 20:21:32
|
Revision: 8005
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8005&view=rev
Author: mdboom
Date: 2009-12-03 20:21:21 +0000 (Thu, 03 Dec 2009)
Log Message:
-----------
Backport a number of mathtext fixes from mathtex project. Add unit tests.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/__init__.py
trunk/matplotlib/lib/matplotlib/mathtext.py
trunk/matplotlib/lib/matplotlib/testing/decorators.py
Added Paths:
-----------
trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_mathtext/
trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext.pdf
trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext.png
trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext.svg
trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix.pdf
trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix.png
trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix.svg
trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans.pdf
trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans.png
trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans.svg
Modified: trunk/matplotlib/lib/matplotlib/__init__.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/__init__.py 2009-12-03 19:24:30 UTC (rev 8004)
+++ trunk/matplotlib/lib/matplotlib/__init__.py 2009-12-03 20:21:21 UTC (rev 8005)
@@ -912,6 +912,7 @@
'matplotlib.tests.test_spines',
'matplotlib.tests.test_image',
'matplotlib.tests.test_simplification',
+ 'matplotlib.tests.test_mathtext'
]
def test(verbosity=0):
Modified: trunk/matplotlib/lib/matplotlib/mathtext.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/mathtext.py 2009-12-03 19:24:30 UTC (rev 8004)
+++ trunk/matplotlib/lib/matplotlib/mathtext.py 2009-12-03 20:21:21 UTC (rev 8005)
@@ -999,6 +999,11 @@
if glyphindex is not None:
alternatives.append((i, unichr(uniindex)))
+ # The largest size of the radical symbol in STIX has incorrect
+ # metrics that cause it to be disconnected from the stem.
+ if sym == r'\__sqrt__':
+ alternatives = alternatives[:-1]
+
self._size_alternatives[sym] = alternatives
return alternatives
@@ -1186,7 +1191,7 @@
GROW_FACTOR = 1.0 / SHRINK_FACTOR
# The number of different sizes of chars to use, beyond which they will not
# get any smaller
-NUM_SIZE_LEVELS = 4
+NUM_SIZE_LEVELS = 6
# Percentage of x-height of additional horiz. space after sub/superscripts
SCRIPT_SPACE = 0.2
# Percentage of x-height that sub/superscripts drop below the baseline
@@ -1648,9 +1653,10 @@
"""
Convenience class to create a horizontal rule.
"""
- def __init__(self, state):
- thickness = state.font_output.get_underline_thickness(
- state.font, state.fontsize, state.dpi)
+ def __init__(self, state, thickness=None):
+ if thickness is None:
+ thickness = state.font_output.get_underline_thickness(
+ state.font, state.fontsize, state.dpi)
height = depth = thickness * 0.5
Rule.__init__(self, inf, height, depth, state)
@@ -2202,6 +2208,41 @@
| Error(r"Expected \frac{num}{den}"))
).setParseAction(self.frac).setName("frac")
+ stackrel = Group(
+ Suppress(Literal(r"\stackrel"))
+ + ((group + group)
+ | Error(r"Expected \stackrel{num}{den}"))
+ ).setParseAction(self.stackrel).setName("stackrel")
+
+
+ binom = Group(
+ Suppress(Literal(r"\binom"))
+ + ((group + group)
+ | Error(r"Expected \binom{num}{den}"))
+ ).setParseAction(self.binom).setName("binom")
+
+ ambiDelim = oneOf(list(self._ambiDelim))
+ leftDelim = oneOf(list(self._leftDelim))
+ rightDelim = oneOf(list(self._rightDelim))
+ rightDelimSafe = oneOf(list(self._rightDelim - set(['}'])))
+ genfrac = Group(
+ Suppress(Literal(r"\genfrac"))
+ + ((Suppress(Literal('{')) +
+ oneOf(list(self._ambiDelim | self._leftDelim | set(['']))) +
+ Suppress(Literal('}')) +
+ Suppress(Literal('{')) +
+ oneOf(list(self._ambiDelim |
+ (self._rightDelim - set(['}'])) |
+ set(['', r'\}']))) +
+ Suppress(Literal('}')) +
+ Suppress(Literal('{')) +
+ Regex("[0-9]*(\.?[0-9]*)?") +
+ Suppress(Literal('}')) +
+ group + group + group)
+ | Error(r"Expected \genfrac{ldelim}{rdelim}{rulesize}{style}{num}{den}"))
+ ).setParseAction(self.genfrac).setName("genfrac")
+
+
sqrt = Group(
Suppress(Literal(r"\sqrt"))
+ Optional(
@@ -2218,6 +2259,9 @@
^ accent
^ group
^ frac
+ ^ stackrel
+ ^ binom
+ ^ genfrac
^ sqrt
)
@@ -2239,9 +2283,6 @@
| placeable
)
- ambiDelim = oneOf(list(self._ambiDelim))
- leftDelim = oneOf(list(self._leftDelim))
- rightDelim = oneOf(list(self._rightDelim))
autoDelim <<(Suppress(Literal(r"\left"))
+ ((leftDelim | ambiDelim) | Error("Expected a delimiter"))
+ Group(
@@ -2626,9 +2667,9 @@
hlist = HCentered([sub])
hlist.hpack(width, 'exactly')
vlist.extend([Kern(rule_thickness * 3.0), hlist])
- shift = hlist.height + hlist.depth + rule_thickness * 2.0
+ shift = hlist.height
vlist = Vlist(vlist)
- vlist.shift_amount = shift + nucleus.depth * 0.5
+ vlist.shift_amount = shift + nucleus.depth
result = Hlist([vlist])
return [result]
@@ -2677,40 +2718,78 @@
result = Hlist([nucleus, x])
return [result]
- def frac(self, s, loc, toks):
- assert(len(toks)==1)
- assert(len(toks[0])==2)
+ def _genfrac(self, ldelim, rdelim, rule, style, num, den):
state = self.get_state()
thickness = state.font_output.get_underline_thickness(
state.font, state.fontsize, state.dpi)
- num, den = toks[0]
+ rule = float(rule)
num.shrink()
den.shrink()
cnum = HCentered([num])
cden = HCentered([den])
- width = max(num.width, den.width) + thickness * 10.
+ width = max(num.width, den.width)
cnum.hpack(width, 'exactly')
cden.hpack(width, 'exactly')
vlist = Vlist([cnum, # numerator
Vbox(0, thickness * 2.0), # space
- Hrule(state), # rule
- Vbox(0, thickness * 4.0), # space
+ Hrule(state, rule), # rule
+ Vbox(0, thickness * 2.0), # space
cden # denominator
])
# Shift so the fraction line sits in the middle of the
# equals sign
metrics = state.font_output.get_metrics(
- state.font, rcParams['mathtext.default'], '=', state.fontsize, state.dpi)
+ state.font, rcParams['mathtext.default'],
+ '=', state.fontsize, state.dpi)
shift = (cden.height -
((metrics.ymax + metrics.ymin) / 2 -
thickness * 3.0))
vlist.shift_amount = shift
- hlist = Hlist([vlist, Hbox(thickness * 2.)])
- return [hlist]
+ result = [Hlist([vlist, Hbox(thickness * 2.)])]
+ if ldelim or rdelim:
+ if ldelim == '':
+ ldelim = '.'
+ if rdelim == '':
+ rdelim = '.'
+ elif rdelim == r'\}':
+ rdelim = '}'
+ return self._auto_sized_delimiter(ldelim, result, rdelim)
+ return result
+ def genfrac(self, s, loc, toks):
+ assert(len(toks)==1)
+ assert(len(toks[0])==6)
+
+ return self._genfrac(*tuple(toks[0]))
+
+ def frac(self, s, loc, toks):
+ assert(len(toks)==1)
+ assert(len(toks[0])==2)
+ state = self.get_state()
+
+ thickness = state.font_output.get_underline_thickness(
+ state.font, state.fontsize, state.dpi)
+ num, den = toks[0]
+
+ return self._genfrac('', '', thickness, '', num, den)
+
+ def stackrel(self, s, loc, toks):
+ assert(len(toks)==1)
+ assert(len(toks[0])==2)
+ num, den = toks[0]
+
+ return self._genfrac('', '', 0.0, '', num, den)
+
+ def binom(self, s, loc, toks):
+ assert(len(toks)==1)
+ assert(len(toks[0])==2)
+ num, den = toks[0]
+
+ return self._genfrac('(', ')', 0.0, '', num, den)
+
def sqrt(self, s, loc, toks):
#~ print "sqrt", toks
root, body = toks[0]
@@ -2756,9 +2835,7 @@
rightside]) # Body
return [hlist]
- def auto_sized_delimiter(self, s, loc, toks):
- #~ print "auto_sized_delimiter", toks
- front, middle, back = toks
+ def _auto_sized_delimiter(self, front, middle, back):
state = self.get_state()
height = max([x.height for x in middle])
depth = max([x.depth for x in middle])
@@ -2766,12 +2843,19 @@
# \left. and \right. aren't supposed to produce any symbols
if front != '.':
parts.append(AutoHeightChar(front, height, depth, state))
- parts.extend(middle.asList())
+ parts.extend(middle)
if back != '.':
parts.append(AutoHeightChar(back, height, depth, state))
hlist = Hlist(parts)
return hlist
+
+ def auto_sized_delimiter(self, s, loc, toks):
+ #~ print "auto_sized_delimiter", toks
+ front, middle, back = toks
+
+ return self._auto_sized_delimiter(front, middle.asList(), back)
+
###
##############################################################################
Modified: trunk/matplotlib/lib/matplotlib/testing/decorators.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/testing/decorators.py 2009-12-03 19:24:30 UTC (rev 8004)
+++ trunk/matplotlib/lib/matplotlib/testing/decorators.py 2009-12-03 20:21:21 UTC (rev 8005)
@@ -88,7 +88,7 @@
orig_expected_fnames = [os.path.join(baseline_dir,fname) + '.' + extension for fname in baseline_images]
expected_fnames = [os.path.join(result_dir,'expected-'+fname) + '.' + extension for fname in baseline_images]
for src,dst in zip( orig_expected_fnames, expected_fnames ):
- if not os.path.exists(dst):
+ if os.path.exists(src) and not os.path.exists(dst):
shutil.copyfile(src,dst)
actual_fnames = [os.path.join(result_dir, fname) + '.' + extension for fname in baseline_images]
have_baseline_images = [os.path.exists(expected) for expected in expected_fnames]
Added: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext.pdf
===================================================================
--- trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext.pdf (rev 0)
+++ trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext.pdf 2009-12-03 20:21:21 UTC (rev 8005)
@@ -0,0 +1,2076 @@
+%PDF-1.4
+%\xAC\xDC \xAB\xBA
+1 0 obj
+<< /Type /Catalog /Pages 2 0 R >>
+endobj
+8 0 obj
+<< /XObject 7 0 R /Pattern 5 0 R
+/ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /ExtGState 4 0 R
+/Shading 6 0 R /Font 3 0 R >>
+endobj
+10 0 obj
+<< /Contents 9 0 R /Type /Page /Resources 8 0 R /Parent 2 0 R
+/MediaBox [ 0 0 360 2268 ] >>
+endobj
+9 0 obj
+<< /Filter /FlateDecode /Length 11 0 R >>
+stream
+x\x9C\xED\{\xAF\xB7q\xFF\xFF~\x8A\xD34E\xAFa\x9C5\xDF\xB7\x8A \xB1\x93\xFC\xA4UZ\xB9(Ȗ\xE4J\x96d=\xC0N\x81|\xBB\xE9#\x9AčS\xA4\xAD\xEC\xB4M?Xg\x96C\xEE\x90K\xEE\xD9s\xAF\x8A&\x818\x92\xF6p\x87\xDC\xE1<~\xF3 \xE5\xE1\xFE\x85:|\xF3 \xEF\xC0o\\x88\x838<<h\x87>\x98\xFFT\xCA\xF8+\xFB\xFCr\xF1\xF9M\xF8\xDB;\xF0\xDFO.$\xFCy9\x8F\xD3\xEA\xF0\xF6Ë\xAF܀1rr^o7n_\xBC\xF2\xBA<Hu\xB8q\xF7\xE2\xF2\xD6K\x87\xF7/\xC2d\x8C\xD2:e\xE1\xBDy\x84\xCA#^\x9EGH1 o}\x90ˈB\xE3\xADy\x84\x9F\x94\xF5F\xCDs\xF4i(;yu\xFE=S\x96\x93py\xEE)\xFD\x8E\xBF~w\xFE\xF5(\xA6>;\xB2\xD9\xE4\xCFhr\xAF\x84\x96\xC3\xE5\xED\xC6\xC5\xA4\x91m\xE9o\xDAO\xD1\xFA\xF4Za\xF0\xEB\x95?\xBB\xF1\x8D\x9Bo\xDCyt\xE7\xE9\xAD\xC7;\xDC{\xFC\xEC\xC3W\xF8v\x87\x88\x8F\x93\xB6\xD68|w'\x91o7\xDB$\xA3+ۤ\xFB\xDB\xF4AbU\x98\xA4r\xD2/<\xBE\xFCp\xFCy\xBE\xCE9#\x90\xB1z\xB4\xB2\xEF=\xBA\xA7\x94\x83\x85\x81\xD4兩\xA9\xAC\xCA\xE4U}\x99x\xEF\xB4\xF1n\x9EK9x.\xCE|>\xCD\xCF\xF5\xA41v\xD9ݳ\xE9\xFAt\x92\xDFt1V"l\xF3\x88\xEFfF\xAF\x98\xA4̢db\xF2Y\xFE@\xA7\x93̤*\xE6,\xFF\xDB\xFF\xC6EfR\xAF&5\x9At\xD4\xCE\x96\x87\xF4\xA9Aɖ\x97\x8E \xF7j\xD6\xE4\x86>\xA6賊\xB3X+?\xD9e\xC6 \xFE\xEF\xE9\x9D\xC3\xDD\xC3Z^DL\x90I\xB3z\x82\xEC\xA6`\xA2\xE3\xB6\xE0\xC3{\x85U\x8C\xA6\x92\xE4\xD2~\xBE K\xD3\xC7I\xAD-[\xD6iگ\xBDhڗL㍶\xCC"_c\x89\xAF\x92\xF8\xFBҿMz\xBDYD\xAD\xFBW\xB8"\xC3V\xF8'\xF4\xA6V\xE0۸j\x96ؓɌgC6\xA9\x9A\xABT\xA1\xFF\xAF?\xA0\xC4f\x85W\x97\xDF\xFC!}\xBDU!\x8A\xF1\xA7\xED\xE7\xFEk\xD5\xCA\xD3\xDBv
+A-ҷ\x83\xE5_\xE6Tv0Z\xC6 \xF6y\xA9-f\xFC:i\x8B\x9A|e\xA1\xAF\xCE
+F;\xD0甼\xCA&n\xD1\xFE\xE8\xCA*\xA3a\xFEa\xF2ɤ\xEE2\x8A\xAF\xBC\xEE\xEBv\xAA\xF47\xB4\xEF\xAFVW\xD6\x93v&#\x95V>\xAE^\xEC4\xE9h+\x99\x9F#\xBC\xAB\xDCU\xFE\xC1N\xCA{\xAFM\xBB
+\xE7\xB1a\xBDAF\x80ũ\xF66\xBF\xBF\xFA\xB2<\x85\x9Ad-\xB5\x9F<C\xCAf"\xC3;g\xCC\xDF\xF9#\xE2r\xB1\xE8U\xB3I\xAD\xD9\xF9V_/\x9F\x92wv\xB1\xC0[\x95J\xBFM\x9B\xAD\xACwg\xF0\xFCQ\xF5*\xD0\xC2ۅ\x95o\xF8\xF1\x90z1\xA3
+\xF8\xAC |
|
From: <md...@us...> - 2009-12-03 19:24:40
|
Revision: 8004
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8004&view=rev
Author: mdboom
Date: 2009-12-03 19:24:30 +0000 (Thu, 03 Dec 2009)
Log Message:
-----------
Merged revisions 8003 via svnmerge from
https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v0_99_maint
........
r8003 | mdboom | 2009-12-03 14:21:28 -0500 (Thu, 03 Dec 2009) | 1 line
[2896454] subscripts and \mathrm don't get along, aka the long-standing wiggle baseline problem
........
Modified Paths:
--------------
trunk/matplotlib/src/ft2font.cpp
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_99_maint:1-8001
+ /branches/mathtex:1-7263 /branches/v0_99_maint:1-8003
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
Modified: trunk/matplotlib/src/ft2font.cpp
===================================================================
--- trunk/matplotlib/src/ft2font.cpp 2009-12-03 19:21:28 UTC (rev 8003)
+++ trunk/matplotlib/src/ft2font.cpp 2009-12-03 19:24:30 UTC (rev 8004)
@@ -94,8 +94,8 @@
void
FT2Image::draw_bitmap( FT_Bitmap* bitmap,
- FT_Int x,
- FT_Int y) {
+ FT_Int x,
+ FT_Int y) {
_VERBOSE("FT2Image::draw_bitmap");
FT_Int image_width = (FT_Int)_width;
FT_Int image_height = (FT_Int)_height;
@@ -126,9 +126,9 @@
for ( size_t i = 0; i< _height; i++) {
for ( size_t j = 0; j < _width; ++j) {
if (_buffer[j + i*_width])
- fputc('#', fh);
+ fputc('#', fh);
else
- fputc(' ', fh);
+ fputc(' ', fh);
}
fputc('\n', fh);
}
@@ -156,7 +156,7 @@
void
FT2Image::draw_rect(unsigned long x0, unsigned long y0,
- unsigned long x1, unsigned long y1) {
+ unsigned long x1, unsigned long y1) {
if ( x0>_width || x1>_width ||
y0>_height || y1>_height )
throw Py::ValueError("Rect coords outside image bounds");
@@ -199,7 +199,7 @@
}
void FT2Image::draw_rect_filled(unsigned long x0, unsigned long y0,
- unsigned long x1, unsigned long y1) {
+ unsigned long x1, unsigned long y1) {
x0 = std::min(x0, _width);
y0 = std::min(y0, _height);
x1 = std::min(x1, _width);
@@ -249,7 +249,7 @@
return Py::asObject
(PyString_FromStringAndSize((const char *)_buffer,
- _width*_height)
+ _width*_height)
);
}
@@ -276,9 +276,9 @@
PyArrayObject *A = (PyArrayObject *) PyArray_SimpleNew(2, dimensions, PyArray_UBYTE);
- unsigned char *src = _buffer;
- unsigned char *src_end = src + (dimensions[0] * dimensions[1]);
- unsigned char *dst = (unsigned char *)A->data;
+ unsigned char *src = _buffer;
+ unsigned char *src_end = src + (dimensions[0] * dimensions[1]);
+ unsigned char *dst = (unsigned char *)A->data;
while (src != src_end) {
*dst++ = *src++;
@@ -297,9 +297,9 @@
} else {
_rgbCopy->resize(_width * 3, _height);
}
- unsigned char *src = _buffer;
- unsigned char *src_end = src + (_width * _height);
- unsigned char *dst = _rgbCopy->_buffer;
+ unsigned char *src = _buffer;
+ unsigned char *src_end = src + (_width * _height);
+ unsigned char *dst = _rgbCopy->_buffer;
unsigned char tmp;
while (src != src_end) {
@@ -335,9 +335,9 @@
} else {
_rgbaCopy->resize(_width * 4, _height);
}
- unsigned char *src = _buffer;
- unsigned char *src_end = src + (_width * _height);
- unsigned char *dst = _rgbaCopy->_buffer;
+ unsigned char *src = _buffer;
+ unsigned char *src_end = src + (_width * _height);
+ unsigned char *dst = _rgbaCopy->_buffer;
while (src != src_end) {
// We know the array has already been zero'ed out in
@@ -480,27 +480,27 @@
// check first point to determine origin
if( tag == FT_CURVE_TAG_CONIC)
- {
- // first point is conic control. Yes, this happens.
- if(FT_CURVE_TAG(outline.tags[last]) == FT_CURVE_TAG_ON)
- {
- // start at last point if it is on the curve
- v_start = v_last;
- limit--;
- }
- else
- {
- // if both first and last points are conic,
- // start at their middle and record its position
- // for closure
- v_start.x = (v_start.x + v_last.x) / 2;
- v_start.y = (v_start.y + v_last.y) / 2;
+ {
+ // first point is conic control. Yes, this happens.
+ if(FT_CURVE_TAG(outline.tags[last]) == FT_CURVE_TAG_ON)
+ {
+ // start at last point if it is on the curve
+ v_start = v_last;
+ limit--;
+ }
+ else
+ {
+ // if both first and last points are conic,
+ // start at their middle and record its position
+ // for closure
+ v_start.x = (v_start.x + v_last.x) / 2;
+ v_start.y = (v_start.y + v_last.y) / 2;
- v_last = v_start;
- }
- point--;
- tags--;
- }
+ v_last = v_start;
+ }
+ point--;
+ tags--;
+ }
double x = conv(v_start.x);
double y = flip_y ? -conv(v_start.y) : conv(v_start.y);
@@ -515,157 +515,157 @@
closepoly[1] = Py::Int(0);
while(point < limit)
- {
- point++;
- tags++;
+ {
+ point++;
+ tags++;
- tag = FT_CURVE_TAG(tags[0]);
- switch(tag)
- {
- case FT_CURVE_TAG_ON: // emit a single line_to
- {
- double x = conv(point->x);
- double y = flip_y ? -conv(point->y) : conv(point->y);
- Py::Tuple tup(3);
- tup[0] = Py::Int(LINETO);
- tup[1] = Py::Float(x);
- tup[2] = Py::Float(y);
- path.append(tup);
+ tag = FT_CURVE_TAG(tags[0]);
+ switch(tag)
+ {
+ case FT_CURVE_TAG_ON: // emit a single line_to
+ {
+ double x = conv(point->x);
+ double y = flip_y ? -conv(point->y) : conv(point->y);
+ Py::Tuple tup(3);
+ tup[0] = Py::Int(LINETO);
+ tup[1] = Py::Float(x);
+ tup[2] = Py::Float(y);
+ path.append(tup);
- continue;
- }
+ continue;
+ }
- case FT_CURVE_TAG_CONIC: // consume conic arcs
- {
- v_control.x = point->x;
- v_control.y = point->y;
+ case FT_CURVE_TAG_CONIC: // consume conic arcs
+ {
+ v_control.x = point->x;
+ v_control.y = point->y;
- Do_Conic:
- if(point < limit)
- {
- FT_Vector vec;
- FT_Vector v_middle;
+ Do_Conic:
+ if(point < limit)
+ {
+ FT_Vector vec;
+ FT_Vector v_middle;
- point++;
- tags++;
- tag = FT_CURVE_TAG(tags[0]);
+ point++;
+ tags++;
+ tag = FT_CURVE_TAG(tags[0]);
- vec.x = point->x;
- vec.y = point->y;
+ vec.x = point->x;
+ vec.y = point->y;
- if(tag == FT_CURVE_TAG_ON)
- {
- double xctl = conv(v_control.x);
- double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y);
- double xto = conv(vec.x);
- double yto = flip_y ? -conv(vec.y) : conv(vec.y);
- Py::Tuple tup(5);
- tup[0] = Py::Int(CURVE3);
- tup[1] = Py::Float(xctl);
- tup[2] = Py::Float(yctl);
- tup[3] = Py::Float(xto);
- tup[4] = Py::Float(yto);
- path.append(tup);
- continue;
- }
+ if(tag == FT_CURVE_TAG_ON)
+ {
+ double xctl = conv(v_control.x);
+ double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y);
+ double xto = conv(vec.x);
+ double yto = flip_y ? -conv(vec.y) : conv(vec.y);
+ Py::Tuple tup(5);
+ tup[0] = Py::Int(CURVE3);
+ tup[1] = Py::Float(xctl);
+ tup[2] = Py::Float(yctl);
+ tup[3] = Py::Float(xto);
+ tup[4] = Py::Float(yto);
+ path.append(tup);
+ continue;
+ }
- if(tag != FT_CURVE_TAG_CONIC) return Py::Object();
+ if(tag != FT_CURVE_TAG_CONIC) return Py::Object();
- v_middle.x = (v_control.x + vec.x) / 2;
- v_middle.y = (v_control.y + vec.y) / 2;
+ v_middle.x = (v_control.x + vec.x) / 2;
+ v_middle.y = (v_control.y + vec.y) / 2;
- double xctl = conv(v_control.x);
- double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y);
- double xto = conv(v_middle.x);
- double yto = flip_y ? -conv(v_middle.y) : conv(v_middle.y);
- Py::Tuple tup(5);
- tup[0] = Py::Int(CURVE3);
- tup[1] = Py::Float(xctl);
- tup[2] = Py::Float(yctl);
- tup[3] = Py::Float(xto);
- tup[4] = Py::Float(yto);
- path.append(tup);
+ double xctl = conv(v_control.x);
+ double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y);
+ double xto = conv(v_middle.x);
+ double yto = flip_y ? -conv(v_middle.y) : conv(v_middle.y);
+ Py::Tuple tup(5);
+ tup[0] = Py::Int(CURVE3);
+ tup[1] = Py::Float(xctl);
+ tup[2] = Py::Float(yctl);
+ tup[3] = Py::Float(xto);
+ tup[4] = Py::Float(yto);
+ path.append(tup);
- v_control = vec;
- goto Do_Conic;
- }
- double xctl = conv(v_control.x);
- double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y);
- double xto = conv(v_start.x);
- double yto = flip_y ? -conv(v_start.y) : conv(v_start.y);
- Py::Tuple tup(5);
- tup[0] = Py::Int(CURVE3);
- tup[1] = Py::Float(xctl);
- tup[2] = Py::Float(yctl);
- tup[3] = Py::Float(xto);
- tup[4] = Py::Float(yto);
- path.append(tup);
- goto Close;
- }
+ v_control = vec;
+ goto Do_Conic;
+ }
+ double xctl = conv(v_control.x);
+ double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y);
+ double xto = conv(v_start.x);
+ double yto = flip_y ? -conv(v_start.y) : conv(v_start.y);
+ Py::Tuple tup(5);
+ tup[0] = Py::Int(CURVE3);
+ tup[1] = Py::Float(xctl);
+ tup[2] = Py::Float(yctl);
+ tup[3] = Py::Float(xto);
+ tup[4] = Py::Float(yto);
+ path.append(tup);
+ goto Close;
+ }
- default: // FT_CURVE_TAG_CUBIC
- {
- FT_Vector vec1, vec2;
+ default: // FT_CURVE_TAG_CUBIC
+ {
+ FT_Vector vec1, vec2;
- if(point + 1 > limit || FT_CURVE_TAG(tags[1]) != FT_CURVE_TAG_CUBIC)
- {
- return Py::Object();
- }
+ if(point + 1 > limit || FT_CURVE_TAG(tags[1]) != FT_CURVE_TAG_CUBIC)
+ {
+ return Py::Object();
+ }
- vec1.x = point[0].x;
- vec1.y = point[0].y;
- vec2.x = point[1].x;
- vec2.y = point[1].y;
+ vec1.x = point[0].x;
+ vec1.y = point[0].y;
+ vec2.x = point[1].x;
+ vec2.y = point[1].y;
- point += 2;
- tags += 2;
+ point += 2;
+ tags += 2;
- if(point <= limit)
- {
- FT_Vector vec;
+ if(point <= limit)
+ {
+ FT_Vector vec;
- vec.x = point->x;
- vec.y = point->y;
+ vec.x = point->x;
+ vec.y = point->y;
- double xctl1 = conv(vec1.x);
- double yctl1 = flip_y ? -conv(vec1.y) : conv(vec1.y);
- double xctl2 = conv(vec2.x);
- double yctl2 = flip_y ? -conv(vec2.y) : conv(vec2.y);
- double xto = conv(vec.x);
- double yto = flip_y ? -conv(vec.y) : conv(vec.y);
- Py::Tuple tup(7);
- tup[0] = Py::Int(CURVE4);
- tup[1] = Py::Float(xctl1);
- tup[2] = Py::Float(yctl1);
- tup[3] = Py::Float(xctl2);
- tup[4] = Py::Float(yctl2);
- tup[5] = Py::Float(xto);
- tup[6] = Py::Float(yto);
- path.append(tup);
+ double xctl1 = conv(vec1.x);
+ double yctl1 = flip_y ? -conv(vec1.y) : conv(vec1.y);
+ double xctl2 = conv(vec2.x);
+ double yctl2 = flip_y ? -conv(vec2.y) : conv(vec2.y);
+ double xto = conv(vec.x);
+ double yto = flip_y ? -conv(vec.y) : conv(vec.y);
+ Py::Tuple tup(7);
+ tup[0] = Py::Int(CURVE4);
+ tup[1] = Py::Float(xctl1);
+ tup[2] = Py::Float(yctl1);
+ tup[3] = Py::Float(xctl2);
+ tup[4] = Py::Float(yctl2);
+ tup[5] = Py::Float(xto);
+ tup[6] = Py::Float(yto);
+ path.append(tup);
- continue;
- }
+ continue;
+ }
- double xctl1 = conv(vec1.x);
- double yctl1 = flip_y ? -conv(vec1.y) : conv(vec1.y);
- double xctl2 = conv(vec2.x);
- double yctl2 = flip_y ? -conv(vec2.y) : conv(vec2.y);
- double xto = conv(v_start.x);
- double yto = flip_y ? -conv(v_start.y) : conv(v_start.y);
- Py::Tuple tup(7);
- tup[0] = Py::Int(CURVE4);
- tup[1] = Py::Float(xctl1);
- tup[2] = Py::Float(yctl1);
- tup[3] = Py::Float(xctl2);
- tup[4] = Py::Float(yctl2);
- tup[5] = Py::Float(xto);
- tup[6] = Py::Float(yto);
- path.append(tup);
+ double xctl1 = conv(vec1.x);
+ double yctl1 = flip_y ? -conv(vec1.y) : conv(vec1.y);
+ double xctl2 = conv(vec2.x);
+ double yctl2 = flip_y ? -conv(vec2.y) : conv(vec2.y);
+ double xto = conv(v_start.x);
+ double yto = flip_y ? -conv(v_start.y) : conv(v_start.y);
+ Py::Tuple tup(7);
+ tup[0] = Py::Int(CURVE4);
+ tup[1] = Py::Float(xctl1);
+ tup[2] = Py::Float(yctl1);
+ tup[3] = Py::Float(xctl2);
+ tup[4] = Py::Float(yctl2);
+ tup[5] = Py::Float(xto);
+ tup[6] = Py::Float(yto);
+ path.append(tup);
- goto Close;
- }
- }
- }
+ goto Close;
+ }
+ }
+ }
path.append(closepoly);
@@ -850,14 +850,14 @@
#ifdef VERTICAL_HINTING
int error = FT_Set_Char_Size( face, (long)(ptsize * 64), 0,
- (unsigned int)dpi * HORIZ_HINTING,
- (unsigned int)dpi );
+ (unsigned int)dpi * HORIZ_HINTING,
+ (unsigned int)dpi );
static FT_Matrix transform = { 65536 / HORIZ_HINTING, 0, 0, 65536 };
FT_Set_Transform( face, &transform, 0 );
#else
int error = FT_Set_Char_Size( face, (long)(ptsize * 64), 0,
- (unsigned int)dpi,
- (unsigned int)dpi );
+ (unsigned int)dpi,
+ (unsigned int)dpi );
#endif
if (error)
throw Py::RuntimeError("Could not set the fontsize");
@@ -1033,7 +1033,7 @@
if ( use_kerning && previous && glyph_index ) {
FT_Vector delta;
FT_Get_Kerning( face, previous, glyph_index,
- FT_KERNING_DEFAULT, &delta );
+ FT_KERNING_DEFAULT, &delta );
pen.x += delta.x / HORIZ_HINTING;
}
error = FT_Load_Glyph( face, glyph_index, flags );
@@ -1236,12 +1236,12 @@
FT_Glyph_Get_CBox(glyphs[n], ft_glyph_bbox_pixels, &bbox);
error = FT_Glyph_To_Bitmap(&glyphs[n],
- ft_render_mode_normal,
- 0,
- 1
- );
+ ft_render_mode_normal,
+ 0,
+ 1
+ );
if (error)
- throw Py::RuntimeError("Could not convert glyph to bitmap");
+ throw Py::RuntimeError("Could not convert glyph to bitmap");
FT_BitmapGlyph bitmap = (FT_BitmapGlyph)glyphs[n];
// now, draw to our target surface (convert position)
@@ -1278,12 +1278,12 @@
FT_Glyph_Get_CBox(glyphs[n], ft_glyph_bbox_pixels, &bbox);
error = FT_Glyph_To_Bitmap(&glyphs[n],
- ft_render_mode_normal,
- 0,
- 1
- );
+ ft_render_mode_normal,
+ 0,
+ 1
+ );
if (error)
- throw Py::RuntimeError("Could not convert glyph to bitmap");
+ throw Py::RuntimeError("Could not convert glyph to bitmap");
FT_BitmapGlyph bitmap = (FT_BitmapGlyph)glyphs[n];
@@ -1329,8 +1329,8 @@
long x = (long)xd;
long y = (long)yd;
FT_Vector sub_offset;
- sub_offset.x = int((xd - (double)x) * 64.0);
- sub_offset.y = int((yd - (double)y) * 64.0);
+ sub_offset.x = int(-(xd - (double)x) * 64.0);
+ sub_offset.y = int(-(yd - (double)y) * 64.0);
if (!Glyph::check(args[3].ptr()))
throw Py::TypeError("Usage: draw_glyph_to_bitmap(bitmap, x,y,glyph)");
@@ -1340,10 +1340,10 @@
throw Py::ValueError("glyph num is out of range");
error = FT_Glyph_To_Bitmap(&glyphs[glyph->glyphInd],
- ft_render_mode_normal,
- &sub_offset, //no additional translation
- 1 //destroy image;
- );
+ ft_render_mode_normal,
+ &sub_offset, //no additional translation
+ 1 //destroy image;
+ );
if (error)
throw Py::RuntimeError("Could not convert glyph to bitmap");
@@ -1477,7 +1477,7 @@
key[2] = Py::Int(sfnt.language_id);
key[3] = Py::Int(sfnt.name_id);
names[key] = Py::String((char *) sfnt.string,
- (int) sfnt.string_len);
+ (int) sfnt.string_len);
}
return names;
}
@@ -1495,7 +1495,7 @@
std::string glyphname = Py::String(args[0]);
return Py::Long((long)
- FT_Get_Name_Index(face, (FT_String *) glyphname.c_str()));
+ FT_Get_Name_Index(face, (FT_String *) glyphname.c_str()));
}
char FT2Font::get_ps_font_info__doc__[] =
@@ -1543,7 +1543,7 @@
int tag;
const char *tags[] = {"head", "maxp", "OS/2", "hhea",
- "vhea", "post", "pclt", NULL};
+ "vhea", "post", "pclt", NULL};
for (tag=0; tags[tag] != NULL; tag++)
if (strcmp(tagname.c_str(), tags[tag]) == 0)
@@ -1558,140 +1558,140 @@
case 0:
{
char head_dict[] = "{s:(h,h), s:(h,h), s:l, s:l, s:i, s:i,"
- "s:(l,l), s:(l,l), s:h, s:h, s:h, s:h, s:i, s:i, s:h, s:h, s:h}";
+ "s:(l,l), s:(l,l), s:h, s:h, s:h, s:h, s:i, s:i, s:h, s:h, s:h}";
TT_Header *t = (TT_Header *)table;
return Py::asObject(Py_BuildValue(head_dict,
- "version",
- FIXED_MAJOR(t->Table_Version),
- FIXED_MINOR(t->Table_Version),
- "fontRevision",
- FIXED_MAJOR(t->Font_Revision),
- FIXED_MINOR(t->Font_Revision),
- "checkSumAdjustment", t->CheckSum_Adjust,
- "magicNumber" , t->Magic_Number,
- "flags", (unsigned)t->Flags,
- "unitsPerEm", (unsigned)t->Units_Per_EM,
- "created", t->Created[0], t->Created[1],
- "modified", t->Modified[0],t->Modified[1],
- "xMin", t->xMin,
- "yMin", t->yMin,
- "xMax", t->xMax,
- "yMax", t->yMax,
- "macStyle", (unsigned)t->Mac_Style,
- "lowestRecPPEM", (unsigned)t->Lowest_Rec_PPEM,
- "fontDirectionHint", t->Font_Direction,
- "indexToLocFormat", t->Index_To_Loc_Format,
- "glyphDataFormat", t->Glyph_Data_Format));
+ "version",
+ FIXED_MAJOR(t->Table_Version),
+ FIXED_MINOR(t->Table_Version),
+ "fontRevision",
+ FIXED_MAJOR(t->Font_Revision),
+ FIXED_MINOR(t->Font_Revision),
+ "checkSumAdjustment", t->CheckSum_Adjust,
+ "magicNumber" , t->Magic_Number,
+ "flags", (unsigned)t->Flags,
+ "unitsPerEm", (unsigned)t->Units_Per_EM,
+ "created", t->Created[0], t->Created[1],
+ "modified", t->Modified[0],t->Modified[1],
+ "xMin", t->xMin,
+ "yMin", t->yMin,
+ "xMax", t->xMax,
+ "yMax", t->yMax,
+ "macStyle", (unsigned)t->Mac_Style,
+ "lowestRecPPEM", (unsigned)t->Lowest_Rec_PPEM,
+ "fontDirectionHint", t->Font_Direction,
+ "indexToLocFormat", t->Index_To_Loc_Format,
+ "glyphDataFormat", t->Glyph_Data_Format));
}
case 1:
{
char maxp_dict[] = "{s:(h,h), s:i, s:i, s:i, s:i, s:i, s:i,"
- "s:i, s:i, s:i, s:i, s:i, s:i, s:i, s:i}";
+ "s:i, s:i, s:i, s:i, s:i, s:i, s:i, s:i}";
TT_MaxProfile *t = (TT_MaxProfile *)table;
return Py::asObject(Py_BuildValue(maxp_dict,
- "version",
- FIXED_MAJOR(t->version),
- FIXED_MINOR(t->version),
- "numGlyphs", (unsigned)t->numGlyphs,
- "maxPoints", (unsigned)t->maxPoints,
- "maxContours", (unsigned)t->maxContours,
- "maxComponentPoints",
- (unsigned)t->maxCompositePoints,
- "maxComponentContours",
- (unsigned)t->maxCompositeContours,
- "maxZones", (unsigned)t->maxZones,
- "maxTwilightPoints",(unsigned)t->maxTwilightPoints,
- "maxStorage", (unsigned)t->maxStorage,
- "maxFunctionDefs",(unsigned)t->maxFunctionDefs,
- "maxInstructionDefs",
- (unsigned)t->maxInstructionDefs,
- "maxStackElements",(unsigned)t->maxStackElements,
- "maxSizeOfInstructions",
- (unsigned)t->maxSizeOfInstructions,
- "maxComponentElements",
- (unsigned)t->maxComponentElements,
- "maxComponentDepth",
- (unsigned)t->maxComponentDepth));
+ "version",
+ FIXED_MAJOR(t->version),
+ FIXED_MINOR(t->version),
+ "numGlyphs", (unsigned)t->numGlyphs,
+ "maxPoints", (unsigned)t->maxPoints,
+ "maxContours", (unsigned)t->maxContours,
+ "maxComponentPoints",
+ (unsigned)t->maxCompositePoints,
+ "maxComponentContours",
+ (unsigned)t->maxCompositeContours,
+ "maxZones", (unsigned)t->maxZones,
+ "maxTwilightPoints",(unsigned)t->maxTwilightPoints,
+ "maxStorage", (unsigned)t->maxStorage,
+ "maxFunctionDefs",(unsigned)t->maxFunctionDefs,
+ "maxInstructionDefs",
+ (unsigned)t->maxInstructionDefs,
+ "maxStackElements",(unsigned)t->maxStackElements,
+ "maxSizeOfInstructions",
+ (unsigned)t->maxSizeOfInstructions,
+ "maxComponentElements",
+ (unsigned)t->maxComponentElements,
+ "maxComponentDepth",
+ (unsigned)t->maxComponentDepth));
}
case 2:
{
char os_2_dict[] = "{s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:h,"
- "s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:s#, s:(llll),"
- "s:s#, s:h, s:h, s:h}";
+ "s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:s#, s:(llll),"
+ "s:s#, s:h, s:h, s:h}";
TT_OS2 *t = (TT_OS2 *)table;
return Py::asObject(Py_BuildValue(os_2_dict,
- "version", (unsigned)t->version,
- "xAvgCharWidth", t->xAvgCharWidth,
- "usWeightClass", (unsigned)t->usWeightClass,
- "usWidthClass", (unsigned)t->usWidthClass,
- "fsType", t->fsType,
- "ySubscriptXSize", t->ySubscriptXSize,
- "ySubscriptYSize", t->ySubscriptYSize,
- "ySubscriptXOffset", t->ySubscriptXOffset,
- "ySubscriptYOffset", t->ySubscriptYOffset,
- "ySuperscriptXSize", t->ySuperscriptXSize,
- "ySuperscriptYSize", t->ySuperscriptYSize,
- "ySuperscriptXOffset", t->ySuperscriptXOffset,
- "ySuperscriptYOffset", t->ySuperscriptYOffset,
- "yStrikeoutSize", t->yStrikeoutSize,
- "yStrikeoutPosition", t->yStrikeoutPosition,
- "sFamilyClass", t->sFamilyClass,
- "panose", t->panose, 10,
- "ulCharRange",
- (unsigned long) t->ulUnicodeRange1,
- (unsigned long) t->ulUnicodeRange2,
- (unsigned long) t->ulUnicodeRange3,
- (unsigned long) t->ulUnicodeRange4,
- "achVendID", t->achVendID, 4,
- "fsSelection", (unsigned)t->fsSelection,
- "fsFirstCharIndex",(unsigned)t->usFirstCharIndex,
- "fsLastCharIndex",(unsigned)t->usLastCharIndex));
+ "version", (unsigned)t->version,
+ "xAvgCharWidth", t->xAvgCharWidth,
+ "usWeightClass", (unsigned)t->usWeightClass,
+ "usWidthClass", (unsigned)t->usWidthClass,
+ "fsType", t->fsType,
+ "ySubscriptXSize", t->ySubscriptXSize,
+ "ySubscriptYSize", t->ySubscriptYSize,
+ "ySubscriptXOffset", t->ySubscriptXOffset,
+ "ySubscriptYOffset", t->ySubscriptYOffset,
+ "ySuperscriptXSize", t->ySuperscriptXSize,
+ "ySuperscriptYSize", t->ySuperscriptYSize,
+ "ySuperscriptXOffset", t->ySuperscriptXOffset,
+ "ySuperscriptYOffset", t->ySuperscriptYOffset,
+ "yStrikeoutSize", t->yStrikeoutSize,
+ "yStrikeoutPosition", t->yStrikeoutPosition,
+ "sFamilyClass", t->sFamilyClass,
+ "panose", t->panose, 10,
+ "ulCharRange",
+ (unsigned long) t->ulUnicodeRange1,
+ (unsigned long) t->ulUnicodeRange2,
+ (unsigned long) t->ulUnicodeRange3,
+ (unsigned long) t->ulUnicodeRange4,
+ "achVendID", t->achVendID, 4,
+ "fsSelection", (unsigned)t->fsSelection,
+ "fsFirstCharIndex",(unsigned)t->usFirstCharIndex,
+ "fsLastCharIndex",(unsigned)t->usLastCharIndex));
}
case 3:
{
char hhea_dict[] = "{s:(h,h), s:h, s:h, s:h, s:i, s:h, s:h, s:h,"
- "s:h, s:h, s:h, s:h, s:i}";
+ "s:h, s:h, s:h, s:h, s:i}";
TT_HoriHeader *t = (TT_HoriHeader *)table;
return Py::asObject(Py_BuildValue(hhea_dict,
- "version",
- FIXED_MAJOR(t->Version),
- FIXED_MINOR(t->Version),
- "ascent", t->Ascender,
- "descent", t->Descender,
- "lineGap", t->Line_Gap,
- "advanceWidthMax",(unsigned)t->advance_Width_Max,
- "minLeftBearing", t->min_Left_Side_Bearing,
- "minRightBearing", t->min_Right_Side_Bearing,
- "xMaxExtent", t->xMax_Extent,
- "caretSlopeRise", t->caret_Slope_Rise,
- "caretSlopeRun", t->caret_Slope_Run,
- "caretOffset", t->caret_Offset,
- "metricDataFormat", t->metric_Data_Format,
- "numOfLongHorMetrics",
- (unsigned)t->number_Of_HMetrics));
+ "version",
+ FIXED_MAJOR(t->Version),
+ FIXED_MINOR(t->Version),
+ "ascent", t->Ascender,
+ "descent", t->Descender,
+ "lineGap", t->Line_Gap,
+ "advanceWidthMax",(unsigned)t->advance_Width_Max,
+ "minLeftBearing", t->min_Left_Side_Bearing,
+ "minRightBearing", t->min_Right_Side_Bearing,
+ "xMaxExtent", t->xMax_Extent,
+ "caretSlopeRise", t->caret_Slope_Rise,
+ "caretSlopeRun", t->caret_Slope_Run,
+ "caretOffset", t->caret_Offset,
+ "metricDataFormat", t->metric_Data_Format,
+ "numOfLongHorMetrics",
+ (unsigned)t->number_Of_HMetrics));
}
case 4:
{
char vhea_dict[] = "{s:(h,h), s:h, s:h, s:h, s:i, s:h, s:h, s:h,"
- "s:h, s:h, s:h, s:h, s:i}";
+ "s:h, s:h, s:h, s:h, s:i}";
TT_VertHeader *t = (TT_VertHeader *)table;
return Py::asObject(Py_BuildValue(vhea_dict,
- "version",
- FIXED_MAJOR(t->Version),
- FIXED_MINOR(t->Version),
- "vertTypoAscender", t->Ascender,
- "vertTypoDescender", t->Descender,
- "vertTypoLineGap", t->Line_Gap,
- "advanceHeightMax",(unsigned)t->advance_Height_Max,
- "minTopSideBearing", t->min_Top_Side_Bearing,
- "minBottomSizeBearing", t->min_Bottom_Side_Bearing,
- "yMaxExtent", t->yMax_Extent,
- "caretSlopeRise", t->caret_Slope_Rise,
- "caretSlopeRun", t->caret_Slope_Run,
- "caretOffset", t->caret_Offset,
- "metricDataFormat", t->metric_Data_Format,
- "numOfLongVerMetrics",
- (unsigned)t->number_Of_VMetrics));
+ "version",
+ FIXED_MAJOR(t->Version),
+ FIXED_MINOR(t->Version),
+ "vertTypoAscender", t->Ascender,
+ "vertTypoDescender", t->Descender,
+ "vertTypoLineGap", t->Line_Gap,
+ ...
[truncated message content] |
|
From: <md...@us...> - 2009-12-03 19:21:36
|
Revision: 8003
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8003&view=rev
Author: mdboom
Date: 2009-12-03 19:21:28 +0000 (Thu, 03 Dec 2009)
Log Message:
-----------
[2896454] subscripts and \mathrm don't get along, aka the long-standing wiggle baseline problem
Modified Paths:
--------------
branches/v0_99_maint/src/ft2font.cpp
Modified: branches/v0_99_maint/src/ft2font.cpp
===================================================================
--- branches/v0_99_maint/src/ft2font.cpp 2009-12-03 19:02:07 UTC (rev 8002)
+++ branches/v0_99_maint/src/ft2font.cpp 2009-12-03 19:21:28 UTC (rev 8003)
@@ -94,8 +94,8 @@
void
FT2Image::draw_bitmap( FT_Bitmap* bitmap,
- FT_Int x,
- FT_Int y) {
+ FT_Int x,
+ FT_Int y) {
_VERBOSE("FT2Image::draw_bitmap");
FT_Int image_width = (FT_Int)_width;
FT_Int image_height = (FT_Int)_height;
@@ -126,9 +126,9 @@
for ( size_t i = 0; i< _height; i++) {
for ( size_t j = 0; j < _width; ++j) {
if (_buffer[j + i*_width])
- fputc('#', fh);
+ fputc('#', fh);
else
- fputc(' ', fh);
+ fputc(' ', fh);
}
fputc('\n', fh);
}
@@ -156,7 +156,7 @@
void
FT2Image::draw_rect(unsigned long x0, unsigned long y0,
- unsigned long x1, unsigned long y1) {
+ unsigned long x1, unsigned long y1) {
if ( x0>_width || x1>_width ||
y0>_height || y1>_height )
throw Py::ValueError("Rect coords outside image bounds");
@@ -199,7 +199,7 @@
}
void FT2Image::draw_rect_filled(unsigned long x0, unsigned long y0,
- unsigned long x1, unsigned long y1) {
+ unsigned long x1, unsigned long y1) {
x0 = std::min(x0, _width);
y0 = std::min(y0, _height);
x1 = std::min(x1, _width);
@@ -249,7 +249,7 @@
return Py::asObject
(PyString_FromStringAndSize((const char *)_buffer,
- _width*_height)
+ _width*_height)
);
}
@@ -276,9 +276,9 @@
PyArrayObject *A = (PyArrayObject *) PyArray_SimpleNew(2, dimensions, PyArray_UBYTE);
- unsigned char *src = _buffer;
- unsigned char *src_end = src + (dimensions[0] * dimensions[1]);
- unsigned char *dst = (unsigned char *)A->data;
+ unsigned char *src = _buffer;
+ unsigned char *src_end = src + (dimensions[0] * dimensions[1]);
+ unsigned char *dst = (unsigned char *)A->data;
while (src != src_end) {
*dst++ = *src++;
@@ -297,9 +297,9 @@
} else {
_rgbCopy->resize(_width * 3, _height);
}
- unsigned char *src = _buffer;
- unsigned char *src_end = src + (_width * _height);
- unsigned char *dst = _rgbCopy->_buffer;
+ unsigned char *src = _buffer;
+ unsigned char *src_end = src + (_width * _height);
+ unsigned char *dst = _rgbCopy->_buffer;
unsigned char tmp;
while (src != src_end) {
@@ -335,9 +335,9 @@
} else {
_rgbaCopy->resize(_width * 4, _height);
}
- unsigned char *src = _buffer;
- unsigned char *src_end = src + (_width * _height);
- unsigned char *dst = _rgbaCopy->_buffer;
+ unsigned char *src = _buffer;
+ unsigned char *src_end = src + (_width * _height);
+ unsigned char *dst = _rgbaCopy->_buffer;
while (src != src_end) {
// We know the array has already been zero'ed out in
@@ -480,27 +480,27 @@
// check first point to determine origin
if( tag == FT_CURVE_TAG_CONIC)
- {
- // first point is conic control. Yes, this happens.
- if(FT_CURVE_TAG(outline.tags[last]) == FT_CURVE_TAG_ON)
- {
- // start at last point if it is on the curve
- v_start = v_last;
- limit--;
- }
- else
- {
- // if both first and last points are conic,
- // start at their middle and record its position
- // for closure
- v_start.x = (v_start.x + v_last.x) / 2;
- v_start.y = (v_start.y + v_last.y) / 2;
+ {
+ // first point is conic control. Yes, this happens.
+ if(FT_CURVE_TAG(outline.tags[last]) == FT_CURVE_TAG_ON)
+ {
+ // start at last point if it is on the curve
+ v_start = v_last;
+ limit--;
+ }
+ else
+ {
+ // if both first and last points are conic,
+ // start at their middle and record its position
+ // for closure
+ v_start.x = (v_start.x + v_last.x) / 2;
+ v_start.y = (v_start.y + v_last.y) / 2;
- v_last = v_start;
- }
- point--;
- tags--;
- }
+ v_last = v_start;
+ }
+ point--;
+ tags--;
+ }
double x = conv(v_start.x);
double y = flip_y ? -conv(v_start.y) : conv(v_start.y);
@@ -515,157 +515,157 @@
closepoly[1] = Py::Int(0);
while(point < limit)
- {
- point++;
- tags++;
+ {
+ point++;
+ tags++;
- tag = FT_CURVE_TAG(tags[0]);
- switch(tag)
- {
- case FT_CURVE_TAG_ON: // emit a single line_to
- {
- double x = conv(point->x);
- double y = flip_y ? -conv(point->y) : conv(point->y);
- Py::Tuple tup(3);
- tup[0] = Py::Int(LINETO);
- tup[1] = Py::Float(x);
- tup[2] = Py::Float(y);
- path.append(tup);
+ tag = FT_CURVE_TAG(tags[0]);
+ switch(tag)
+ {
+ case FT_CURVE_TAG_ON: // emit a single line_to
+ {
+ double x = conv(point->x);
+ double y = flip_y ? -conv(point->y) : conv(point->y);
+ Py::Tuple tup(3);
+ tup[0] = Py::Int(LINETO);
+ tup[1] = Py::Float(x);
+ tup[2] = Py::Float(y);
+ path.append(tup);
- continue;
- }
+ continue;
+ }
- case FT_CURVE_TAG_CONIC: // consume conic arcs
- {
- v_control.x = point->x;
- v_control.y = point->y;
+ case FT_CURVE_TAG_CONIC: // consume conic arcs
+ {
+ v_control.x = point->x;
+ v_control.y = point->y;
- Do_Conic:
- if(point < limit)
- {
- FT_Vector vec;
- FT_Vector v_middle;
+ Do_Conic:
+ if(point < limit)
+ {
+ FT_Vector vec;
+ FT_Vector v_middle;
- point++;
- tags++;
- tag = FT_CURVE_TAG(tags[0]);
+ point++;
+ tags++;
+ tag = FT_CURVE_TAG(tags[0]);
- vec.x = point->x;
- vec.y = point->y;
+ vec.x = point->x;
+ vec.y = point->y;
- if(tag == FT_CURVE_TAG_ON)
- {
- double xctl = conv(v_control.x);
- double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y);
- double xto = conv(vec.x);
- double yto = flip_y ? -conv(vec.y) : conv(vec.y);
- Py::Tuple tup(5);
- tup[0] = Py::Int(CURVE3);
- tup[1] = Py::Float(xctl);
- tup[2] = Py::Float(yctl);
- tup[3] = Py::Float(xto);
- tup[4] = Py::Float(yto);
- path.append(tup);
- continue;
- }
+ if(tag == FT_CURVE_TAG_ON)
+ {
+ double xctl = conv(v_control.x);
+ double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y);
+ double xto = conv(vec.x);
+ double yto = flip_y ? -conv(vec.y) : conv(vec.y);
+ Py::Tuple tup(5);
+ tup[0] = Py::Int(CURVE3);
+ tup[1] = Py::Float(xctl);
+ tup[2] = Py::Float(yctl);
+ tup[3] = Py::Float(xto);
+ tup[4] = Py::Float(yto);
+ path.append(tup);
+ continue;
+ }
- if(tag != FT_CURVE_TAG_CONIC) return Py::Object();
+ if(tag != FT_CURVE_TAG_CONIC) return Py::Object();
- v_middle.x = (v_control.x + vec.x) / 2;
- v_middle.y = (v_control.y + vec.y) / 2;
+ v_middle.x = (v_control.x + vec.x) / 2;
+ v_middle.y = (v_control.y + vec.y) / 2;
- double xctl = conv(v_control.x);
- double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y);
- double xto = conv(v_middle.x);
- double yto = flip_y ? -conv(v_middle.y) : conv(v_middle.y);
- Py::Tuple tup(5);
- tup[0] = Py::Int(CURVE3);
- tup[1] = Py::Float(xctl);
- tup[2] = Py::Float(yctl);
- tup[3] = Py::Float(xto);
- tup[4] = Py::Float(yto);
- path.append(tup);
+ double xctl = conv(v_control.x);
+ double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y);
+ double xto = conv(v_middle.x);
+ double yto = flip_y ? -conv(v_middle.y) : conv(v_middle.y);
+ Py::Tuple tup(5);
+ tup[0] = Py::Int(CURVE3);
+ tup[1] = Py::Float(xctl);
+ tup[2] = Py::Float(yctl);
+ tup[3] = Py::Float(xto);
+ tup[4] = Py::Float(yto);
+ path.append(tup);
- v_control = vec;
- goto Do_Conic;
- }
- double xctl = conv(v_control.x);
- double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y);
- double xto = conv(v_start.x);
- double yto = flip_y ? -conv(v_start.y) : conv(v_start.y);
- Py::Tuple tup(5);
- tup[0] = Py::Int(CURVE3);
- tup[1] = Py::Float(xctl);
- tup[2] = Py::Float(yctl);
- tup[3] = Py::Float(xto);
- tup[4] = Py::Float(yto);
- path.append(tup);
- goto Close;
- }
+ v_control = vec;
+ goto Do_Conic;
+ }
+ double xctl = conv(v_control.x);
+ double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y);
+ double xto = conv(v_start.x);
+ double yto = flip_y ? -conv(v_start.y) : conv(v_start.y);
+ Py::Tuple tup(5);
+ tup[0] = Py::Int(CURVE3);
+ tup[1] = Py::Float(xctl);
+ tup[2] = Py::Float(yctl);
+ tup[3] = Py::Float(xto);
+ tup[4] = Py::Float(yto);
+ path.append(tup);
+ goto Close;
+ }
- default: // FT_CURVE_TAG_CUBIC
- {
- FT_Vector vec1, vec2;
+ default: // FT_CURVE_TAG_CUBIC
+ {
+ FT_Vector vec1, vec2;
- if(point + 1 > limit || FT_CURVE_TAG(tags[1]) != FT_CURVE_TAG_CUBIC)
- {
- return Py::Object();
- }
+ if(point + 1 > limit || FT_CURVE_TAG(tags[1]) != FT_CURVE_TAG_CUBIC)
+ {
+ return Py::Object();
+ }
- vec1.x = point[0].x;
- vec1.y = point[0].y;
- vec2.x = point[1].x;
- vec2.y = point[1].y;
+ vec1.x = point[0].x;
+ vec1.y = point[0].y;
+ vec2.x = point[1].x;
+ vec2.y = point[1].y;
- point += 2;
- tags += 2;
+ point += 2;
+ tags += 2;
- if(point <= limit)
- {
- FT_Vector vec;
+ if(point <= limit)
+ {
+ FT_Vector vec;
- vec.x = point->x;
- vec.y = point->y;
+ vec.x = point->x;
+ vec.y = point->y;
- double xctl1 = conv(vec1.x);
- double yctl1 = flip_y ? -conv(vec1.y) : conv(vec1.y);
- double xctl2 = conv(vec2.x);
- double yctl2 = flip_y ? -conv(vec2.y) : conv(vec2.y);
- double xto = conv(vec.x);
- double yto = flip_y ? -conv(vec.y) : conv(vec.y);
- Py::Tuple tup(7);
- tup[0] = Py::Int(CURVE4);
- tup[1] = Py::Float(xctl1);
- tup[2] = Py::Float(yctl1);
- tup[3] = Py::Float(xctl2);
- tup[4] = Py::Float(yctl2);
- tup[5] = Py::Float(xto);
- tup[6] = Py::Float(yto);
- path.append(tup);
+ double xctl1 = conv(vec1.x);
+ double yctl1 = flip_y ? -conv(vec1.y) : conv(vec1.y);
+ double xctl2 = conv(vec2.x);
+ double yctl2 = flip_y ? -conv(vec2.y) : conv(vec2.y);
+ double xto = conv(vec.x);
+ double yto = flip_y ? -conv(vec.y) : conv(vec.y);
+ Py::Tuple tup(7);
+ tup[0] = Py::Int(CURVE4);
+ tup[1] = Py::Float(xctl1);
+ tup[2] = Py::Float(yctl1);
+ tup[3] = Py::Float(xctl2);
+ tup[4] = Py::Float(yctl2);
+ tup[5] = Py::Float(xto);
+ tup[6] = Py::Float(yto);
+ path.append(tup);
- continue;
- }
+ continue;
+ }
- double xctl1 = conv(vec1.x);
- double yctl1 = flip_y ? -conv(vec1.y) : conv(vec1.y);
- double xctl2 = conv(vec2.x);
- double yctl2 = flip_y ? -conv(vec2.y) : conv(vec2.y);
- double xto = conv(v_start.x);
- double yto = flip_y ? -conv(v_start.y) : conv(v_start.y);
- Py::Tuple tup(7);
- tup[0] = Py::Int(CURVE4);
- tup[1] = Py::Float(xctl1);
- tup[2] = Py::Float(yctl1);
- tup[3] = Py::Float(xctl2);
- tup[4] = Py::Float(yctl2);
- tup[5] = Py::Float(xto);
- tup[6] = Py::Float(yto);
- path.append(tup);
+ double xctl1 = conv(vec1.x);
+ double yctl1 = flip_y ? -conv(vec1.y) : conv(vec1.y);
+ double xctl2 = conv(vec2.x);
+ double yctl2 = flip_y ? -conv(vec2.y) : conv(vec2.y);
+ double xto = conv(v_start.x);
+ double yto = flip_y ? -conv(v_start.y) : conv(v_start.y);
+ Py::Tuple tup(7);
+ tup[0] = Py::Int(CURVE4);
+ tup[1] = Py::Float(xctl1);
+ tup[2] = Py::Float(yctl1);
+ tup[3] = Py::Float(xctl2);
+ tup[4] = Py::Float(yctl2);
+ tup[5] = Py::Float(xto);
+ tup[6] = Py::Float(yto);
+ path.append(tup);
- goto Close;
- }
- }
- }
+ goto Close;
+ }
+ }
+ }
path.append(closepoly);
@@ -850,14 +850,14 @@
#ifdef VERTICAL_HINTING
int error = FT_Set_Char_Size( face, (long)(ptsize * 64), 0,
- (unsigned int)dpi * HORIZ_HINTING,
- (unsigned int)dpi );
+ (unsigned int)dpi * HORIZ_HINTING,
+ (unsigned int)dpi );
static FT_Matrix transform = { 65536 / HORIZ_HINTING, 0, 0, 65536 };
FT_Set_Transform( face, &transform, 0 );
#else
int error = FT_Set_Char_Size( face, (long)(ptsize * 64), 0,
- (unsigned int)dpi,
- (unsigned int)dpi );
+ (unsigned int)dpi,
+ (unsigned int)dpi );
#endif
if (error)
throw Py::RuntimeError("Could not set the fontsize");
@@ -1009,7 +1009,7 @@
if ( use_kerning && previous && glyph_index ) {
FT_Vector delta;
FT_Get_Kerning( face, previous, glyph_index,
- FT_KERNING_DEFAULT, &delta );
+ FT_KERNING_DEFAULT, &delta );
pen.x += delta.x / HORIZ_HINTING;
}
error = FT_Load_Glyph( face, glyph_index, flags );
@@ -1167,12 +1167,12 @@
FT_Glyph_Get_CBox(glyphs[n], ft_glyph_bbox_pixels, &bbox);
error = FT_Glyph_To_Bitmap(&glyphs[n],
- ft_render_mode_normal,
- 0,
- 1
- );
+ ft_render_mode_normal,
+ 0,
+ 1
+ );
if (error)
- throw Py::RuntimeError("Could not convert glyph to bitmap");
+ throw Py::RuntimeError("Could not convert glyph to bitmap");
FT_BitmapGlyph bitmap = (FT_BitmapGlyph)glyphs[n];
// now, draw to our target surface (convert position)
@@ -1209,12 +1209,12 @@
FT_Glyph_Get_CBox(glyphs[n], ft_glyph_bbox_pixels, &bbox);
error = FT_Glyph_To_Bitmap(&glyphs[n],
- ft_render_mode_normal,
- 0,
- 1
- );
+ ft_render_mode_normal,
+ 0,
+ 1
+ );
if (error)
- throw Py::RuntimeError("Could not convert glyph to bitmap");
+ throw Py::RuntimeError("Could not convert glyph to bitmap");
FT_BitmapGlyph bitmap = (FT_BitmapGlyph)glyphs[n];
@@ -1260,8 +1260,8 @@
long x = (long)xd;
long y = (long)yd;
FT_Vector sub_offset;
- sub_offset.x = int((xd - (double)x) * 64.0);
- sub_offset.y = int((yd - (double)y) * 64.0);
+ sub_offset.x = int(-(xd - (double)x) * 64.0);
+ sub_offset.y = int(-(yd - (double)y) * 64.0);
if (!Glyph::check(args[3].ptr()))
throw Py::TypeError("Usage: draw_glyph_to_bitmap(bitmap, x,y,glyph)");
@@ -1271,10 +1271,10 @@
throw Py::ValueError("glyph num is out of range");
error = FT_Glyph_To_Bitmap(&glyphs[glyph->glyphInd],
- ft_render_mode_normal,
- &sub_offset, //no additional translation
- 1 //destroy image;
- );
+ ft_render_mode_normal,
+ &sub_offset, //no additional translation
+ 1 //destroy image;
+ );
if (error)
throw Py::RuntimeError("Could not convert glyph to bitmap");
@@ -1407,7 +1407,7 @@
key[2] = Py::Int(sfnt.language_id);
key[3] = Py::Int(sfnt.name_id);
names[key] = Py::String((char *) sfnt.string,
- (int) sfnt.string_len);
+ (int) sfnt.string_len);
}
return names;
}
@@ -1425,7 +1425,7 @@
std::string glyphname = Py::String(args[0]);
return Py::Long((long)
- FT_Get_Name_Index(face, (FT_String *) glyphname.c_str()));
+ FT_Get_Name_Index(face, (FT_String *) glyphname.c_str()));
}
char FT2Font::get_ps_font_info__doc__[] =
@@ -1473,7 +1473,7 @@
int tag;
const char *tags[] = {"head", "maxp", "OS/2", "hhea",
- "vhea", "post", "pclt", NULL};
+ "vhea", "post", "pclt", NULL};
for (tag=0; tags[tag] != NULL; tag++)
if (strcmp(tagname.c_str(), tags[tag]) == 0)
@@ -1488,140 +1488,140 @@
case 0:
{
char head_dict[] = "{s:(h,h), s:(h,h), s:l, s:l, s:i, s:i,"
- "s:(l,l), s:(l,l), s:h, s:h, s:h, s:h, s:i, s:i, s:h, s:h, s:h}";
+ "s:(l,l), s:(l,l), s:h, s:h, s:h, s:h, s:i, s:i, s:h, s:h, s:h}";
TT_Header *t = (TT_Header *)table;
return Py::asObject(Py_BuildValue(head_dict,
- "version",
- FIXED_MAJOR(t->Table_Version),
- FIXED_MINOR(t->Table_Version),
- "fontRevision",
- FIXED_MAJOR(t->Font_Revision),
- FIXED_MINOR(t->Font_Revision),
- "checkSumAdjustment", t->CheckSum_Adjust,
- "magicNumber" , t->Magic_Number,
- "flags", (unsigned)t->Flags,
- "unitsPerEm", (unsigned)t->Units_Per_EM,
- "created", t->Created[0], t->Created[1],
- "modified", t->Modified[0],t->Modified[1],
- "xMin", t->xMin,
- "yMin", t->yMin,
- "xMax", t->xMax,
- "yMax", t->yMax,
- "macStyle", (unsigned)t->Mac_Style,
- "lowestRecPPEM", (unsigned)t->Lowest_Rec_PPEM,
- "fontDirectionHint", t->Font_Direction,
- "indexToLocFormat", t->Index_To_Loc_Format,
- "glyphDataFormat", t->Glyph_Data_Format));
+ "version",
+ FIXED_MAJOR(t->Table_Version),
+ FIXED_MINOR(t->Table_Version),
+ "fontRevision",
+ FIXED_MAJOR(t->Font_Revision),
+ FIXED_MINOR(t->Font_Revision),
+ "checkSumAdjustment", t->CheckSum_Adjust,
+ "magicNumber" , t->Magic_Number,
+ "flags", (unsigned)t->Flags,
+ "unitsPerEm", (unsigned)t->Units_Per_EM,
+ "created", t->Created[0], t->Created[1],
+ "modified", t->Modified[0],t->Modified[1],
+ "xMin", t->xMin,
+ "yMin", t->yMin,
+ "xMax", t->xMax,
+ "yMax", t->yMax,
+ "macStyle", (unsigned)t->Mac_Style,
+ "lowestRecPPEM", (unsigned)t->Lowest_Rec_PPEM,
+ "fontDirectionHint", t->Font_Direction,
+ "indexToLocFormat", t->Index_To_Loc_Format,
+ "glyphDataFormat", t->Glyph_Data_Format));
}
case 1:
{
char maxp_dict[] = "{s:(h,h), s:i, s:i, s:i, s:i, s:i, s:i,"
- "s:i, s:i, s:i, s:i, s:i, s:i, s:i, s:i}";
+ "s:i, s:i, s:i, s:i, s:i, s:i, s:i, s:i}";
TT_MaxProfile *t = (TT_MaxProfile *)table;
return Py::asObject(Py_BuildValue(maxp_dict,
- "version",
- FIXED_MAJOR(t->version),
- FIXED_MINOR(t->version),
- "numGlyphs", (unsigned)t->numGlyphs,
- "maxPoints", (unsigned)t->maxPoints,
- "maxContours", (unsigned)t->maxContours,
- "maxComponentPoints",
- (unsigned)t->maxCompositePoints,
- "maxComponentContours",
- (unsigned)t->maxCompositeContours,
- "maxZones", (unsigned)t->maxZones,
- "maxTwilightPoints",(unsigned)t->maxTwilightPoints,
- "maxStorage", (unsigned)t->maxStorage,
- "maxFunctionDefs",(unsigned)t->maxFunctionDefs,
- "maxInstructionDefs",
- (unsigned)t->maxInstructionDefs,
- "maxStackElements",(unsigned)t->maxStackElements,
- "maxSizeOfInstructions",
- (unsigned)t->maxSizeOfInstructions,
- "maxComponentElements",
- (unsigned)t->maxComponentElements,
- "maxComponentDepth",
- (unsigned)t->maxComponentDepth));
+ "version",
+ FIXED_MAJOR(t->version),
+ FIXED_MINOR(t->version),
+ "numGlyphs", (unsigned)t->numGlyphs,
+ "maxPoints", (unsigned)t->maxPoints,
+ "maxContours", (unsigned)t->maxContours,
+ "maxComponentPoints",
+ (unsigned)t->maxCompositePoints,
+ "maxComponentContours",
+ (unsigned)t->maxCompositeContours,
+ "maxZones", (unsigned)t->maxZones,
+ "maxTwilightPoints",(unsigned)t->maxTwilightPoints,
+ "maxStorage", (unsigned)t->maxStorage,
+ "maxFunctionDefs",(unsigned)t->maxFunctionDefs,
+ "maxInstructionDefs",
+ (unsigned)t->maxInstructionDefs,
+ "maxStackElements",(unsigned)t->maxStackElements,
+ "maxSizeOfInstructions",
+ (unsigned)t->maxSizeOfInstructions,
+ "maxComponentElements",
+ (unsigned)t->maxComponentElements,
+ "maxComponentDepth",
+ (unsigned)t->maxComponentDepth));
}
case 2:
{
char os_2_dict[] = "{s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:h,"
- "s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:s#, s:(llll),"
- "s:s#, s:h, s:h, s:h}";
+ "s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:s#, s:(llll),"
+ "s:s#, s:h, s:h, s:h}";
TT_OS2 *t = (TT_OS2 *)table;
return Py::asObject(Py_BuildValue(os_2_dict,
- "version", (unsigned)t->version,
- "xAvgCharWidth", t->xAvgCharWidth,
- "usWeightClass", (unsigned)t->usWeightClass,
- "usWidthClass", (unsigned)t->usWidthClass,
- "fsType", t->fsType,
- "ySubscriptXSize", t->ySubscriptXSize,
- "ySubscriptYSize", t->ySubscriptYSize,
- "ySubscriptXOffset", t->ySubscriptXOffset,
- "ySubscriptYOffset", t->ySubscriptYOffset,
- "ySuperscriptXSize", t->ySuperscriptXSize,
- "ySuperscriptYSize", t->ySuperscriptYSize,
- "ySuperscriptXOffset", t->ySuperscriptXOffset,
- "ySuperscriptYOffset", t->ySuperscriptYOffset,
- "yStrikeoutSize", t->yStrikeoutSize,
- "yStrikeoutPosition", t->yStrikeoutPosition,
- "sFamilyClass", t->sFamilyClass,
- "panose", t->panose, 10,
- "ulCharRange",
- (unsigned long) t->ulUnicodeRange1,
- (unsigned long) t->ulUnicodeRange2,
- (unsigned long) t->ulUnicodeRange3,
- (unsigned long) t->ulUnicodeRange4,
- "achVendID", t->achVendID, 4,
- "fsSelection", (unsigned)t->fsSelection,
- "fsFirstCharIndex",(unsigned)t->usFirstCharIndex,
- "fsLastCharIndex",(unsigned)t->usLastCharIndex));
+ "version", (unsigned)t->version,
+ "xAvgCharWidth", t->xAvgCharWidth,
+ "usWeightClass", (unsigned)t->usWeightClass,
+ "usWidthClass", (unsigned)t->usWidthClass,
+ "fsType", t->fsType,
+ "ySubscriptXSize", t->ySubscriptXSize,
+ "ySubscriptYSize", t->ySubscriptYSize,
+ "ySubscriptXOffset", t->ySubscriptXOffset,
+ "ySubscriptYOffset", t->ySubscriptYOffset,
+ "ySuperscriptXSize", t->ySuperscriptXSize,
+ "ySuperscriptYSize", t->ySuperscriptYSize,
+ "ySuperscriptXOffset", t->ySuperscriptXOffset,
+ "ySuperscriptYOffset", t->ySuperscriptYOffset,
+ "yStrikeoutSize", t->yStrikeoutSize,
+ "yStrikeoutPosition", t->yStrikeoutPosition,
+ "sFamilyClass", t->sFamilyClass,
+ "panose", t->panose, 10,
+ "ulCharRange",
+ (unsigned long) t->ulUnicodeRange1,
+ (unsigned long) t->ulUnicodeRange2,
+ (unsigned long) t->ulUnicodeRange3,
+ (unsigned long) t->ulUnicodeRange4,
+ "achVendID", t->achVendID, 4,
+ "fsSelection", (unsigned)t->fsSelection,
+ "fsFirstCharIndex",(unsigned)t->usFirstCharIndex,
+ "fsLastCharIndex",(unsigned)t->usLastCharIndex));
}
case 3:
{
char hhea_dict[] = "{s:(h,h), s:h, s:h, s:h, s:i, s:h, s:h, s:h,"
- "s:h, s:h, s:h, s:h, s:i}";
+ "s:h, s:h, s:h, s:h, s:i}";
TT_HoriHeader *t = (TT_HoriHeader *)table;
return Py::asObject(Py_BuildValue(hhea_dict,
- "version",
- FIXED_MAJOR(t->Version),
- FIXED_MINOR(t->Version),
- "ascent", t->Ascender,
- "descent", t->Descender,
- "lineGap", t->Line_Gap,
- "advanceWidthMax",(unsigned)t->advance_Width_Max,
- "minLeftBearing", t->min_Left_Side_Bearing,
- "minRightBearing", t->min_Right_Side_Bearing,
- "xMaxExtent", t->xMax_Extent,
- "caretSlopeRise", t->caret_Slope_Rise,
- "caretSlopeRun", t->caret_Slope_Run,
- "caretOffset", t->caret_Offset,
- "metricDataFormat", t->metric_Data_Format,
- "numOfLongHorMetrics",
- (unsigned)t->number_Of_HMetrics));
+ "version",
+ FIXED_MAJOR(t->Version),
+ FIXED_MINOR(t->Version),
+ "ascent", t->Ascender,
+ "descent", t->Descender,
+ "lineGap", t->Line_Gap,
+ "advanceWidthMax",(unsigned)t->advance_Width_Max,
+ "minLeftBearing", t->min_Left_Side_Bearing,
+ "minRightBearing", t->min_Right_Side_Bearing,
+ "xMaxExtent", t->xMax_Extent,
+ "caretSlopeRise", t->caret_Slope_Rise,
+ "caretSlopeRun", t->caret_Slope_Run,
+ "caretOffset", t->caret_Offset,
+ "metricDataFormat", t->metric_Data_Format,
+ "numOfLongHorMetrics",
+ (unsigned)t->number_Of_HMetrics));
}
case 4:
{
char vhea_dict[] = "{s:(h,h), s:h, s:h, s:h, s:i, s:h, s:h, s:h,"
- "s:h, s:h, s:h, s:h, s:i}";
+ "s:h, s:h, s:h, s:h, s:i}";
TT_VertHeader *t = (TT_VertHeader *)table;
return Py::asObject(Py_BuildValue(vhea_dict,
- "version",
- FIXED_MAJOR(t->Version),
- FIXED_MINOR(t->Version),
- "vertTypoAscender", t->Ascender,
- "vertTypoDescender", t->Descender,
- "vertTypoLineGap", t->Line_Gap,
- "advanceHeightMax",(unsigned)t->advance_Height_Max,
- "minTopSideBearing", t->min_Top_Side_Bearing,
- "minBottomSizeBearing", t->min_Bottom_Side_Bearing,
- "yMaxExtent", t->yMax_Extent,
- "caretSlopeRise", t->caret_Slope_Rise,
- "caretSlopeRun", t->caret_Slope_Run,
- "caretOffset", t->caret_Offset,
- "metricDataFormat", t->metric_Data_Format,
- "numOfLongVerMetrics",
- (unsigned)t->number_Of_VMetrics));
+ "version",
+ FIXED_MAJOR(t->Version),
+ FIXED_MINOR(t->Version),
+ "vertTypoAscender", t->Ascender,
+ "vertTypoDescender", t->Descender,
+ "vertTypoLineGap", t->Line_Gap,
+ "advanceHeightMax",(unsigned)t->advance_Height_Max,
+ "minTopSideBearing", t->min_Top_Side_Bearing,
+ "minBottomSizeBearing", t->min_Bottom_Side_Bearing,
+ "yMaxExtent", t->yMax_Extent,
+ "caretSlopeRise", t->caret_Slope_Rise,
+ "caretSlopeRun", t->caret_Slope_Run,
+ "caretOffset", t->caret_Offset,
+ "metricDataFormat", t->metric_Data_Format,
+ "numOfLongVerMetrics",
+ (unsigned)t->number_Of_VMetrics));
}
case 5:
{
@@ -1660,7 +1660,7 @@
pclt["symbolSet"] = Py::Int((short) t->SymbolSet);
pclt["typeFace"] = Py::String((char *) t->TypeFace, 16);
pclt["characterComplement"] = Py::String((char *)
- t->CharacterComplement, 8);
+ t->CharacterComplement, 8);
pclt["filename"] = Py::String((char *) t->FileName, 6);
pclt["strokeWeight"] = Py::Int((int) t->StrokeWeight);
pclt["widthType"] = Py::Int((int) t->WidthType);
@@ -1735,23 +1735,23 @@
behaviors().doc("FT2Image");
add_varargs_method("write_bitmap", &FT2Image::py_write_bitmap,
- FT2Image::write_bitmap__doc__);
+ FT2Image::write_bitmap__doc__);
add_varargs_method("draw_rect", &FT2Image::py_draw_rect,
- FT2Image::draw_rect__doc__);
+ FT2Image::draw_rect__doc__);
add_varargs_method("draw_rect_filled", &FT2Image::py_draw_rect_filled,
- FT2Image::draw_rect_filled__doc__);
+ FT2Image::draw_rect_filled__doc__);
add_varargs_method("as_array", &FT2Image::py_as_array,
- FT2Image::as_array__doc__);
+ FT2Image::as_array__doc__);
add_varargs_method("as_str", &FT2Image::py_as_str,
- FT2Image::as_str__doc__);
+ FT2Image::as_str__doc__);
add_varargs_method("as_rgb_str", &FT2Image::py_as_rgb_str,
- FT2Image::as_rgb_str__doc__);
+ FT2Image::as_rgb_str__doc__);
add_varargs_method("as_rgba_str", &FT2Image::py_as_rgba_str,
- FT2Image::as_rgba_str__doc__);
+ FT2Image::as_rgba_str__doc__);
add_varargs_method("get_width", &FT2Image::py_get_width,
- "Returns the width of the image");
+ "Returns the width of the image");
add_varargs_method("get_height", &FT2Image::py_get_height,
- "Returns the height of the image");
+ "Returns the height of the image");
}
void
@@ -1770,45 +1770,45 @@
behaviors().doc("FT2Font");
add_varargs_method("clear", &FT2Font::clear,
- FT2Font::clear__doc__);
+ FT2Font::clear__doc__);
add_varargs_method("draw_glyph_to_bitmap", &FT2Font::draw_glyph_to_bitmap,
- FT2Font::draw_glyph_to_bitmap__doc__);
+ FT2Font::draw_glyph_to_bitmap__doc__);
add_varargs_method("draw_glyphs_to_bitmap", &FT2Font::draw_glyphs_to_bitmap,
- FT2Font::draw_glyphs_to_bitmap__doc__);
+ FT2Font::draw_glyphs_to_bitmap__doc__);
add_varargs_method("get_xys", &FT2Font::get_xys,
- FT2Font::get_xys__doc__);
+ FT2Font::get_xys__doc__);
add_varargs_method("get_num_glyphs", &FT2Font::get_num_glyphs,
- FT2Font::get_num_glyphs__doc__);
+ FT2Font::get_num_glyphs__doc__);
add_keyword_method("load_char", &FT2Font::load_char,
- FT2Font::load_char__doc__);
+ FT2Font::load_char__doc__);
add_keyword_method("set_text", &FT2Font::set_text,
- FT2Font::set_text__doc__);
+ FT2Font::set_text__doc__);
add_varargs_method("set_size", &FT2Font::set_size,
- FT2Font::set_size__doc__);
+ FT2Font::set_size__doc__);
add_varargs_method("set_charmap", &FT2Font::set_charmap,
- FT2Font::set_charmap__doc__);
+ FT2Font::set_charmap__doc__);
add_varargs_method("get_width_height", &FT2Font::get_width_height,
- FT2Font::get_width_height__doc__);
+ FT2Font::get_width_height__doc__);
add_varargs_method("get_descent", &FT2Font::get_descent,
- FT2Font::get_descent__doc__);
+ FT2Font::get_descent__doc__);
add_varargs_method("get_glyph_name", &FT2Font::get_glyph_name,
- FT2Font::get_glyph_name__doc__);
+ FT2Font::get_glyph_name__doc__);
add_varargs_method("get_charmap", &FT2Font::get_charmap,
- FT2Font::get_charmap__doc__);
+ FT2Font::get_charmap__doc__);
add_varargs_method("get_kerning", &FT2Font::get_kerning,
- FT2Font::get_kerning__doc__);
+ FT2Font::get_kerning__doc__);
add_varargs_method("get_sfnt", &FT2Font::get_sfnt,
- FT2Font::get_sfnt__doc__);
+ FT2Font::get_sfnt__doc__);
add_varargs_method("get_name_index", &FT2Font::get_name_index,
- FT2Font::get_name_index__doc__);
+ FT2Font::get_name_index__doc__);
add_varargs_method("get_ps_font_info", &FT2Font::get_ps_font_info,
- FT2Font::get_ps_font_info__doc__);
+ FT2Font::get_ps_font_info__doc__);
add_varargs_method("get_sfnt_table", &FT2Font::get_sfnt_table,
- FT2Font::get_sfnt_table__doc__);
+ FT2Font::get_sfnt_table__doc__);
add_varargs_method("get_image", &FT2Font::get_image,
- FT2Font::get_image__doc__);
+ FT2Font::get_image__doc__);
add_varargs_method("attach_file", &FT2Font::attach_file,
FT2Font::attach_file__doc__);
@@ -1882,28 +1882,28 @@
import_array();
Py::Dict d = ft2font->moduleDictionary();
- d["SCALABLE"] = Py::Int(FT_FACE_FLAG_SCALABLE);
- d["FIXED_SIZES"] = Py::Int(FT_FACE_FLAG_FIXED_SIZES);
- d["FIXED_WIDTH"] = Py::Int(FT_FACE_FLAG_FIXED_WIDTH);
- d["SFNT"] = Py::Int(FT_FACE_FLAG_SFNT);
- d["HORIZONTAL"] = Py::Int(FT_FACE_FLAG_HORIZONTAL);
- d["VERTICAL"] = Py::Int(FT_FACE_FLAG_SCALABLE);
- d["KERNING"] = Py::Int(FT_FACE_FLAG_KERNING);
- d["FAST_GLYPHS"] = Py::Int(FT_FACE_FLAG_FAST_GLYPHS);
+ d["SCALABLE"] = Py::Int(FT_FACE_FLAG_SCALABLE);
+ d["FIXED_SIZES"] = Py::Int(FT_FACE_FLAG_FIXED_SIZES);
+ d["FIXED_WIDTH"] = Py::Int(FT_FACE_FLAG_FIXED_WIDTH);
+ d["SFNT"] = Py::Int(FT_FACE_FLAG_SFNT);
+ d["HORIZONTAL"] = Py::Int(FT_FACE_FLAG_HORIZONTAL);
+ d["VERTICAL"] = Py::Int(FT_FACE_FLAG_SCALABLE);
+ d["KERNING"] = Py::Int(FT_FACE_FLAG_KERNING);
+ d["FAST_GLYPHS"] = Py::Int(FT_FACE_FLAG_FAST_GLYPHS);
d["MULTIPLE_MASTERS"] = Py::Int(FT_FACE_FLAG_MULTIPLE_MASTERS);
- d["GLYPH_NAMES"] = Py::Int(FT_FACE_FLAG_GLYPH_NAMES);
- d["EXTERNAL_STREAM"] = Py::Int(FT_FACE_FLAG_EXTERNAL_STREAM);
- d["ITALIC"] = Py::Int(FT_STYLE_FLAG_ITALIC);
- d["BOLD"] = Py::Int(FT_STYLE_FLAG_BOLD);
+ d["GLYPH_NAMES"] = Py::Int(FT_FACE_FLAG_GLYPH_NAMES);
+ d["EXTERNAL_STREAM"] = Py::Int(FT_FACE_FLAG_EXTERNAL_STREAM);
+ d["ITALIC"] = Py::Int(FT_STYLE_FLAG_ITALIC);
+ d["BOLD"] = Py::Int(FT_STYLE_FLAG_BOLD);
d["KERNING_DEFAULT"] = Py::Int(FT_KERNING_DEFAULT);
d["KERNING_UNFITTED"] = Py::Int(FT_KERNING_UNFITTED);
d["KERNING_UNSCALED"] = Py::Int(FT_KERNING_UNSCALED);
- d["LOAD_DEFAULT"] = Py::Long(FT_LOAD_DEFAULT);
- d["LOAD_NO_SCALE"] = Py::Long(FT_LOAD_NO_SCALE);
- d["LOAD_NO_HINTING"] = Py::Long(FT_LOAD_NO_HINTING);
- d["LOAD_RENDER"] = Py::Long(FT_LOAD_RENDER);
- d["LOAD_NO_BITMAP"] = Py::Long(FT_LOAD_NO_BITMAP);
+ d["LOAD_DEFAULT"] = Py::Long(FT_LOAD_DEFAULT);
+ d["LOAD_NO_SCALE"] = Py::Long(FT_LOAD_NO_SCALE);
+ d["LOAD_NO_HINTING"] = Py::Long(FT_LOAD_NO_HINTING);
+ d["LOAD_RENDER"] = Py::Long(FT_LOAD_RENDER);
+ d["LOAD_NO_BITMAP"] = Py::Long(FT_LOAD_NO_BITMAP);
d["LOAD_VERTICAL_LAYOUT"] = Py::Long(FT_LOAD_VERTICAL_LAYOUT);
d["LOAD_FORCE_AUTOHINT"] = Py::Long(FT_LOAD_FORCE_AUTOHINT);
d["LOAD_CROP_BITMAP"] = Py::Long(FT_LOAD_CROP_BITMAP);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2009-12-03 19:02:20
|
Revision: 8002
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8002&view=rev
Author: mdboom
Date: 2009-12-03 19:02:07 +0000 (Thu, 03 Dec 2009)
Log Message:
-----------
Merged revisions 8001 via svnmerge from
https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v0_99_maint
........
r8001 | mdboom | 2009-12-03 13:54:54 -0500 (Thu, 03 Dec 2009) | 2 lines
[2903460] _path.pyd crashes in 0.99.1.win32-py2.6 on PIII CPU
........
Modified Paths:
--------------
trunk/matplotlib/src/_path.cpp
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_99_maint:1-7998
+ /branches/mathtex:1-7263 /branches/v0_99_maint:1-8001
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
Modified: trunk/matplotlib/src/_path.cpp
===================================================================
--- trunk/matplotlib/src/_path.cpp 2009-12-03 18:54:54 UTC (rev 8001)
+++ trunk/matplotlib/src/_path.cpp 2009-12-03 19:02:07 UTC (rev 8002)
@@ -147,7 +147,7 @@
// The following cases denote the beginning on a new subpath
if (code == agg::path_cmd_stop ||
- (code & agg::path_cmd_end_poly) == agg::path_cmd_end_poly)
+ (code & agg::path_cmd_end_poly) == agg::path_cmd_end_poly)
{
x = sx;
y = sy;
@@ -190,13 +190,13 @@
vty1 = y;
}
while (code != agg::path_cmd_stop &&
- (code & agg::path_cmd_end_poly) != agg::path_cmd_end_poly);
+ (code & agg::path_cmd_end_poly) != agg::path_cmd_end_poly);
yflag1 = (vty1 >= ty);
if (yflag0 != yflag1)
{
if ( ((vty1-ty) * (vtx0-vtx1) >=
- (vtx1-tx) * (vty0-vty1)) == yflag1 )
+ (vtx1-tx) * (vty0-vty1)) == yflag1 )
{
inside_flag ^= 1;
}
@@ -462,7 +462,7 @@
//segments, trans, clipbox, colors, linewidths, antialiaseds
agg::trans_affine master_transform = py_to_agg_transformation_matrix(args[0].ptr());
- Py::SeqBase<Py::Object> paths = args[1];
+ Py::SeqBase<Py::Object> paths = args[1];
Py::SeqBase<Py::Object> transforms_obj = args[2];
Py::Object offsets_obj = args[3];
agg::trans_affine offset_trans = py_to_agg_transformation_matrix(args[4].ptr(), false);
@@ -474,15 +474,15 @@
{
offsets = (PyArrayObject*)PyArray_FromObject(offsets_obj.ptr(), PyArray_DOUBLE, 0, 2);
if (!offsets ||
- (PyArray_NDIM(offsets) == 2 && PyArray_DIM(offsets, 1) != 2) ||
- (PyArray_NDIM(offsets) == 1 && PyArray_DIM(offsets, 0) != 0))
+ (PyArray_NDIM(offsets) == 2 && PyArray_DIM(offsets, 1) != 2) ||
+ (PyArray_NDIM(offsets) == 1 && PyArray_DIM(offsets, 0) != 0))
{
throw Py::ValueError("Offsets array must be Nx2");
}
size_t Npaths = paths.length();
size_t Noffsets = offsets->dimensions[0];
- size_t N = std::max(Npaths, Noffsets);
+ size_t N = std::max(Npaths, Noffsets);
size_t Ntransforms = std::min(transforms_obj.length(), N);
size_t i;
@@ -555,7 +555,7 @@
double y = Py::Float(args[1]);
double radius = Py::Float(args[2]);
agg::trans_affine master_transform = py_to_agg_transformation_matrix(args[3].ptr());
- Py::SeqBase<Py::Object> paths = args[4];
+ Py::SeqBase<Py::Object> paths = args[4];
Py::SeqBase<Py::Object> transforms_obj = args[5];
Py::SeqBase<Py::Object> offsets_obj = args[6];
agg::trans_affine offset_trans = py_to_agg_transformation_matrix(args[7].ptr());
@@ -563,8 +563,8 @@
PyArrayObject* offsets = (PyArrayObject*)PyArray_FromObject(offsets_obj.ptr(), PyArray_DOUBLE, 0, 2);
if (!offsets ||
- (PyArray_NDIM(offsets) == 2 && PyArray_DIM(offsets, 1) != 2) ||
- (PyArray_NDIM(offsets) == 1 && PyArray_DIM(offsets, 0) != 0))
+ (PyArray_NDIM(offsets) == 2 && PyArray_DIM(offsets, 1) != 2) ||
+ (PyArray_NDIM(offsets) == 1 && PyArray_DIM(offsets, 0) != 0))
{
Py_XDECREF(offsets);
throw Py::ValueError("Offsets array must be Nx2");
@@ -888,7 +888,7 @@
}
for (size_t i = 0; i < size; ++i)
{
- ((double *)pyarray->data)[2*i] = (*p)[i].x;
+ ((double *)pyarray->data)[2*i] = (*p)[i].x;
((double *)pyarray->data)[2*i+1] = (*p)[i].y;
}
if (PyList_SetItem(py_results, p - results.begin(), (PyObject *)pyarray) != -1)
@@ -922,14 +922,14 @@
vertices = (PyArrayObject*)PyArray_FromObject
(vertices_obj.ptr(), PyArray_DOUBLE, 1, 2);
if (!vertices ||
- (PyArray_NDIM(vertices) == 2 && PyArray_DIM(vertices, 1) != 2) ||
- (PyArray_NDIM(vertices) == 1 && PyArray_DIM(vertices, 0) != 2))
+ (PyArray_NDIM(vertices) == 2 && PyArray_DIM(vertices, 1) != 2) ||
+ (PyArray_NDIM(vertices) == 1 && PyArray_DIM(vertices, 0) != 2))
throw Py::ValueError("Invalid vertices array.");
transform = (PyArrayObject*) PyArray_FromObject
(transform_obj.ptr(), PyArray_DOUBLE, 2, 2);
if (!transform ||
- PyArray_DIM(transform, 0) != 3 ||
+ PyArray_DIM(transform, 0) != 3 ||
PyArray_DIM(transform, 1) != 3)
throw Py::ValueError("Invalid transform.");
@@ -1010,7 +1010,7 @@
{
args.verify_length(2);
- Py::Object bbox = args[0];
+ Py::Object bbox = args[0];
Py::SeqBase<Py::Object> bboxes = args[1];
double ax0, ay0, ax1, ay1;
@@ -1131,13 +1131,13 @@
void _add_polygon(Py::List& polygons, const std::vector<double>& polygon) {
if (polygon.size() == 0)
- return;
+ return;
npy_intp polygon_dims[] = { polygon.size() / 2, 2, 0 };
PyArrayObject* polygon_array = NULL;
polygon_array = (PyArrayObject*)PyArray_SimpleNew
- (2, polygon_dims, PyArray_DOUBLE);
+ (2, polygon_dims, PyArray_DOUBLE);
if (!polygon_array)
- throw Py::MemoryError("Error creating polygon array");
+ throw Py::MemoryError("Error creating polygon array");
double* polygon_data = (double*)PyArray_DATA(polygon_array);
memcpy(polygon_data, &polygon[0], polygon.size() * sizeof(double));
polygons.append(Py::Object((PyObject*)polygon_array, true));
@@ -1179,26 +1179,26 @@
while ((code = curve.vertex(&x, &y)) != agg::path_cmd_stop)
{
- if ((code & agg::path_cmd_end_poly) == agg::path_cmd_end_poly)
+ if ((code & agg::path_cmd_end_poly) == agg::path_cmd_end_poly)
{
- if (polygon.size() >= 2)
- {
- polygon.push_back(polygon[0]);
- polygon.push_back(polygon[1]);
- _add_polygon(polygons, polygon);
- }
- polygon.clear();
- }
+ if (polygon.size() >= 2)
+ {
+ polygon.push_back(polygon[0]);
+ polygon.push_back(polygon[1]);
+ _add_polygon(polygons, polygon);
+ }
+ polygon.clear();
+ }
else
{
- if (code == agg::path_cmd_move_to)
+ if (code == agg::path_cmd_move_to)
{
- _add_polygon(polygons, polygon);
- polygon.clear();
- }
- polygon.push_back(x);
- polygon.push_back(y);
- }
+ _add_polygon(polygons, polygon);
+ polygon.clear();
+ }
+ polygon.push_back(x);
+ polygon.push_back(y);
+ }
}
_add_polygon(polygons, polygon);
@@ -1356,8 +1356,8 @@
DL_EXPORT(void)
init_path(void)
{
- import_array();
-
static _path_module* _path = NULL;
_path = new _path_module;
+
+ import_array();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2009-12-03 18:55:30
|
Revision: 8001
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8001&view=rev
Author: mdboom
Date: 2009-12-03 18:54:54 +0000 (Thu, 03 Dec 2009)
Log Message:
-----------
[2903460] _path.pyd crashes in 0.99.1.win32-py2.6 on PIII CPU
Modified Paths:
--------------
branches/v0_99_maint/src/_path.cpp
Modified: branches/v0_99_maint/src/_path.cpp
===================================================================
--- branches/v0_99_maint/src/_path.cpp 2009-12-02 01:13:25 UTC (rev 8000)
+++ branches/v0_99_maint/src/_path.cpp 2009-12-03 18:54:54 UTC (rev 8001)
@@ -147,7 +147,7 @@
// The following cases denote the beginning on a new subpath
if (code == agg::path_cmd_stop ||
- (code & agg::path_cmd_end_poly) == agg::path_cmd_end_poly)
+ (code & agg::path_cmd_end_poly) == agg::path_cmd_end_poly)
{
x = sx;
y = sy;
@@ -190,13 +190,13 @@
vty1 = y;
}
while (code != agg::path_cmd_stop &&
- (code & agg::path_cmd_end_poly) != agg::path_cmd_end_poly);
+ (code & agg::path_cmd_end_poly) != agg::path_cmd_end_poly);
yflag1 = (vty1 >= ty);
if (yflag0 != yflag1)
{
if ( ((vty1-ty) * (vtx0-vtx1) >=
- (vtx1-tx) * (vty0-vty1)) == yflag1 )
+ (vtx1-tx) * (vty0-vty1)) == yflag1 )
{
inside_flag ^= 1;
}
@@ -462,7 +462,7 @@
//segments, trans, clipbox, colors, linewidths, antialiaseds
agg::trans_affine master_transform = py_to_agg_transformation_matrix(args[0].ptr());
- Py::SeqBase<Py::Object> paths = args[1];
+ Py::SeqBase<Py::Object> paths = args[1];
Py::SeqBase<Py::Object> transforms_obj = args[2];
Py::Object offsets_obj = args[3];
agg::trans_affine offset_trans = py_to_agg_transformation_matrix(args[4].ptr(), false);
@@ -474,15 +474,15 @@
{
offsets = (PyArrayObject*)PyArray_FromObject(offsets_obj.ptr(), PyArray_DOUBLE, 0, 2);
if (!offsets ||
- (PyArray_NDIM(offsets) == 2 && PyArray_DIM(offsets, 1) != 2) ||
- (PyArray_NDIM(offsets) == 1 && PyArray_DIM(offsets, 0) != 0))
+ (PyArray_NDIM(offsets) == 2 && PyArray_DIM(offsets, 1) != 2) ||
+ (PyArray_NDIM(offsets) == 1 && PyArray_DIM(offsets, 0) != 0))
{
throw Py::ValueError("Offsets array must be Nx2");
}
size_t Npaths = paths.length();
size_t Noffsets = offsets->dimensions[0];
- size_t N = std::max(Npaths, Noffsets);
+ size_t N = std::max(Npaths, Noffsets);
size_t Ntransforms = std::min(transforms_obj.length(), N);
size_t i;
@@ -555,7 +555,7 @@
double y = Py::Float(args[1]);
double radius = Py::Float(args[2]);
agg::trans_affine master_transform = py_to_agg_transformation_matrix(args[3].ptr());
- Py::SeqBase<Py::Object> paths = args[4];
+ Py::SeqBase<Py::Object> paths = args[4];
Py::SeqBase<Py::Object> transforms_obj = args[5];
Py::SeqBase<Py::Object> offsets_obj = args[6];
agg::trans_affine offset_trans = py_to_agg_transformation_matrix(args[7].ptr());
@@ -563,8 +563,8 @@
PyArrayObject* offsets = (PyArrayObject*)PyArray_FromObject(offsets_obj.ptr(), PyArray_DOUBLE, 0, 2);
if (!offsets ||
- (PyArray_NDIM(offsets) == 2 && PyArray_DIM(offsets, 1) != 2) ||
- (PyArray_NDIM(offsets) == 1 && PyArray_DIM(offsets, 0) != 0))
+ (PyArray_NDIM(offsets) == 2 && PyArray_DIM(offsets, 1) != 2) ||
+ (PyArray_NDIM(offsets) == 1 && PyArray_DIM(offsets, 0) != 0))
{
Py_XDECREF(offsets);
throw Py::ValueError("Offsets array must be Nx2");
@@ -888,7 +888,7 @@
}
for (size_t i = 0; i < size; ++i)
{
- ((double *)pyarray->data)[2*i] = (*p)[i].x;
+ ((double *)pyarray->data)[2*i] = (*p)[i].x;
((double *)pyarray->data)[2*i+1] = (*p)[i].y;
}
if (PyList_SetItem(py_results, p - results.begin(), (PyObject *)pyarray) != -1)
@@ -922,14 +922,14 @@
vertices = (PyArrayObject*)PyArray_FromObject
(vertices_obj.ptr(), PyArray_DOUBLE, 1, 2);
if (!vertices ||
- (PyArray_NDIM(vertices) == 2 && PyArray_DIM(vertices, 1) != 2) ||
- (PyArray_NDIM(vertices) == 1 && PyArray_DIM(vertices, 0) != 2))
+ (PyArray_NDIM(vertices) == 2 && PyArray_DIM(vertices, 1) != 2) ||
+ (PyArray_NDIM(vertices) == 1 && PyArray_DIM(vertices, 0) != 2))
throw Py::ValueError("Invalid vertices array.");
transform = (PyArrayObject*) PyArray_FromObject
(transform_obj.ptr(), PyArray_DOUBLE, 2, 2);
if (!transform ||
- PyArray_DIM(transform, 0) != 3 ||
+ PyArray_DIM(transform, 0) != 3 ||
PyArray_DIM(transform, 1) != 3)
throw Py::ValueError("Invalid transform.");
@@ -1010,7 +1010,7 @@
{
args.verify_length(2);
- Py::Object bbox = args[0];
+ Py::Object bbox = args[0];
Py::SeqBase<Py::Object> bboxes = args[1];
double ax0, ay0, ax1, ay1;
@@ -1131,13 +1131,13 @@
void _add_polygon(Py::List& polygons, const std::vector<double>& polygon) {
if (polygon.size() == 0)
- return;
+ return;
npy_intp polygon_dims[] = { polygon.size() / 2, 2, 0 };
PyArrayObject* polygon_array = NULL;
polygon_array = (PyArrayObject*)PyArray_SimpleNew
- (2, polygon_dims, PyArray_DOUBLE);
+ (2, polygon_dims, PyArray_DOUBLE);
if (!polygon_array)
- throw Py::MemoryError("Error creating polygon array");
+ throw Py::MemoryError("Error creating polygon array");
double* polygon_data = (double*)PyArray_DATA(polygon_array);
memcpy(polygon_data, &polygon[0], polygon.size() * sizeof(double));
polygons.append(Py::Object((PyObject*)polygon_array, true));
@@ -1179,26 +1179,26 @@
while ((code = curve.vertex(&x, &y)) != agg::path_cmd_stop)
{
- if ((code & agg::path_cmd_end_poly) == agg::path_cmd_end_poly)
+ if ((code & agg::path_cmd_end_poly) == agg::path_cmd_end_poly)
{
- if (polygon.size() >= 2)
- {
- polygon.push_back(polygon[0]);
- polygon.push_back(polygon[1]);
- _add_polygon(polygons, polygon);
- }
- polygon.clear();
- }
+ if (polygon.size() >= 2)
+ {
+ polygon.push_back(polygon[0]);
+ polygon.push_back(polygon[1]);
+ _add_polygon(polygons, polygon);
+ }
+ polygon.clear();
+ }
else
{
- if (code == agg::path_cmd_move_to)
+ if (code == agg::path_cmd_move_to)
{
- _add_polygon(polygons, polygon);
- polygon.clear();
- }
- polygon.push_back(x);
- polygon.push_back(y);
- }
+ _add_polygon(polygons, polygon);
+ polygon.clear();
+ }
+ polygon.push_back(x);
+ polygon.push_back(y);
+ }
}
_add_polygon(polygons, polygon);
@@ -1356,8 +1356,8 @@
DL_EXPORT(void)
init_path(void)
{
- import_array();
-
static _path_module* _path = NULL;
_path = new _path_module;
+
+ import_array();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2009-12-02 01:13:38
|
Revision: 8000
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8000&view=rev
Author: efiring
Date: 2009-12-02 01:13:25 +0000 (Wed, 02 Dec 2009)
Log Message:
-----------
Draw artists with identical zorder in the order in which they were added.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/axes.py
trunk/matplotlib/lib/matplotlib/figure.py
Modified: trunk/matplotlib/lib/matplotlib/axes.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/axes.py 2009-12-01 19:09:10 UTC (rev 7999)
+++ trunk/matplotlib/lib/matplotlib/axes.py 2009-12-02 01:13:25 UTC (rev 8000)
@@ -1700,10 +1700,10 @@
dsu = [ (a.zorder, a) for a in artists
if not a.get_animated() ]
- dsu.sort()
+ dsu.sort(key=lambda x: x[0])
- # rasterze artists with negative zorder
+ # rasterize artists with negative zorder
# if the minimum zorder is negative, start rasterization
rasterization_zorder = self._rasterization_zorder
if len(dsu) > 0 and dsu[0][0] < rasterization_zorder:
@@ -1722,15 +1722,15 @@
if len(self.images)<=1 or renderer.option_image_nocomposite():
for im in self.images:
dsu.append( (im.zorder, im) )
- dsu.sort() # re-sort with images now
+ dsu.sort(key=lambda x: x[0]) # re-sort with images now
else:
# make a composite image blending alpha
# list of (mimage.Image, ox, oy)
zorder_images = [(im.zorder, im) for im in self.images \
if im.get_visible()]
- zorder_images.sort()
-
+ zorder_images.sort(key=lambda x: x[0])
+
mag = renderer.get_image_magnification()
ims = [(im.make_image(mag),0,0) for z,im in zorder_images]
@@ -1793,7 +1793,7 @@
if self._lastRenderer is None:
raise RuntimeError('You must first call ax.draw()')
dsu = [(a.zorder, a) for a in self.animated.keys()]
- dsu.sort()
+ dsu.sort(key=lambda x: x[0])
renderer = self._lastRenderer
renderer.blit()
for tmp, a in dsu:
Modified: trunk/matplotlib/lib/matplotlib/figure.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/figure.py 2009-12-01 19:09:10 UTC (rev 7999)
+++ trunk/matplotlib/lib/matplotlib/figure.py 2009-12-02 01:13:25 UTC (rev 8000)
@@ -798,7 +798,7 @@
dsu.append( (a.get_zorder(), a.draw, [renderer]))
- dsu.sort()
+ dsu.sort(key=lambda x: x[0])
for zorder, func, args in dsu:
func(*args)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2009-12-01 19:09:20
|
Revision: 7999
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7999&view=rev
Author: mdboom
Date: 2009-12-01 19:09:10 +0000 (Tue, 01 Dec 2009)
Log Message:
-----------
Merged revisions 7998 via svnmerge from
https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v0_99_maint
........
r7998 | mdboom | 2009-12-01 14:01:45 -0500 (Tue, 01 Dec 2009) | 2 lines
[2906157] Let sphinx reference matplotlib-created plots (backport)
........
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_99_maint:1-7995
+ /branches/mathtex:1-7263 /branches/v0_99_maint:1-7998
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2009-12-01 19:01:53
|
Revision: 7998
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7998&view=rev
Author: mdboom
Date: 2009-12-01 19:01:45 +0000 (Tue, 01 Dec 2009)
Log Message:
-----------
[2906157] Let sphinx reference matplotlib-created plots (backport)
Modified Paths:
--------------
branches/v0_99_maint/lib/matplotlib/sphinxext/plot_directive.py
Modified: branches/v0_99_maint/lib/matplotlib/sphinxext/plot_directive.py
===================================================================
--- branches/v0_99_maint/lib/matplotlib/sphinxext/plot_directive.py 2009-12-01 18:58:49 UTC (rev 7997)
+++ branches/v0_99_maint/lib/matplotlib/sphinxext/plot_directive.py 2009-12-01 19:01:45 UTC (rev 7998)
@@ -276,8 +276,8 @@
# treated as relative to the root of the documentation tree. We need
# to support both methods here.
tmpdir = os.path.join('build', outdir)
+ tmpdir = os.path.abspath(tmpdir)
if sphinx_version < (0, 6):
- tmpdir = os.path.abspath(tmpdir)
prefix = ''
else:
prefix = '/'
@@ -343,6 +343,36 @@
return []
+def mark_plot_labels(app, document):
+ """
+ To make plots referenceable, we need to move the reference from
+ the "htmlonly" (or "latexonly") node to the actual figure node
+ itself.
+ """
+ for name, explicit in document.nametypes.iteritems():
+ if not explicit:
+ continue
+ labelid = document.nameids[name]
+ if labelid is None:
+ continue
+ node = document.ids[labelid]
+ if node.tagname in ('html_only', 'latex_only'):
+ for n in node:
+ if n.tagname == 'figure':
+ sectname = name
+ for c in n:
+ if c.tagname == 'caption':
+ sectname = c.astext()
+ break
+
+ node['ids'].remove(labelid)
+ node['names'].remove(name)
+ n['ids'].append(labelid)
+ n['names'].append(name)
+ document.settings.env.labels[name] = \
+ document.settings.env.docname, labelid, sectname
+ break
+
def setup(app):
setup.app = app
setup.config = app.config
@@ -354,3 +384,4 @@
['png', 'hires.png', 'pdf'],
True)
+ app.connect('doctree-read', mark_plot_labels)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2009-12-01 18:58:58
|
Revision: 7997
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7997&view=rev
Author: mdboom
Date: 2009-12-01 18:58:49 +0000 (Tue, 01 Dec 2009)
Log Message:
-----------
[2906157] Let sphinx reference matplotlib-created plots
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/sphinxext/plot_directive.py
Modified: trunk/matplotlib/lib/matplotlib/sphinxext/plot_directive.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/sphinxext/plot_directive.py 2009-12-01 15:17:21 UTC (rev 7996)
+++ trunk/matplotlib/lib/matplotlib/sphinxext/plot_directive.py 2009-12-01 18:58:49 UTC (rev 7997)
@@ -308,8 +308,8 @@
# treated as relative to the root of the documentation tree. We
# need to support both methods here.
tmpdir = os.path.join('build', outdir)
+ tmpdir = os.path.abspath(tmpdir)
if sphinx_version < (0, 6):
- tmpdir = os.path.abspath(tmpdir)
prefix = ''
else:
prefix = '/'
@@ -421,6 +421,36 @@
return _plot_directive(plot_path, 'inline', None, plot_code, '', options,
state_machine)
+def mark_plot_labels(app, document):
+ """
+ To make plots referenceable, we need to move the reference from
+ the "htmlonly" (or "latexonly") node to the actual figure node
+ itself.
+ """
+ for name, explicit in document.nametypes.iteritems():
+ if not explicit:
+ continue
+ labelid = document.nameids[name]
+ if labelid is None:
+ continue
+ node = document.ids[labelid]
+ if node.tagname in ('html_only', 'latex_only'):
+ for n in node:
+ if n.tagname == 'figure':
+ sectname = name
+ for c in n:
+ if c.tagname == 'caption':
+ sectname = c.astext()
+ break
+
+ node['ids'].remove(labelid)
+ node['names'].remove(name)
+ n['ids'].append(labelid)
+ n['names'].append(name)
+ document.settings.env.labels[name] = \
+ document.settings.env.docname, labelid, sectname
+ break
+
def setup(app):
setup.app = app
setup.config = app.config
@@ -441,3 +471,4 @@
[('png', 80), ('hires.png', 200), ('pdf', 50)],
True)
+ app.connect('doctree-read', mark_plot_labels)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2009-12-01 15:17:32
|
Revision: 7996
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7996&view=rev
Author: mdboom
Date: 2009-12-01 15:17:21 +0000 (Tue, 01 Dec 2009)
Log Message:
-----------
Merged revisions 7989,7991 via svnmerge from
https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v0_99_maint
........
r7989 | mdboom | 2009-11-30 12:24:49 -0500 (Mon, 30 Nov 2009) | 1 line
Fix SF-2903596 on the 0.99.x branch
........
r7991 | mdboom | 2009-11-30 13:30:09 -0500 (Mon, 30 Nov 2009) | 2 lines
Fix bug in usage of "contains"
........
Modified Paths:
--------------
trunk/matplotlib/examples/event_handling/looking_glass.py
trunk/matplotlib/setupext.py
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_99_maint:1-7983
+ /branches/mathtex:1-7263 /branches/v0_99_maint:1-7995
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
+ /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
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
+ /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
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
+ /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
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
+ /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
Modified: trunk/matplotlib/examples/event_handling/looking_glass.py
===================================================================
--- trunk/matplotlib/examples/event_handling/looking_glass.py 2009-12-01 14:29:11 UTC (rev 7995)
+++ trunk/matplotlib/examples/event_handling/looking_glass.py 2009-12-01 15:17:21 UTC (rev 7996)
@@ -24,7 +24,7 @@
if event.inaxes!=ax:
return
- if not circ.contains(event):
+ if not circ.contains(event)[0]:
return
self.pressevent = event
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
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
+ /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
Modified: trunk/matplotlib/setupext.py
===================================================================
--- trunk/matplotlib/setupext.py 2009-12-01 14:29:11 UTC (rev 7995)
+++ trunk/matplotlib/setupext.py 2009-12-01 15:17:21 UTC (rev 7996)
@@ -122,8 +122,8 @@
'backend': None}
defines = [
- ('PY_ARRAY_UNIQUE_SYMBOL', 'MPL_ARRAY_API'),
- ('PYCXX_ISO_CPP_LIB', '1')]
+ ('PY_ARRAY_UNIQUE_SYMBOL', 'MPL_ARRAY_API'),
+ ('PYCXX_ISO_CPP_LIB', '1')]
# Based on the contents of setup.cfg, determine the build options
if os.path.exists("setup.cfg"):
@@ -1123,7 +1123,7 @@
'ttconv/ttutil.cpp']
module = Extension('matplotlib.ttconv', deps,
- define_macros=defines)
+ define_macros=defines)
add_base_flags(module)
ext_modules.append(module)
BUILT_TTCONV = True
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ds...@us...> - 2009-12-01 14:29:24
|
Revision: 7995
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7995&view=rev
Author: dsdale
Date: 2009-12-01 14:29:11 +0000 (Tue, 01 Dec 2009)
Log Message:
-----------
improve blitting with the qt4 backend
Modified Paths:
--------------
trunk/matplotlib/CHANGELOG
trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py
Modified: trunk/matplotlib/CHANGELOG
===================================================================
--- trunk/matplotlib/CHANGELOG 2009-12-01 03:50:21 UTC (rev 7994)
+++ trunk/matplotlib/CHANGELOG 2009-12-01 14:29:11 UTC (rev 7995)
@@ -1,3 +1,6 @@
+2009-12-01 Applied Laurent Dufrechou's patch to improve blitting with
+ the qt4 backend - DSD
+
2009-11-13 The pdf backend now allows changing the contents of
a pdf file's information dictionary via PdfPages.infodict. - JKS
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py 2009-12-01 03:50:21 UTC (rev 7994)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py 2009-12-01 14:29:11 UTC (rev 7995)
@@ -138,7 +138,7 @@
self.replot = bbox
l, b, w, h = bbox.bounds
t = b + h
- self.update(l, self.renderer.height-t, w, h)
+ self.repaint(l, self.renderer.height-t, w, h)
def print_figure(self, *args, **kwargs):
FigureCanvasAgg.print_figure(self, *args, **kwargs)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-12-01 03:50:33
|
Revision: 7994
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7994&view=rev
Author: jdh2358
Date: 2009-12-01 03:50:21 +0000 (Tue, 01 Dec 2009)
Log Message:
-----------
add zorder to figure drawing
Modified Paths:
--------------
trunk/matplotlib/doc/pyplots/pyplot_simple.py
trunk/matplotlib/examples/pylab_examples/figimage_demo.py
trunk/matplotlib/lib/matplotlib/figure.py
trunk/matplotlib/lib/matplotlib/pyplot.py
Modified: trunk/matplotlib/doc/pyplots/pyplot_simple.py
===================================================================
--- trunk/matplotlib/doc/pyplots/pyplot_simple.py 2009-11-30 21:38:58 UTC (rev 7993)
+++ trunk/matplotlib/doc/pyplots/pyplot_simple.py 2009-12-01 03:50:21 UTC (rev 7994)
@@ -1,4 +1,4 @@
import matplotlib.pyplot as plt
-plt.plot([1,2,3])
+plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()
Modified: trunk/matplotlib/examples/pylab_examples/figimage_demo.py
===================================================================
--- trunk/matplotlib/examples/pylab_examples/figimage_demo.py 2009-11-30 21:38:58 UTC (rev 7993)
+++ trunk/matplotlib/examples/pylab_examples/figimage_demo.py 2009-12-01 03:50:21 UTC (rev 7994)
@@ -12,6 +12,9 @@
Z.shape = 100,100
Z[:,50:] = 1.
+ax = fig.add_subplot(111)
+ax.grid(True)
+
im1 = plt.figimage(Z, xo=50, yo=0, cmap=cm.jet, origin='lower')
im2 = plt.figimage(Z, xo=100, yo=100, alpha=.8, cmap=cm.jet, origin='lower')
Modified: trunk/matplotlib/lib/matplotlib/figure.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/figure.py 2009-11-30 21:38:58 UTC (rev 7993)
+++ trunk/matplotlib/lib/matplotlib/figure.py 2009-12-01 03:50:21 UTC (rev 7994)
@@ -343,7 +343,8 @@
cmap=None,
vmin=None,
vmax=None,
- origin=None):
+ origin=None,
+ **kwargs):
"""
call signatures::
@@ -393,11 +394,14 @@
.. plot:: mpl_examples/pylab_examples/figimage_demo.py
+
+ Additional kwargs are Artist kwargs passed on to
+ :class:`~matplotlib.image.FigureImage`
"""
if not self._hold: self.clf()
- im = FigureImage(self, cmap, norm, xo, yo, origin)
+ im = FigureImage(self, cmap, norm, xo, yo, origin, **kwargs)
im.set_array(X)
im.set_alpha(alpha)
if norm is None:
@@ -735,11 +739,20 @@
if self.frameon: self.patch.draw(renderer)
+ # a list of (zorder, func_to_call, list_of_args)
+ dsu = []
+
+
# todo: respect zorder
- for p in self.patches: p.draw(renderer)
- for l in self.lines: l.draw(renderer)
- for a in self.artists: a.draw(renderer)
+ for a in self.patches:
+ dsu.append( (a.get_zorder(), a.draw, [renderer]))
+ for a in self.lines:
+ dsu.append( (a.get_zorder(), a.draw, [renderer]))
+
+ for a in self.artists:
+ dsu.append( (a.get_zorder(), a.draw, [renderer]))
+
# override the renderer default if self.suppressComposite
# is not None
composite = renderer.option_image_nocomposite()
@@ -747,8 +760,8 @@
composite = self.suppressComposite
if len(self.images)<=1 or composite or not allequal([im.origin for im in self.images]):
- for im in self.images:
- im.draw(renderer)
+ for a in self.images:
+ dsu.append( (a.get_zorder(), a.draw, [renderer]))
else:
# make a composite image blending alpha
# list of (_image.Image, ox, oy)
@@ -762,21 +775,33 @@
im.is_grayscale = False
l, b, w, h = self.bbox.bounds
- gc = renderer.new_gc()
- gc.set_clip_rectangle(self.bbox)
- gc.set_clip_path(self.get_clip_path())
- renderer.draw_image(gc, l, b, im)
- gc.restore()
+ def draw_composite():
+ gc = renderer.new_gc()
+ gc.set_clip_rectangle(self.bbox)
+ gc.set_clip_path(self.get_clip_path())
+ renderer.draw_image(gc, l, b, im)
+ gc.restore()
+
+ if len(ims):
+ dsu.append((ims[0].get_zorder(), draw_composite, []))
+
# render the axes
- for a in self.axes: a.draw(renderer)
+ for a in self.axes:
+ dsu.append( (a.get_zorder(), a.draw, [renderer]))
# render the figure text
- for t in self.texts: t.draw(renderer)
+ for a in self.texts:
+ dsu.append( (a.get_zorder(), a.draw, [renderer]))
- for legend in self.legends:
- legend.draw(renderer)
+ for a in self.legends:
+ dsu.append( (a.get_zorder(), a.draw, [renderer]))
+
+ dsu.sort()
+ for zorder, func, args in dsu:
+ func(*args)
+
renderer.close_group('figure')
self._cachedRenderer = renderer
@@ -1045,7 +1070,7 @@
if args and is_string_like(args[0]) and '.' not in args[0] and extension != 'auto':
fname = args[0] + '.' + extension
args = (fname,) + args[1:]
-
+
transparent = kwargs.pop('transparent', False)
if transparent:
original_figure_alpha = self.patch.get_alpha()
Modified: trunk/matplotlib/lib/matplotlib/pyplot.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/pyplot.py 2009-11-30 21:38:58 UTC (rev 7993)
+++ trunk/matplotlib/lib/matplotlib/pyplot.py 2009-12-01 03:50:21 UTC (rev 7994)
@@ -401,7 +401,7 @@
# allow callers to override the hold state by passing hold=True|False
ret = gcf().figimage(*args, **kwargs)
draw_if_interactive()
- sci(ret)
+ #sci(ret) # JDH figimage should not set current image -- it is not mappable, etc
return ret
def figlegend(handles, labels, loc, **kwargs):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2009-11-30 22:50:24
|
Revision: 7993
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7993&view=rev
Author: efiring
Date: 2009-11-30 21:38:58 +0000 (Mon, 30 Nov 2009)
Log Message:
-----------
Make the kwarg combination "units='xy', angles='xy', scale=1" work as expected
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/quiver.py
Modified: trunk/matplotlib/lib/matplotlib/quiver.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/quiver.py 2009-11-30 21:13:34 UTC (rev 7992)
+++ trunk/matplotlib/lib/matplotlib/quiver.py 2009-11-30 21:38:58 UTC (rev 7993)
@@ -64,7 +64,7 @@
Keyword arguments:
- *units*: ['width' | 'height' | 'dots' | 'inches' | 'x' | 'y' ]
+ *units*: ['width' | 'height' | 'dots' | 'inches' | 'x' | 'y' | 'xy']
arrow units; the arrow dimensions *except for length* are in
multiples of this unit.
@@ -518,17 +518,33 @@
self.set_transform(trans)
return trans
- def _angles(self, U, V, eps=0.001):
+ def _angles_lengths(self, U, V, eps=1):
xy = self.ax.transData.transform(self.XY)
uv = np.hstack((U[:,np.newaxis], V[:,np.newaxis]))
xyp = self.ax.transData.transform(self.XY + eps * uv)
dxy = xyp - xy
- ang = np.arctan2(dxy[:,1], dxy[:,0])
- return ang
+ angles = np.arctan2(dxy[:,1], dxy[:,0])
+ lengths = np.absolute(dxy[:,0] + dxy[:,1]*1j) / eps
+ return angles, lengths
+
+
def _make_verts(self, U, V):
uv = (U+V*1j)
- a = np.absolute(uv)
+ if self.angles == 'xy' and self.scale_units == 'xy':
+ # Here eps is 1 so that if we get U, V by diffing
+ # the X, Y arrays, the vectors will connect the
+ # points, regardless of the axis scaling (including log).
+ angles, lengths = self._angles_lengths(U, V, eps=1)
+ elif self.angles == 'xy' or self.scale_units == 'xy':
+ # We could refine this by calculating eps based on
+ # the magnitude of U, V relative to that of X, Y,
+ # to ensure we are always making small shifts in X, Y.
+ angles, lengths = self._angles_lengths(U, V, eps=0.001)
+ if self.scale_units == 'xy':
+ a = lengths
+ else:
+ a = np.absolute(uv)
if self.scale is None:
sn = max(10, math.sqrt(self.N))
if self.Umask is not ma.nomask:
@@ -543,14 +559,17 @@
self.scale = scale
widthu_per_lenu = 1.0
else:
- dx = self._dots_per_unit(self.scale_units)
+ if self.scale_units == 'xy':
+ dx = 1
+ else:
+ dx = self._dots_per_unit(self.scale_units)
widthu_per_lenu = dx/self._trans_scale
if self.scale is None:
self.scale = scale * widthu_per_lenu
length = a * (widthu_per_lenu / (self.scale * self.width))
X, Y = self._h_arrows(length)
if self.angles == 'xy':
- theta = self._angles(U, V)
+ theta = angles
elif self.angles == 'uv':
theta = np.angle(uv)
else:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-11-30 21:13:51
|
Revision: 7992
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7992&view=rev
Author: jdh2358
Date: 2009-11-30 21:13:34 +0000 (Mon, 30 Nov 2009)
Log Message:
-----------
add Matthew's OSX makefile patch
Modified Paths:
--------------
trunk/matplotlib/make.osx
Modified: trunk/matplotlib/make.osx
===================================================================
--- trunk/matplotlib/make.osx 2009-11-30 18:30:09 UTC (rev 7991)
+++ trunk/matplotlib/make.osx 2009-11-30 21:13:34 UTC (rev 7992)
@@ -4,21 +4,24 @@
PYVERSION=2.6
PYTHON=python${PYVERSION}
ZLIBVERSION=1.2.3
-PNGVERSION=1.2.33
-FREETYPEVERSION=2.3.5
+PNGVERSION=1.2.40
+FREETYPEVERSION=2.3.11
MACOSX_DEPLOYMENT_TARGET=10.4
+OSX_SDK_VER=10.4u
+ARCH_FLAGS="-arch i386 -arch ppc -arch x86_64"
## You shouldn't need to configure past this point
PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig"
-CFLAGS="-arch i386 -arch ppc -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk"
-LDFLAGS="-arch i386 -arch ppc -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
+CFLAGS="${ARCH_FLAGS} -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"
+LDFLAGS="${ARCH_FLAGS} -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX${OSX_SDK_VER}.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}
+ zlib-${ZLIBVERSION} libpng-${PNGVERSION} freetype-${FREETYPEVERSION} \
+ build
fetch:
${PYTHON} -c 'import urllib; urllib.urlretrieve("http://www.zlib.net/zlib-${ZLIBVERSION}.tar.gz", "zlib-${ZLIBVERSION}.tar.gz")' &&\
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2009-11-30 18:30:17
|
Revision: 7991
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7991&view=rev
Author: mdboom
Date: 2009-11-30 18:30:09 +0000 (Mon, 30 Nov 2009)
Log Message:
-----------
Fix bug in usage of "contains"
Modified Paths:
--------------
branches/v0_99_maint/examples/event_handling/looking_glass.py
Modified: branches/v0_99_maint/examples/event_handling/looking_glass.py
===================================================================
--- branches/v0_99_maint/examples/event_handling/looking_glass.py 2009-11-30 17:39:37 UTC (rev 7990)
+++ branches/v0_99_maint/examples/event_handling/looking_glass.py 2009-11-30 18:30:09 UTC (rev 7991)
@@ -24,7 +24,7 @@
if event.inaxes!=ax:
return
- if not circ.contains(event):
+ if not circ.contains(event)[0]:
return
self.pressevent = event
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <as...@us...> - 2009-11-30 17:39:44
|
Revision: 7990
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7990&view=rev
Author: astraw
Date: 2009-11-30 17:39:37 +0000 (Mon, 30 Nov 2009)
Log Message:
-----------
replace failing test image with passing image
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/fill_units.png
Modified: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/fill_units.png
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2009-11-30 17:24:59
|
Revision: 7989
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7989&view=rev
Author: mdboom
Date: 2009-11-30 17:24:49 +0000 (Mon, 30 Nov 2009)
Log Message:
-----------
Fix SF-2903596 on the 0.99.x branch
Modified Paths:
--------------
branches/v0_99_maint/setupext.py
Modified: branches/v0_99_maint/setupext.py
===================================================================
--- branches/v0_99_maint/setupext.py 2009-11-30 17:18:27 UTC (rev 7988)
+++ branches/v0_99_maint/setupext.py 2009-11-30 17:24:49 UTC (rev 7989)
@@ -1105,7 +1105,7 @@
deps.extend(glob.glob('CXX/*.c'))
module = Extension('matplotlib.ft2font', deps,
- define_macros=[('PY_ARRAYAUNIQUE_SYMBOL', 'MPL_ARRAY_API')])
+ define_macros=[('PY_ARRAY_UNIQUE_SYMBOL', 'MPL_ARRAY_API')])
add_ft2font_flags(module)
ext_modules.append(module)
BUILT_FT2FONT = True
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <as...@us...> - 2009-11-30 17:18:35
|
Revision: 7988
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7988&view=rev
Author: astraw
Date: 2009-11-30 17:18:27 +0000 (Mon, 30 Nov 2009)
Log Message:
-----------
fix typo in r7985. closes SF-2903596. Thanks C. Gohlke.
Modified Paths:
--------------
trunk/matplotlib/setupext.py
Modified: trunk/matplotlib/setupext.py
===================================================================
--- trunk/matplotlib/setupext.py 2009-11-30 09:06:48 UTC (rev 7987)
+++ trunk/matplotlib/setupext.py 2009-11-30 17:18:27 UTC (rev 7988)
@@ -122,7 +122,7 @@
'backend': None}
defines = [
- ('PY_ARRAYAUNIQUE_SYMBOL', 'MPL_ARRAY_API'),
+ ('PY_ARRAY_UNIQUE_SYMBOL', 'MPL_ARRAY_API'),
('PYCXX_ISO_CPP_LIB', '1')]
# Based on the contents of setup.cfg, determine the build options
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <as...@us...> - 2009-11-30 09:07:02
|
Revision: 7987
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7987&view=rev
Author: astraw
Date: 2009-11-30 09:06:48 +0000 (Mon, 30 Nov 2009)
Log Message:
-----------
buildbot test running: run tests in MPL root dir (bypasses weird bug with scons build)
Modified Paths:
--------------
trunk/matplotlib/test/_buildbot_test.py
trunk/matplotlib/test/_buildbot_test_postmortem.py
Modified: trunk/matplotlib/test/_buildbot_test.py
===================================================================
--- trunk/matplotlib/test/_buildbot_test.py 2009-11-26 19:37:06 UTC (rev 7986)
+++ trunk/matplotlib/test/_buildbot_test.py 2009-11-30 09:06:48 UTC (rev 7987)
@@ -1,7 +1,6 @@
"""This script will install matplotlib to a virtual environment to
faciltate testing."""
-import shutil, os, sys, glob
-from subprocess import Popen, PIPE, STDOUT
+import os, glob
from _buildbot_util import check_call
@@ -13,10 +12,8 @@
TARGET_py = os.path.join(TARGET,'bin','python')
check_call('%s -c "import shutil,matplotlib; x=matplotlib.get_configdir(); shutil.rmtree(x)"'%TARGET_py)
-
-previous_test_images = glob.glob(os.path.join('test','failed-diff-*.png'))
+previous_test_images = glob.glob('failed-diff-*.png')
for fname in previous_test_images:
os.unlink(fname)
-check_call('%s -c "import sys, matplotlib; success = matplotlib.test(verbosity=2); sys.exit(not success)"'%TARGET_py,
- cwd='test')
+check_call('%s -c "import sys, matplotlib; success = matplotlib.test(verbosity=2); sys.exit(not success)"'%TARGET_py)
Modified: trunk/matplotlib/test/_buildbot_test_postmortem.py
===================================================================
--- trunk/matplotlib/test/_buildbot_test_postmortem.py 2009-11-26 19:37:06 UTC (rev 7986)
+++ trunk/matplotlib/test/_buildbot_test_postmortem.py 2009-11-30 09:06:48 UTC (rev 7987)
@@ -4,7 +4,7 @@
This is meant to be run from the mplroot directory."""
-import os, sys, glob, shutil
+import os, shutil
roots = ['test_matplotlib','test_plots']
savedresults_dir = 'saved-results'
@@ -80,7 +80,6 @@
# new matplotlib.testing infrastructure
- os.chdir('test')
for fname in get_recursive_filelist(['result_images']):
# only images
if not fname.endswith('.png'): continue
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-11-26 19:37:14
|
Revision: 7986
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7986&view=rev
Author: jswhit
Date: 2009-11-26 19:37:06 +0000 (Thu, 26 Nov 2009)
Log Message:
-----------
fix_aspect=False so no whitespace appears on resize.
Modified Paths:
--------------
trunk/toolkits/basemap/examples/cubed_sphere.py
Modified: trunk/toolkits/basemap/examples/cubed_sphere.py
===================================================================
--- trunk/toolkits/basemap/examples/cubed_sphere.py 2009-11-24 18:45:18 UTC (rev 7985)
+++ trunk/toolkits/basemap/examples/cubed_sphere.py 2009-11-26 19:37:06 UTC (rev 7986)
@@ -1,11 +1,14 @@
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
+
# 'cubed sphere'
# inscribe the sphere in a cube, then separately project each cube
# face with gnomonic projection.
# http://www.progonos.com/furuti/MapProj/Normal/ProjPoly/Foldout/Cube/cube.html
# suitable for cutting and folding.
+
+# choose figure size to match aspect ratio of map.
fig = plt.figure(figsize=(10,7.5))
fig.subplots_adjust(bottom=0, left=0, right=1, top=1, wspace=0, hspace=0)
rsphere = 6370997.
@@ -18,16 +21,18 @@
ax=fig.add_subplot(3,4,npanel)
ax.set_frame_on(False)
lon_0=225 + 90*(ncol+1) - 45
+ # use fix_aspect=False, so white space won't appear between
+ # faces of cube when window is resized.
m = Basemap(width=width,height=height,resolution=None,\
projection='gnom',lon_0=lon_0,lat_0=lat_0,\
- rsphere=rsphere)
+ rsphere=rsphere,fix_aspect=False)
m.bluemarble(scale=0.5)
m.drawparallels(np.arange(-90,91,10),color='0.5')
m.drawmeridians(np.arange(5,365,10),color='0.5')
#m.drawlsmask(ocean_color='aqua',land_color='coral')
#m.drawparallels(np.arange(-90,91,10))
#m.drawmeridians(np.arange(5,365,10))
-fig.text (0.625,0.75,\
- 'World Map on a Cube\n Gnomonic Projection',\
- fontsize=14)
+fig.text(0.625,0.75,\
+ 'World Map on a Cube\n Gnomonic Projection',\
+ fontsize=14)
plt.show()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|