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: <jd...@us...> - 2009-08-23 05:28:02
|
Revision: 7536
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7536&view=rev
Author: jdh2358
Date: 2009-08-23 05:27:40 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
fix some typos in the docs
Modified Paths:
--------------
branches/v0_99_maint/doc/users/annotations_guide.rst
branches/v0_99_maint/doc/users/event_handling.rst
branches/v0_99_maint/doc/users/installing.rst
branches/v0_99_maint/doc/users/path_tutorial.rst
branches/v0_99_maint/doc/users/shell.rst
branches/v0_99_maint/doc/users/transforms_tutorial.rst
Added Paths:
-----------
branches/v0_99_maint/examples/animation/animate_decay_tk_blit.py
Modified: branches/v0_99_maint/doc/users/annotations_guide.rst
===================================================================
--- branches/v0_99_maint/doc/users/annotations_guide.rst 2009-08-23 05:18:45 UTC (rev 7535)
+++ branches/v0_99_maint/doc/users/annotations_guide.rst 2009-08-23 05:27:40 UTC (rev 7536)
@@ -4,7 +4,7 @@
Annotating Axes
****************
-Do not proceed unless you already have read
+Do not proceed unless you already have read
:func:`~matplotlib.pyplot.text` and :func:`~matplotlib.pyplot.annotate`!
@@ -38,7 +38,7 @@
bb.set_boxstyle("rarrow", pad=0.6)
The arguments are the name of the box style with its attributes as
-keyword arguments. Currently, followign box styles are implemented.
+keyword arguments. Currently, following box styles are implemented.
========== ============== ==========================
Class Name Attrs
@@ -55,7 +55,7 @@
.. plot:: mpl_examples/pylab_examples/fancybox_demo2.py
-Note that the attrubutes arguments can be specified within the style
+Note that the attributes arguments can be specified within the style
name with separating comma (this form can be used as "boxstyle" value
of bbox argument when initializing the text instance) ::
@@ -103,7 +103,7 @@
2. If patch object is given (*patchA* & *patchB*), the path is clipped to
avoid the patch.
-3. The path is further shrinked by given amount of pixels (*shirnkA*
+3. The path is further shrunk by given amount of pixels (*shirnkA*
& *shrinkB*)
4. The path is transmuted to arrow patch, which is controlled by the
@@ -114,7 +114,7 @@
The creation of the connecting path between two points is controlled by
-``connectionstyle`` key and follwing styles are available.
+``connectionstyle`` key and following styles are available.
========== =============================================
Name Attrs
@@ -197,7 +197,7 @@
ax2.add_artist(con)
The above code connects point xy in data coordinate of ``ax1`` to
-point xy int data coordiante of ``ax2``. Here is a simple example.
+point xy int data coordinate of ``ax2``. Here is a simple example.
.. plot:: users/plotting/examples/connect_simple01.py
@@ -230,7 +230,7 @@
The *loc* keyword has same meaning as in the legend command.
A simple application is when the size of the artist (or collection of
-artists) is knwon in pixel size during the time of creation. For
+artists) is known in pixel size during the time of creation. For
example, If you want to draw a circle with fixed size of 20 pixel x 20
pixel (radius = 10 pixel), you can utilize
``AnchoredDrawingArea``. The instance is created with a size of the
@@ -280,7 +280,7 @@
.. plot:: users/plotting/examples/anchored_box04.py
Note that unlike the legend, the ``bbox_transform`` is set
-to IdentityTransform by default.
+to IdentityTransform by default.
Advanced Topics
***************
@@ -288,7 +288,7 @@
Zoom effect between Axes
========================
-mpl_toolkits.axes_grid.inset_locator defines some patch classs useful
+mpl_toolkits.axes_grid.inset_locator defines some patch classes useful
for interconnect two axes. Understanding the code requires some
knowledge of how mpl's transform works. But, utilizing it will be
straight forward.
@@ -327,6 +327,6 @@
:include-source:
-Similarly, you can define custom ConnectionStyle and Custome ArrowStyle.
+Similarly, you can define custom ConnectionStyle and custom ArrowStyle.
See the source code of ``lib/matplotlib/patches.py`` and check
how each style class is defined.
Modified: branches/v0_99_maint/doc/users/event_handling.rst
===================================================================
--- branches/v0_99_maint/doc/users/event_handling.rst 2009-08-23 05:18:45 UTC (rev 7535)
+++ branches/v0_99_maint/doc/users/event_handling.rst 2009-08-23 05:27:40 UTC (rev 7536)
@@ -5,7 +5,7 @@
**************************
matplotlib works with 6 user interface toolkits (wxpython, tkinter,
-qt, gtk, fltk abd macosx) and in order to support features like interactive
+qt, gtk, fltk and macosx) and in order to support features like interactive
panning and zooming of figures, it is helpful to the developers to
have an API for interacting with the figure via key presses and mouse
movements that is "GUI neutral" so we don't have to repeat a lot of
@@ -150,7 +150,7 @@
Write draggable rectangle class that is initialized with a
:class:`~matplotlib.patches.Rectangle` instance but will move its x,y
-location when dragged. Hint: you will need to store the orginal
+location when dragged. Hint: you will need to store the original
``xy`` location of the rectangle which is stored as rect.xy and
connect to the press, motion and release mouse events. When the mouse
is pressed, check to see if the click occurs over your rectangle (see
Modified: branches/v0_99_maint/doc/users/installing.rst
===================================================================
--- branches/v0_99_maint/doc/users/installing.rst 2009-08-23 05:18:45 UTC (rev 7535)
+++ branches/v0_99_maint/doc/users/installing.rst 2009-08-23 05:27:40 UTC (rev 7536)
@@ -22,7 +22,7 @@
One single click installer and you are done.
-Ok, so you want to do it the hard way?
+OK, so you want to do it the hard way?
======================================
For some people, the prepackaged pythons discussed above are not an
@@ -109,7 +109,7 @@
packaging matplotlib.
-.. _install_requrements:
+.. _install_requirements:
Build requirements
==================
@@ -152,7 +152,7 @@
The Qt3 widgets library python wrappers for the QtAgg backend
:term:`pyqt` 4.0 or later
- The Qt4 widgets library python wrappersfor the Qt4Agg backend
+ The Qt4 widgets library python wrappers for the Qt4Agg backend
:term:`pygtk` 2.2 or later
The python wrappers for the GTK widgets library for use with the GTK or GTKAgg backend
@@ -201,5 +201,5 @@
instruction in the README. This directory has a Makefile which will
automatically grab the zlib, png and freetype dependencies from the
web, build them with the right flags to make universal libraries, and
-then build the matplotlib source and binary installers.
-
\ No newline at end of file
+then build the matplotlib source and binary installers.
+
Modified: branches/v0_99_maint/doc/users/path_tutorial.rst
===================================================================
--- branches/v0_99_maint/doc/users/path_tutorial.rst 2009-08-23 05:18:45 UTC (rev 7535)
+++ branches/v0_99_maint/doc/users/path_tutorial.rst 2009-08-23 05:27:40 UTC (rev 7536)
@@ -71,7 +71,7 @@
control point and one end point, and CURVE4 has three vertices for the
two control points and the end point. The example below shows a
CURVE4 Bézier spline -- the bézier curve will be contained in the
-convex hul of the start point, the two control points, and the end
+convex hull of the start point, the two control points, and the end
point
.. plot::
@@ -123,7 +123,7 @@
like :meth:`~matplotlib.axes.Axes.hist` and
:meth:`~matplotlib.axes.Axes.bar`, which create a number of
primitives, eg a bunch of Rectangles, can usually be implemented more
-efficiently using a compund path. The reason ``bar`` creates a list
+efficiently using a compound path. The reason ``bar`` creates a list
of rectangles and not a compound path is largely historical: the
:class:`~matplotlib.path.Path` code is comparatively new and ``bar``
predates it. While we could change it now, it would break old code,
Modified: branches/v0_99_maint/doc/users/shell.rst
===================================================================
--- branches/v0_99_maint/doc/users/shell.rst 2009-08-23 05:18:45 UTC (rev 7535)
+++ branches/v0_99_maint/doc/users/shell.rst 2009-08-23 05:27:40 UTC (rev 7536)
@@ -66,7 +66,7 @@
=========================
If you can't use ipython, and still want to use matplotlib/pylab from
-an interactive python shell, eg the plain-ol standard python
+an interactive python shell, eg the plain-ole standard python
interactive interpreter, or the interpreter in your favorite IDE, you
are going to need to understand what a matplotlib backend is
:ref:`what-is-a-backend`.
Modified: branches/v0_99_maint/doc/users/transforms_tutorial.rst
===================================================================
--- branches/v0_99_maint/doc/users/transforms_tutorial.rst 2009-08-23 05:18:45 UTC (rev 7535)
+++ branches/v0_99_maint/doc/users/transforms_tutorial.rst 2009-08-23 05:27:40 UTC (rev 7536)
@@ -225,7 +225,7 @@
:meth:`~matplotlib.axes.Axes.axvspan`) but for didactic purposes we
will implement the horizontal span here using a blended
transformation. This trick only works for separable transformations,
-like you see in normal cartesian coordinate systems, but not on
+like you see in normal Cartesian coordinate systems, but not on
inseparable transformations like the
:class:`~matplotlib.projections.polar.PolarAxes.PolarTransform`.
@@ -301,7 +301,7 @@
shadow_transform = ax.transData + offset
showing that can chain transformations using the addition operator.
-This code says: first appy the data transformation ``ax.transData`` and
+This code says: first apply the data transformation ``ax.transData`` and
then translate the data by `dx` and `dy` points.
.. plot::
@@ -352,7 +352,7 @@
in your axes which affects the affine transformation, but you may not
need to compute the potentially expensive nonlinear scales or
projections on simple navigation events. It is also possible to
-multiply affine transformation matrices togeter, and then apply them
+multiply affine transformation matrices together, and then apply them
to coordinates in one step. This is not true of all possible
transformations.
@@ -404,7 +404,7 @@
The final piece is the ``self.transScale`` attribute, which is
responsible for the optional non-linear scaling of the data, eg. for
-logarithmic axes. When an Axes is initally setup, this is just set to
+logarithmic axes. When an Axes is initially setup, this is just set to
the identity transform, since the basic matplotlib axes has linear
scale, but when you call a logarithmic scaling function like
:meth:`~matplotlib.axes.Axes.semilogx` or explicitly set the scale to
@@ -426,7 +426,7 @@
``transProjection`` handles the projection from the space,
eg. latitude and longitude for map data, or radius and theta for polar
-data, to a separable cartesian coordinate system. There are several
+data, to a separable Cartesian coordinate system. There are several
projection examples in the ``matplotlib.projections`` package, and the
best way to learn more is to open the source for those packages and
see how to make your own, since matplotlib supports extensible axes
Added: branches/v0_99_maint/examples/animation/animate_decay_tk_blit.py
===================================================================
--- branches/v0_99_maint/examples/animation/animate_decay_tk_blit.py (rev 0)
+++ branches/v0_99_maint/examples/animation/animate_decay_tk_blit.py 2009-08-23 05:27:40 UTC (rev 7536)
@@ -0,0 +1,58 @@
+import time, sys
+import numpy as np
+import matplotlib.pyplot as plt
+
+
+def data_gen():
+ t = data_gen.t
+ data_gen.t += 0.05
+ return np.sin(2*np.pi*t) * np.exp(-t/10.)
+data_gen.t = 0
+
+fig = plt.figure()
+ax = fig.add_subplot(111)
+line, = ax.plot([], [], animated=True, lw=2)
+ax.set_ylim(-1.1, 1.1)
+ax.set_xlim(0, 5)
+ax.grid()
+xdata, ydata = [], []
+def run(*args):
+ background = fig.canvas.copy_from_bbox(ax.bbox)
+ # for profiling
+ tstart = time.time()
+
+ while 1:
+ # restore the clean slate background
+ fig.canvas.restore_region(background)
+ # update the data
+ t = data_gen.t
+ y = data_gen()
+ xdata.append(t)
+ ydata.append(y)
+ xmin, xmax = ax.get_xlim()
+ if t>=xmax:
+ ax.set_xlim(xmin, 2*xmax)
+ fig.canvas.draw()
+ background = fig.canvas.copy_from_bbox(ax.bbox)
+
+ line.set_data(xdata, ydata)
+
+ # just draw the animated artist
+ ax.draw_artist(line)
+ # just redraw the axes rectangle
+ fig.canvas.blit(ax.bbox)
+
+ if run.cnt==1000:
+ # print the timing info and quit
+ print 'FPS:' , 1000/(time.time()-tstart)
+ sys.exit()
+
+ run.cnt += 1
+run.cnt = 0
+
+
+
+manager = plt.get_current_fig_manager()
+manager.window.after(100, run)
+
+plt.show()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <as...@us...> - 2009-08-23 05:18:51
|
Revision: 7535
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7535&view=rev
Author: astraw
Date: 2009-08-23 05:18:45 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
add buildbot scripts
Added Paths:
-----------
trunk/matplotlib/test/_buildbot_install.py
trunk/matplotlib/test/_buildbot_test.py
trunk/matplotlib/test/_buildbot_util.py
Added: trunk/matplotlib/test/_buildbot_install.py
===================================================================
--- trunk/matplotlib/test/_buildbot_install.py (rev 0)
+++ trunk/matplotlib/test/_buildbot_install.py 2009-08-23 05:18:45 UTC (rev 7535)
@@ -0,0 +1,15 @@
+"""This script will install matplotlib to a virtual environment to
+faciltate testing."""
+import shutil, os, sys
+from subprocess import Popen, PIPE, STDOUT
+
+from _buildbot_util import check_call
+
+TARGET='PYmpl'
+
+if os.path.exists(TARGET):
+ shutil.rmtree(TARGET)
+
+check_call('virtualenv %s'%(TARGET,))
+TARGET_py = os.path.join(TARGET,'bin','python')
+check_call('%s setup.py install'%TARGET_py)
Added: trunk/matplotlib/test/_buildbot_test.py
===================================================================
--- trunk/matplotlib/test/_buildbot_test.py (rev 0)
+++ trunk/matplotlib/test/_buildbot_test.py 2009-08-23 05:18:45 UTC (rev 7535)
@@ -0,0 +1,15 @@
+"""This script will install matplotlib to a virtual environment to
+faciltate testing."""
+import shutil, os, sys
+from subprocess import Popen, PIPE, STDOUT
+
+from _buildbot_util import check_call
+
+TARGET=os.path.abspath('PYmpl')
+
+if not os.path.exists(TARGET):
+ raise RuntimeError('the virtualenv target directory was not found')
+
+TARGET_py = os.path.join(TARGET,'bin','python')
+check_call('%s run-mpl-test.py --all'%TARGET_py,
+ cwd='test')
Added: trunk/matplotlib/test/_buildbot_util.py
===================================================================
--- trunk/matplotlib/test/_buildbot_util.py (rev 0)
+++ trunk/matplotlib/test/_buildbot_util.py 2009-08-23 05:18:45 UTC (rev 7535)
@@ -0,0 +1,20 @@
+"""Module to help _buildbot_*.py scripts."""
+
+import shutil, os, sys
+from subprocess import Popen, PIPE, STDOUT
+
+def check_call(args,**kwargs):
+ # print
+ # print args
+ # print '**kwargs'
+ # print kwargs
+ # print
+
+ # This use of Popen is copied from matplotlib.texmanager (Use of
+ # close_fds seems a bit mysterious.)
+
+ p = Popen(args, shell=True,
+ close_fds=(sys.platform!='win32'),**kwargs)
+ p.wait()
+ if p.returncode!=0:
+ raise RuntimeError('returncode is %s'%p.returncode)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-23 02:29:00
|
Revision: 7534
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7534&view=rev
Author: jdh2358
Date: 2009-08-23 02:28:52 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
Merged revisions 7533 via svnmerge from
https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_99_maint
........
r7533 | jdh2358 | 2009-08-22 21:27:44 -0500 (Sat, 22 Aug 2009) | 1 line
tweaks to os x
........
Modified Paths:
--------------
trunk/matplotlib/Makefile
trunk/matplotlib/make.osx
Added Paths:
-----------
trunk/matplotlib/README.osx
Property Changed:
----------------
trunk/matplotlib/
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
- /branches/mathtex:1-7263 /branches/v0_98_5_maint:1-7253 /branches/v0_99_maint:1-7531
+ /branches/mathtex:1-7263 /branches/v0_98_5_maint:1-7253 /branches/v0_99_maint:1-7533
Modified: trunk/matplotlib/Makefile
===================================================================
--- trunk/matplotlib/Makefile 2009-08-23 02:27:44 UTC (rev 7533)
+++ trunk/matplotlib/Makefile 2009-08-23 02:28:52 UTC (rev 7534)
@@ -28,10 +28,13 @@
tar cvfz pyback.tar.gz *.py lib src examples/*.py unit/*.py
-build_osx105:
+_build_osx105:
CFLAGS="-Os -arch i386 -arch ppc" LDFLAGS="-Os -arch i386 -arch ppc" python setup.py build
+build_osx105:
+ echo "Use 'make -f fetch deps mpl_install instead'"
+
jdh_doc_snapshot:
svn up;\
python setup.py install --prefix=~/dev;\
Copied: trunk/matplotlib/README.osx (from rev 7533, branches/v0_99_maint/README.osx)
===================================================================
--- trunk/matplotlib/README.osx (rev 0)
+++ trunk/matplotlib/README.osx 2009-08-23 02:28:52 UTC (rev 7534)
@@ -0,0 +1,13 @@
+Build mpl on OSX has proven to be a nightmare because of all the
+different types of zlib, png and freetype that may be on your system.
+The recommended and supported way to build is to use the make.osx file
+in this directory. This script requires you to set a PREFIX
+environment variable where you want to the install to go. It will
+fetch the dependencies from a remove server and install them into your
+PREFIX dir, and then build mpl against them. It should ignore any
+lib, png or freetype on your system
+
+Example usage::
+
+ PREFIX=/Users/jdhunter/dev make -f make.osx fetch deps mpl_install
+
Modified: trunk/matplotlib/make.osx
===================================================================
--- trunk/matplotlib/make.osx 2009-08-23 02:27:44 UTC (rev 7533)
+++ trunk/matplotlib/make.osx 2009-08-23 02:28:52 UTC (rev 7534)
@@ -1,13 +1,11 @@
-PREFIX=/Users/jdh2358/dev
+# build mpl into a local install dir with
+# PREFIX=/Users/jdhunter/dev make -f make.osx fetch deps mpl_install
+
PYVERSION=2.6
PYTHON=python${PYVERSION}
-SRCDIR=${PWD}
ZLIBVERSION=1.2.3
PNGVERSION=1.2.33
FREETYPEVERSION=2.3.7
-MPLVERSION=0.99.0
-BDISTMPKGVERSION=0.4.4
-MPLSRC=matplotlib-${MPLVERSION}
MACOSX_DEPLOYMENT_TARGET=10.4
## You shouldn't need to configure past this point
@@ -26,9 +24,9 @@
zlib-${ZLIBVERSION} libpng-${PNGVERSION} freetype-${FREETYPEVERSION}
fetch:
- python -c 'import urllib; urllib.urlretrieve("http://www.zlib.net/zlib-${ZLIBVERSION}.tar.gz", "zlib-${ZLIBVERSION}.tar.gz")' &&\
- python -c 'import urllib; urllib.urlretrieve("http://internap.dl.sourceforge.net/sourceforge/libpng/libpng-${PNGVERSION}.tar.bz2", "libpng-${PNGVERSION}.tar.bz2")' &&\
- python -c 'import urllib; urllib.urlretrieve("http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2", "freetype-${FREETYPEVERSION}.tar.bz2")'
+ ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://www.zlib.net/zlib-${ZLIBVERSION}.tar.gz", "zlib-${ZLIBVERSION}.tar.gz")' &&\
+ ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://internap.dl.sourceforge.net/sourceforge/libpng/libpng-${PNGVERSION}.tar.bz2", "libpng-${PNGVERSION}.tar.bz2")' &&\
+ ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2", "freetype-${FREETYPEVERSION}.tar.bz2")'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-23 02:27:51
|
Revision: 7533
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7533&view=rev
Author: jdh2358
Date: 2009-08-23 02:27:44 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
tweaks to os x
Modified Paths:
--------------
branches/v0_99_maint/Makefile
branches/v0_99_maint/make.osx
Added Paths:
-----------
branches/v0_99_maint/README.osx
Modified: branches/v0_99_maint/Makefile
===================================================================
--- branches/v0_99_maint/Makefile 2009-08-23 02:16:27 UTC (rev 7532)
+++ branches/v0_99_maint/Makefile 2009-08-23 02:27:44 UTC (rev 7533)
@@ -28,10 +28,13 @@
tar cvfz pyback.tar.gz *.py lib src examples/*.py unit/*.py
-build_osx105:
+_build_osx105:
CFLAGS="-Os -arch i386 -arch ppc" LDFLAGS="-Os -arch i386 -arch ppc" python setup.py build
+build_osx105:
+ echo "Use 'make -f fetch deps mpl_install instead'"
+
jdh_doc_snapshot:
svn up;\
python setup.py install --prefix=~/dev;\
Added: branches/v0_99_maint/README.osx
===================================================================
--- branches/v0_99_maint/README.osx (rev 0)
+++ branches/v0_99_maint/README.osx 2009-08-23 02:27:44 UTC (rev 7533)
@@ -0,0 +1,13 @@
+Build mpl on OSX has proven to be a nightmare because of all the
+different types of zlib, png and freetype that may be on your system.
+The recommended and supported way to build is to use the make.osx file
+in this directory. This script requires you to set a PREFIX
+environment variable where you want to the install to go. It will
+fetch the dependencies from a remove server and install them into your
+PREFIX dir, and then build mpl against them. It should ignore any
+lib, png or freetype on your system
+
+Example usage::
+
+ PREFIX=/Users/jdhunter/dev make -f make.osx fetch deps mpl_install
+
Modified: branches/v0_99_maint/make.osx
===================================================================
--- branches/v0_99_maint/make.osx 2009-08-23 02:16:27 UTC (rev 7532)
+++ branches/v0_99_maint/make.osx 2009-08-23 02:27:44 UTC (rev 7533)
@@ -1,13 +1,11 @@
-PREFIX=/Users/jdh2358/dev
+# build mpl into a local install dir with
+# PREFIX=/Users/jdhunter/dev make -f make.osx fetch deps mpl_install
+
PYVERSION=2.6
PYTHON=python${PYVERSION}
-SRCDIR=${PWD}
ZLIBVERSION=1.2.3
PNGVERSION=1.2.33
FREETYPEVERSION=2.3.7
-MPLVERSION=0.99.0
-BDISTMPKGVERSION=0.4.4
-MPLSRC=matplotlib-${MPLVERSION}
MACOSX_DEPLOYMENT_TARGET=10.4
## You shouldn't need to configure past this point
@@ -26,9 +24,9 @@
zlib-${ZLIBVERSION} libpng-${PNGVERSION} freetype-${FREETYPEVERSION}
fetch:
- python -c 'import urllib; urllib.urlretrieve("http://www.zlib.net/zlib-${ZLIBVERSION}.tar.gz", "zlib-${ZLIBVERSION}.tar.gz")' &&\
- python -c 'import urllib; urllib.urlretrieve("http://internap.dl.sourceforge.net/sourceforge/libpng/libpng-${PNGVERSION}.tar.bz2", "libpng-${PNGVERSION}.tar.bz2")' &&\
- python -c 'import urllib; urllib.urlretrieve("http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2", "freetype-${FREETYPEVERSION}.tar.bz2")'
+ ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://www.zlib.net/zlib-${ZLIBVERSION}.tar.gz", "zlib-${ZLIBVERSION}.tar.gz")' &&\
+ ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://internap.dl.sourceforge.net/sourceforge/libpng/libpng-${PNGVERSION}.tar.bz2", "libpng-${PNGVERSION}.tar.bz2")' &&\
+ ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2", "freetype-${FREETYPEVERSION}.tar.bz2")'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-23 02:16:34
|
Revision: 7532
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7532&view=rev
Author: jdh2358
Date: 2009-08-23 02:16:27 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
Merged revisions 7519,7521-7523,7528-7530 via svnmerge from
https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_99_maint
........
r7519 | jouni | 2009-08-22 01:25:07 -0500 (Sat, 22 Aug 2009) | 2 lines
Fix typos found by Marc Desmarais and Nicolas Pinto
........
r7521 | jdh2358 | 2009-08-22 17:50:55 -0500 (Sat, 22 Aug 2009) | 1 line
added Ariel's max install patch
........
r7522 | jdh2358 | 2009-08-22 18:19:44 -0500 (Sat, 22 Aug 2009) | 1 line
applied Ariel's mlab.cohere_pairs fixes
........
r7523 | jdh2358 | 2009-08-22 18:20:30 -0500 (Sat, 22 Aug 2009) | 1 line
fix osx epd formatting bug in rest
........
r7528 | jdh2358 | 2009-08-22 20:50:21 -0500 (Sat, 22 Aug 2009) | 1 line
added new makefile for osx builds
........
r7529 | jdh2358 | 2009-08-22 21:10:46 -0500 (Sat, 22 Aug 2009) | 1 line
removed darwin lookup in setupext -- use make.osx install
........
r7530 | jdh2358 | 2009-08-22 21:10:59 -0500 (Sat, 22 Aug 2009) | 1 line
removed darwin lookup in setupext -- use make.osx install
........
Modified Paths:
--------------
trunk/matplotlib/setupext.py
Added Paths:
-----------
trunk/matplotlib/make.osx
Property Changed:
----------------
trunk/matplotlib/
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
- /branches/mathtex:1-7263 /branches/v0_98_5_maint:1-7253 /branches/v0_99_maint:1-7517
+ /branches/mathtex:1-7263 /branches/v0_98_5_maint:1-7253 /branches/v0_99_maint:1-7531
Copied: trunk/matplotlib/make.osx (from rev 7530, branches/v0_99_maint/make.osx)
===================================================================
--- trunk/matplotlib/make.osx (rev 0)
+++ trunk/matplotlib/make.osx 2009-08-23 02:16:27 UTC (rev 7532)
@@ -0,0 +1,89 @@
+PREFIX=/Users/jdh2358/dev
+PYVERSION=2.6
+PYTHON=python${PYVERSION}
+SRCDIR=${PWD}
+ZLIBVERSION=1.2.3
+PNGVERSION=1.2.33
+FREETYPEVERSION=2.3.7
+MPLVERSION=0.99.0
+BDISTMPKGVERSION=0.4.4
+MPLSRC=matplotlib-${MPLVERSION}
+MACOSX_DEPLOYMENT_TARGET=10.4
+
+## You shouldn't need to configure past this point
+
+CFLAGS="-Os -arch ppc -arch i386 -I{$PREFIX}/include"
+
+LDFLAGS="-arch ppc -arch i386 -L${PREFIX}/lib"
+
+CFLAGS_DEPS="-arch i386 -arch ppc -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk"
+LDFLAGS_DEPS="-arch i386 -arch ppc -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
+
+clean:
+ rm -rf zlib-${ZLIBVERSION}.tar.gz libpng-${PNGVERSION}.tar.bz2 \
+ freetype-${FREETYPEVERSION}.tar.bz2 bdist_mpkg-${BDISTMPKGVERSION}.tar.gz \
+ bdist_mpkg-${BDISTMPKGVERSION} \
+ zlib-${ZLIBVERSION} libpng-${PNGVERSION} freetype-${FREETYPEVERSION}
+
+fetch:
+ python -c 'import urllib; urllib.urlretrieve("http://www.zlib.net/zlib-${ZLIBVERSION}.tar.gz", "zlib-${ZLIBVERSION}.tar.gz")' &&\
+ python -c 'import urllib; urllib.urlretrieve("http://internap.dl.sourceforge.net/sourceforge/libpng/libpng-${PNGVERSION}.tar.bz2", "libpng-${PNGVERSION}.tar.bz2")' &&\
+ python -c 'import urllib; urllib.urlretrieve("http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2", "freetype-${FREETYPEVERSION}.tar.bz2")'
+
+
+
+
+zlib:
+ unset PKG_CONFIG_PATH &&\
+ rm -rf zlib-${ZLIBVERSION} &&\
+ tar xvfz zlib-${ZLIBVERSION}.tar.gz &&\
+ cd zlib-${ZLIBVERSION} &&\
+ export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
+ export CFLAGS=${CFLAGS_DEPS} &&\
+ export LDFLAGS=${LDFLAGS_DEPS} &&\
+ ./configure --prefix=${PREFIX}&&\
+ MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} CFLAGS=${CFLAGS_DEPS} LDFLAGS=${LDFLAGS_DEPS} make -j3 install&& \
+ unset MACOSX_DEPLOYMENT_TARGET
+
+png: zlib
+ unset PKG_CONFIG_PATH &&\
+ rm -rf libpng-${PNGVERSION} &&\
+ tar xvfj libpng-${PNGVERSION}.tar.bz2
+ cd libpng-${PNGVERSION} &&\
+ export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
+ export CFLAGS=${CFLAGS_DEPS} &&\
+ export LDFLAGS=${LDFLAGS_DEPS} &&\
+ ./configure --disable-dependency-tracking --prefix=${PREFIX} &&\
+ make -j3 install&&\
+ cp .libs/libpng.a . &&\
+ unset MACOSX_DEPLOYMENT_TARGET
+
+
+freetype: zlib
+ unset PKG_CONFIG_PATH &&\
+ rm -rf ${FREETYPEVERSION} &&\
+ tar xvfj freetype-${FREETYPEVERSION}.tar.bz2 &&\
+ cd freetype-${FREETYPEVERSION} &&\
+ export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
+ export CFLAGS=${CFLAGS_DEPS} &&\
+ export LDFLAGS=${LDFLAGS_DEPS} &&\
+ ./configure --prefix=${PREFIX} &&\
+ make -j3 install &&\
+ cp objs/.libs/libfreetype.a . &&\
+ unset MACOSX_DEPLOYMENT_TARGET
+
+
+deps: zlib png freetype
+ echo 'all done'
+
+mpl_build:
+ export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
+ export CFLAGS=${CFLAGS_DEPS} &&\
+ export LDFLAGS=${LDFLAGS_DEPS} &&\
+ python setup.py build
+
+mpl_install:
+ export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
+ export CFLAGS=${CFLAGS_DEPS} &&\
+ export LDFLAGS=${LDFLAGS_DEPS} &&\
+ python setup.py install --prefix=${PREFIX}
Modified: trunk/matplotlib/setupext.py
===================================================================
--- trunk/matplotlib/setupext.py 2009-08-23 02:13:35 UTC (rev 7531)
+++ trunk/matplotlib/setupext.py 2009-08-23 02:16:27 UTC (rev 7532)
@@ -50,8 +50,15 @@
'linux2' : ['/usr/local', '/usr'],
'linux' : ['/usr/local', '/usr',],
'cygwin' : ['/usr/local', '/usr',],
- 'darwin' : ['/sw/lib/freetype2', '/sw/lib/freetype219', '/usr/local',
+ '_darwin' : ['/sw/lib/freetype2', '/sw/lib/freetype219', '/usr/local',
'/usr', '/sw'],
+ # it appears builds with darwin are broken because of all the
+ # different flags the deps can be compile with, so I am pushing
+ # people to :
+ # make -f make.osx fetch deps mpl_build mpl_install
+
+ 'darwin' : [],
+
'freebsd4' : ['/usr/local', '/usr'],
'freebsd5' : ['/usr/local', '/usr'],
'freebsd6' : ['/usr/local', '/usr'],
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-23 02:13:44
|
Revision: 7531
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7531&view=rev
Author: jdh2358
Date: 2009-08-23 02:13:35 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
preparing to merge
Property Changed:
----------------
trunk/matplotlib/
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
- /branches/mathtex:1-7263 /branches/v0_98_5_maint:1-7253 /branches/v0_99_maint:1-7523
+ /branches/mathtex:1-7263 /branches/v0_98_5_maint:1-7253 /branches/v0_99_maint:1-7517
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-23 02:11:06
|
Revision: 7530
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7530&view=rev
Author: jdh2358
Date: 2009-08-23 02:10:59 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
removed darwin lookup in setupext -- use make.osx install
Added Paths:
-----------
branches/v0_99_maint/make.osx
Added: branches/v0_99_maint/make.osx
===================================================================
--- branches/v0_99_maint/make.osx (rev 0)
+++ branches/v0_99_maint/make.osx 2009-08-23 02:10:59 UTC (rev 7530)
@@ -0,0 +1,89 @@
+PREFIX=/Users/jdh2358/dev
+PYVERSION=2.6
+PYTHON=python${PYVERSION}
+SRCDIR=${PWD}
+ZLIBVERSION=1.2.3
+PNGVERSION=1.2.33
+FREETYPEVERSION=2.3.7
+MPLVERSION=0.99.0
+BDISTMPKGVERSION=0.4.4
+MPLSRC=matplotlib-${MPLVERSION}
+MACOSX_DEPLOYMENT_TARGET=10.4
+
+## You shouldn't need to configure past this point
+
+CFLAGS="-Os -arch ppc -arch i386 -I{$PREFIX}/include"
+
+LDFLAGS="-arch ppc -arch i386 -L${PREFIX}/lib"
+
+CFLAGS_DEPS="-arch i386 -arch ppc -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk"
+LDFLAGS_DEPS="-arch i386 -arch ppc -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
+
+clean:
+ rm -rf zlib-${ZLIBVERSION}.tar.gz libpng-${PNGVERSION}.tar.bz2 \
+ freetype-${FREETYPEVERSION}.tar.bz2 bdist_mpkg-${BDISTMPKGVERSION}.tar.gz \
+ bdist_mpkg-${BDISTMPKGVERSION} \
+ zlib-${ZLIBVERSION} libpng-${PNGVERSION} freetype-${FREETYPEVERSION}
+
+fetch:
+ python -c 'import urllib; urllib.urlretrieve("http://www.zlib.net/zlib-${ZLIBVERSION}.tar.gz", "zlib-${ZLIBVERSION}.tar.gz")' &&\
+ python -c 'import urllib; urllib.urlretrieve("http://internap.dl.sourceforge.net/sourceforge/libpng/libpng-${PNGVERSION}.tar.bz2", "libpng-${PNGVERSION}.tar.bz2")' &&\
+ python -c 'import urllib; urllib.urlretrieve("http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2", "freetype-${FREETYPEVERSION}.tar.bz2")'
+
+
+
+
+zlib:
+ unset PKG_CONFIG_PATH &&\
+ rm -rf zlib-${ZLIBVERSION} &&\
+ tar xvfz zlib-${ZLIBVERSION}.tar.gz &&\
+ cd zlib-${ZLIBVERSION} &&\
+ export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
+ export CFLAGS=${CFLAGS_DEPS} &&\
+ export LDFLAGS=${LDFLAGS_DEPS} &&\
+ ./configure --prefix=${PREFIX}&&\
+ MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} CFLAGS=${CFLAGS_DEPS} LDFLAGS=${LDFLAGS_DEPS} make -j3 install&& \
+ unset MACOSX_DEPLOYMENT_TARGET
+
+png: zlib
+ unset PKG_CONFIG_PATH &&\
+ rm -rf libpng-${PNGVERSION} &&\
+ tar xvfj libpng-${PNGVERSION}.tar.bz2
+ cd libpng-${PNGVERSION} &&\
+ export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
+ export CFLAGS=${CFLAGS_DEPS} &&\
+ export LDFLAGS=${LDFLAGS_DEPS} &&\
+ ./configure --disable-dependency-tracking --prefix=${PREFIX} &&\
+ make -j3 install&&\
+ cp .libs/libpng.a . &&\
+ unset MACOSX_DEPLOYMENT_TARGET
+
+
+freetype: zlib
+ unset PKG_CONFIG_PATH &&\
+ rm -rf ${FREETYPEVERSION} &&\
+ tar xvfj freetype-${FREETYPEVERSION}.tar.bz2 &&\
+ cd freetype-${FREETYPEVERSION} &&\
+ export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
+ export CFLAGS=${CFLAGS_DEPS} &&\
+ export LDFLAGS=${LDFLAGS_DEPS} &&\
+ ./configure --prefix=${PREFIX} &&\
+ make -j3 install &&\
+ cp objs/.libs/libfreetype.a . &&\
+ unset MACOSX_DEPLOYMENT_TARGET
+
+
+deps: zlib png freetype
+ echo 'all done'
+
+mpl_build:
+ export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
+ export CFLAGS=${CFLAGS_DEPS} &&\
+ export LDFLAGS=${LDFLAGS_DEPS} &&\
+ python setup.py build
+
+mpl_install:
+ export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
+ export CFLAGS=${CFLAGS_DEPS} &&\
+ export LDFLAGS=${LDFLAGS_DEPS} &&\
+ python setup.py install --prefix=${PREFIX}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-23 02:10:54
|
Revision: 7529
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7529&view=rev
Author: jdh2358
Date: 2009-08-23 02:10:46 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
removed darwin lookup in setupext -- use make.osx install
Modified Paths:
--------------
branches/v0_99_maint/setupext.py
Modified: branches/v0_99_maint/setupext.py
===================================================================
--- branches/v0_99_maint/setupext.py 2009-08-23 01:50:21 UTC (rev 7528)
+++ branches/v0_99_maint/setupext.py 2009-08-23 02:10:46 UTC (rev 7529)
@@ -50,8 +50,15 @@
'linux2' : ['/usr/local', '/usr'],
'linux' : ['/usr/local', '/usr',],
'cygwin' : ['/usr/local', '/usr',],
- 'darwin' : ['/sw/lib/freetype2', '/sw/lib/freetype219', '/usr/local',
+ '_darwin' : ['/sw/lib/freetype2', '/sw/lib/freetype219', '/usr/local',
'/usr', '/sw'],
+ # it appears builds with darwin are broken because of all the
+ # different flags the deps can be compile with, so I am pushing
+ # people to :
+ # make -f make.osx fetch deps mpl_build mpl_install
+
+ 'darwin' : [],
+
'freebsd4' : ['/usr/local', '/usr'],
'freebsd5' : ['/usr/local', '/usr'],
'freebsd6' : ['/usr/local', '/usr'],
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-23 01:50:31
|
Revision: 7528
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7528&view=rev
Author: jdh2358
Date: 2009-08-23 01:50:21 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
added new makefile for osx builds
Modified Paths:
--------------
branches/v0_99_maint/src/_macosx.m
Modified: branches/v0_99_maint/src/_macosx.m
===================================================================
--- branches/v0_99_maint/src/_macosx.m 2009-08-23 01:32:06 UTC (rev 7527)
+++ branches/v0_99_maint/src/_macosx.m 2009-08-23 01:50:21 UTC (rev 7528)
@@ -5,11 +5,16 @@
#include "numpy/arrayobject.h"
#include "path_cleanup.h"
+/* Proper way to check for the OS X version we are compiling for, from
+ http://developer.apple.com/documentation/DeveloperTools/Conceptual/cross_development */
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
+#define COMPILING_FOR_10_5
+#endif
static int nwin = 0; /* The number of open windows */
/* Use Atsui for Mac OS X 10.4, CoreText for Mac OS X 10.5 */
-#ifndef MAC_OS_X_VERSION_10_5
+#ifndef COMPILING_FOR_10_5
static int ngc = 0; /* The number of graphics contexts in use */
@@ -175,7 +180,7 @@
return 1;
}
-#ifndef MAC_OS_X_VERSION_10_5
+#ifndef COMPILING_FOR_10_5
static int _init_atsui(void)
{
OSStatus status;
@@ -451,7 +456,7 @@
self->cr = NULL;
self->level = 0;
-#ifndef MAC_OS_X_VERSION_10_5
+#ifndef COMPILING_FOR_10_5
if (ngc==0)
{
int ok = _init_atsui();
@@ -466,7 +471,7 @@
return (PyObject*) self;
}
-#ifndef MAC_OS_X_VERSION_10_5
+#ifndef COMPILING_FOR_10_5
static void
GraphicsContext_dealloc(GraphicsContext *self)
{
@@ -1877,7 +1882,7 @@
}
-#ifdef MAC_OS_X_VERSION_10_5
+#ifdef COMPILING_FOR_10_5
static CTFontRef
#else
static ATSFontRef
@@ -1891,7 +1896,7 @@
const char* temp;
const char* name = "Times-Roman";
CFStringRef string;
-#ifdef MAC_OS_X_VERSION_10_5
+#ifdef COMPILING_FOR_10_5
CTFontRef font = 0;
#else
ATSFontRef font = 0;
@@ -2091,7 +2096,7 @@
string = CFStringCreateWithCString(kCFAllocatorDefault,
temp,
kCFStringEncodingMacRoman);
-#ifdef MAC_OS_X_VERSION_10_5
+#ifdef COMPILING_FOR_10_5
font = CTFontCreateWithName(string, size, NULL);
#else
font = ATSFontFindFromPostScriptName(string, kATSOptionFlagsDefault);
@@ -2109,20 +2114,20 @@
{ string = CFStringCreateWithCString(kCFAllocatorDefault,
name,
kCFStringEncodingMacRoman);
-#ifdef MAC_OS_X_VERSION_10_5
+#ifdef COMPILING_FOR_10_5
font = CTFontCreateWithName(string, size, NULL);
#else
font = ATSFontFindFromPostScriptName(string, kATSOptionFlagsDefault);
#endif
CFRelease(string);
}
-#ifndef MAC_OS_X_VERSION_10_5
+#ifndef COMPILING_FOR_10_5
CGContextSelectFont(cr, name, size, kCGEncodingMacRoman);
#endif
return font;
}
-#ifdef MAC_OS_X_VERSION_10_5
+#ifdef COMPILING_FOR_10_5
static PyObject*
GraphicsContext_draw_text (GraphicsContext* self, PyObject* args)
{
@@ -2821,7 +2826,7 @@
"_macosx.GraphicsContext", /*tp_name*/
sizeof(GraphicsContext), /*tp_basicsize*/
0, /*tp_itemsize*/
-#ifdef MAC_OS_X_VERSION_10_5
+#ifdef COMPILING_FOR_10_5
0, /*tp_dealloc*/
#else
(destructor)GraphicsContext_dealloc, /*tp_dealloc*/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-23 01:32:14
|
Revision: 7527
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7527&view=rev
Author: jdh2358
Date: 2009-08-23 01:32:06 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
add script for moving good saved images to baseline
Added Paths:
-----------
trunk/matplotlib/test/README.build_slaves
trunk/matplotlib/test/movegood.py
Added: trunk/matplotlib/test/README.build_slaves
===================================================================
--- trunk/matplotlib/test/README.build_slaves (rev 0)
+++ trunk/matplotlib/test/README.build_slaves 2009-08-23 01:32:06 UTC (rev 7527)
@@ -0,0 +1,4 @@
+There can be two different types of build slaves: virtualenv and
+python source install with clean installs of numpy and mpl. Both of
+these will need nose installed.
+
Added: trunk/matplotlib/test/movegood.py
===================================================================
--- trunk/matplotlib/test/movegood.py (rev 0)
+++ trunk/matplotlib/test/movegood.py 2009-08-23 01:32:06 UTC (rev 7527)
@@ -0,0 +1,53 @@
+import os, sys, glob, shutil
+import matplotlib.cbook as cbook
+
+savedresults_dir = 'saved-results'
+baseline_dir = 'baseline'
+diff_dir = 'diff-images'
+basename = 'failed-diff-'
+nbase = len(basename)
+
+failed = set()
+for fname in glob.glob(os.path.join(diff_dir, '%s*.png'%basename)):
+ ind = fname.find(basename)
+ fname = fname[ind+nbase:]
+ failed.add(fname)
+
+datad = dict()
+for fpath in cbook.get_recursive_filelist('.'):
+ if not fpath.endswith('.png'): continue
+ if fpath.find(diff_dir)>0: continue
+ rel_dir, fname = os.path.split(fpath)
+
+
+ saved = fpath.find(savedresults_dir)>0
+ baseline = fpath.find(baseline_dir)>0
+
+ if saved:
+ datad.setdefault(fname, [None,None])[0] = fpath
+ elif baseline:
+ datad.setdefault(fname, [None,None])[1] = fpath
+
+nfailed = len(failed)
+for ithis, fname in enumerate(sorted(failed)):
+ data = datad.get(fname)
+ if data is not None:
+ saved, baseline = data
+ #print ithis, fname, saved, baseline
+ if saved is None:
+ print 'could not find saved data for', fname
+ elif baseline is None:
+ print 'could not find baseline data for', fname
+ else:
+ x = raw_input('Copy %d of %d\n saved="%s" to\n baseline="%s" (n|Y):'%(ithis, nfailed, saved, baseline))
+ if x.lower()=='y' or x=='':
+ shutil.copy(saved, baseline)
+ print ' copied'
+ elif x.lower()=='n':
+ print ' skipping'
+ else:
+ print ' skipping unrecognized response="%s"'%x
+ print
+
+ else:
+ print 'could not find data for', fname
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-23 01:31:48
|
Revision: 7526
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7526&view=rev
Author: jdh2358
Date: 2009-08-23 01:31:40 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
updated 7 of 9 images; leaving 2 for pos control on buildbot
Modified Paths:
--------------
trunk/matplotlib/test/README.txt
trunk/matplotlib/test/consolidate_diff_images.sh
trunk/matplotlib/test/test_matplotlib/baseline/TestAxes/empty_datetime.png
trunk/matplotlib/test/test_matplotlib/baseline/TestAxes/formatter_ticker_004.png
trunk/matplotlib/test/test_plots/baseline/TestAnnotation/offset_points.png
trunk/matplotlib/test/test_plots/baseline/TestAnnotation/polar_axes.png
trunk/matplotlib/test/test_plots/baseline/TestFill/fill_units.png
trunk/matplotlib/test/test_plots/baseline/TestPlot/const_xy.png
trunk/matplotlib/test/test_plots/baseline/TestPolar/polar_units.png
Modified: trunk/matplotlib/test/README.txt
===================================================================
--- trunk/matplotlib/test/README.txt 2009-08-23 01:03:07 UTC (rev 7525)
+++ trunk/matplotlib/test/README.txt 2009-08-23 01:31:40 UTC (rev 7526)
@@ -288,3 +288,12 @@
reference and therefore needs to be called out as different that a simple
measurement of time since a delta-t in one frame may not be the same in another.
+
+
+Updating after diff
+====================
+
+ python run-mpl-test.py --all --keep-failed
+ ./consolidate_diff_images.sh
+ # check your images, decide which are good
+ python movegood.py
Modified: trunk/matplotlib/test/consolidate_diff_images.sh
===================================================================
--- trunk/matplotlib/test/consolidate_diff_images.sh 2009-08-23 01:03:07 UTC (rev 7525)
+++ trunk/matplotlib/test/consolidate_diff_images.sh 2009-08-23 01:31:40 UTC (rev 7526)
@@ -4,4 +4,4 @@
TARGET_DIR="diff-images"
rm -rf $TARGET_DIR
mkdir $TARGET_DIR
-find . -name 'failed-diff-*png' | xargs mv --target-directory=$TARGET_DIR
+find . -name 'failed-diff-*png' -exec mv {} $TARGET_DIR/ \;
Modified: trunk/matplotlib/test/test_matplotlib/baseline/TestAxes/empty_datetime.png
===================================================================
(Binary files differ)
Modified: trunk/matplotlib/test/test_matplotlib/baseline/TestAxes/formatter_ticker_004.png
===================================================================
(Binary files differ)
Modified: trunk/matplotlib/test/test_plots/baseline/TestAnnotation/offset_points.png
===================================================================
(Binary files differ)
Modified: trunk/matplotlib/test/test_plots/baseline/TestAnnotation/polar_axes.png
===================================================================
(Binary files differ)
Modified: trunk/matplotlib/test/test_plots/baseline/TestFill/fill_units.png
===================================================================
(Binary files differ)
Modified: trunk/matplotlib/test/test_plots/baseline/TestPlot/const_xy.png
===================================================================
(Binary files differ)
Modified: trunk/matplotlib/test/test_plots/baseline/TestPolar/polar_units.png
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-23 01:22:27
|
Revision: 7522
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7522&view=rev
Author: jdh2358
Date: 2009-08-22 23:19:44 +0000 (Sat, 22 Aug 2009)
Log Message:
-----------
applied Ariel's mlab.cohere_pairs fixes
Modified Paths:
--------------
branches/v0_99_maint/lib/matplotlib/mlab.py
Modified: branches/v0_99_maint/lib/matplotlib/mlab.py
===================================================================
--- branches/v0_99_maint/lib/matplotlib/mlab.py 2009-08-22 22:50:55 UTC (rev 7521)
+++ branches/v0_99_maint/lib/matplotlib/mlab.py 2009-08-22 23:19:44 UTC (rev 7522)
@@ -501,70 +501,76 @@
returnPxx=False):
u"""
- Cxy, Phase, freqs = cohere_pairs(X, ij, ...)
+ Cxy, Phase, freqs = cohere_pairs( X, ij, ...)
- Compute the coherence for all pairs in *ij*. *X* is a
- (*numSamples*, *numCols*) numpy array. *ij* is a list of tuples
- (*i*, *j*). Each tuple is a pair of indexes into the columns of *X*
- for which you want to compute coherence. For example, if *X* has 64
- columns, and you want to compute all nonredundant pairs, define *ij*
- as::
+ Compute the coherence and phase for all pairs ij, in X.
+ Parameters
+ ----------
+ X: array
+ a numSamples*numCols array
+
+ ij: list of tuples
+ Each tuple is a pair of indexes into the columns of X for which you want to
+ compute coherence. For example, if X has 64 columns, and you want to
+ compute all nonredundant pairs, define ij as
+
ij = []
for i in range(64):
for j in range(i+1,64):
- ij.append( (i, j) )
+ ij.append( (i,j) )
- The other function arguments, except for *preferSpeedOverMemory*
- (see below), are explained in the help string of :func:`psd`.
+ preferSpeedOverMemory: optional, bool
- Return value is a tuple (*Cxy*, *Phase*, *freqs*).
+ Defaults to true. If false, limits the caching by only making one, rather
+ than two, complex cache arrays. This is useful if memory becomes critical.
+ Even when preferSpeedOverMemory is false, cohere_pairs will still give
+ significant performace gains over calling cohere for each pair, and will
+ use subtantially less memory than if preferSpeedOverMemory is true. In my
+ tests with a 43000,64 array over all nonredundant pairs,
+ preferSpeedOverMemory=1 delivered a 33% performace boost on a 1.7GHZ Athlon
+ with 512MB RAM compared with preferSpeedOverMemory=0. But both solutions
+ were more than 10x faster than naievly crunching all possible pairs through
+ cohere.
+
+ Returns
+ -------
- - *Cxy*: a dictionary of (*i*, *j*) tuples -> coherence vector for that
- pair. I.e., ``Cxy[(i,j)] = cohere(X[:,i], X[:,j])``. Number of
- dictionary keys is ``len(ij)``.
+ (Cxy, Phase, freqs), where:
+
+ Cxy: dictionary of (i,j) tuples -> coherence vector for that
+ pair. Ie, Cxy[(i,j) = cohere(X[:,i], X[:,j]). Number of
+ dictionary keys is len(ij)
- - *Phase*: a dictionary of phases of the cross spectral density at
- each frequency for each pair. The keys are ``(i,j)``.
+ Phase: dictionary of phases of the cross spectral density at
+ each frequency for each pair. keys are (i,j).
- - *freqs*: a vector of frequencies, equal in length to either
- the coherence or phase vectors for any (*i*, *j*) key.. Eg,
- to make a coherence Bode plot::
+ freqs: vector of frequencies, equal in length to either the
+ coherence or phase vectors for any i,j key.
+ Eg, to make a coherence Bode plot:
+
subplot(211)
plot( freqs, Cxy[(12,19)])
subplot(212)
plot( freqs, Phase[(12,19)])
- For a large number of pairs, :func:`cohere_pairs` can be much more
- efficient than just calling :func:`cohere` for each pair, because
- it caches most of the intensive computations. If *N* is the
- number of pairs, this function is O(N) for most of the heavy
- lifting, whereas calling cohere for each pair is
- O(N\N{SUPERSCRIPT TWO}). However, because of the caching, it is
- also more memory intensive, making 2 additional complex arrays
- with approximately the same number of elements as *X*.
+ For a large number of pairs, cohere_pairs can be much more
+ efficient than just calling cohere for each pair, because it
+ caches most of the intensive computations. If N is the number of
+ pairs, this function is O(N) for most of the heavy lifting,
+ whereas calling cohere for each pair is O(N^2). However, because
+ of the caching, it is also more memory intensive, making 2
+ additional complex arrays with approximately the same number of
+ elements as X.
- The parameter *preferSpeedOverMemory*, if *False*, limits the
- caching by only making one, rather than two, complex cache arrays.
- This is useful if memory becomes critical. Even when
- *preferSpeedOverMemory* is *False*, :func:`cohere_pairs` will
- still give significant performace gains over calling
- :func:`cohere` for each pair, and will use subtantially less
- memory than if *preferSpeedOverMemory* is *True*. In my tests
- with a (43000, 64) array over all non-redundant pairs,
- *preferSpeedOverMemory* = *True* delivered a 33% performace boost
- on a 1.7GHZ Athlon with 512MB RAM compared with
- *preferSpeedOverMemory* = *False*. But both solutions were more
- than 10x faster than naievly crunching all possible pairs through
- cohere.
+ See test/cohere_pairs_test.py in the src tree for an example
+ script that shows that this cohere_pairs and cohere give the same
+ results for a given pair.
- .. seealso::
-
- :file:`test/cohere_pairs_test.py` in the src tree
- For an example script that shows that this
- :func:`cohere_pairs` and :func:`cohere` give the same
- results for a given pair.
+ See also
+ --------
+ :func: psd
"""
numRows, numCols = X.shape
@@ -578,12 +584,10 @@
numRows, numCols = X.shape
# get all the columns of X that we are interested in by checking
# the ij tuples
- seen = {}
+ allColumns = set()
for i,j in ij:
- seen[i]=1; seen[j] = 1
- allColumns = seen.keys()
+ allColumns.add(i); allColumns.add(j)
Ncols = len(allColumns)
- del seen
# for real X, ignore the negative frequencies
if np.iscomplexobj(X): numFreqs = NFFT
@@ -596,26 +600,26 @@
assert(len(window) == NFFT)
windowVals = window
else:
- windowVals = window(np.ones((NFFT,), typecode(X)))
+ windowVals = window(np.ones(NFFT, X.dtype))
ind = range(0, numRows-NFFT+1, NFFT-noverlap)
numSlices = len(ind)
FFTSlices = {}
FFTConjSlices = {}
Pxx = {}
slices = range(numSlices)
- normVal = norm(windowVals)**2
+ normVal = np.linalg.norm(windowVals)**2
for iCol in allColumns:
progressCallback(i/Ncols, 'Cacheing FFTs')
Slices = np.zeros( (numSlices,numFreqs), dtype=np.complex_)
for iSlice in slices:
thisSlice = X[ind[iSlice]:ind[iSlice]+NFFT, iCol]
thisSlice = windowVals*detrend(thisSlice)
- Slices[iSlice,:] = fft(thisSlice)[:numFreqs]
+ Slices[iSlice,:] = np.fft.fft(thisSlice)[:numFreqs]
FFTSlices[iCol] = Slices
if preferSpeedOverMemory:
- FFTConjSlices[iCol] = conjugate(Slices)
- Pxx[iCol] = np.divide(np.mean(absolute(Slices)**2), normVal)
+ FFTConjSlices[iCol] = np.conjugate(Slices)
+ Pxx[iCol] = np.divide(np.mean(abs(Slices)**2), normVal)
del Slices, ind, windowVals
# compute the coherences and phases for all pairs using the
@@ -634,9 +638,11 @@
else:
Pxy = FFTSlices[i] * np.conjugate(FFTSlices[j])
if numSlices>1: Pxy = np.mean(Pxy)
- Pxy = np.divide(Pxy, normVal)
- Cxy[(i,j)] = np.divide(np.absolute(Pxy)**2, Pxx[i]*Pxx[j])
- Phase[(i,j)] = np.arctan2(Pxy.imag, Pxy.real)
+ #Pxy = np.divide(Pxy, normVal)
+ Pxy /= normVal
+ #Cxy[(i,j)] = np.divide(np.absolute(Pxy)**2, Pxx[i]*Pxx[j])
+ Cxy[i,j] = abs(Pxy)**2 / (Pxx[i]*Pxx[j])
+ Phase[i,j] = np.arctan2(Pxy.imag, Pxy.real)
freqs = Fs/NFFT*np.arange(numFreqs)
if returnPxx:
@@ -644,8 +650,6 @@
else:
return Cxy, Phase, freqs
-
-
def entropy(y, bins):
r"""
Return the entropy of the data in *y*.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-23 01:22:21
|
Revision: 7523
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7523&view=rev
Author: jdh2358
Date: 2009-08-22 23:20:30 +0000 (Sat, 22 Aug 2009)
Log Message:
-----------
fix osx epd formatting bug in rest
Modified Paths:
--------------
branches/v0_99_maint/doc/_templates/indexsidebar.html
branches/v0_99_maint/doc/_templates/layout.html
branches/v0_99_maint/doc/faq/installing_faq.rst
branches/v0_99_maint/doc/users/transforms_tutorial.rst
Modified: branches/v0_99_maint/doc/_templates/indexsidebar.html
===================================================================
--- branches/v0_99_maint/doc/_templates/indexsidebar.html 2009-08-22 23:19:44 UTC (rev 7522)
+++ branches/v0_99_maint/doc/_templates/indexsidebar.html 2009-08-22 23:20:30 UTC (rev 7523)
@@ -7,18 +7,33 @@
pathto('users/installing') }}">installing</a>
</p>
-<p>Watch a <a href="http://videolectures.net/mloss08_hunter_mat">video lecture</a> about matplotlib presented at <a href="http://videolectures.net/mloss08_whistler">NIPS 08 Workshop</a> <i>Machine Learning Open Source Software</i></a>.
+<p>Build websites like matplotlib's,
+with <a href="http://sphinx.pocoo.org/">sphinx</a> and extensions for
+mpl plots, math, inheritance diagrams -- try
+the <a href="http://matplotlib.sf.net/sampledoc">sampledoc</a>
+tutorial.
</p>
+
+<h3>Videos</h3>
+
+<p>Watch the <a href="http://conference.scipy.org/">SciPy</a> 2009 <a href="http://www.archive.org/details/scipy09_introTutorialDay2_1">intro</a> and <a href="http://www.archive.org/details/scipy09_advancedTutorialDay1_3">advanced</a> matplotlib tutorials
+</p>
+
+<p>Watch a <a href="http://videolectures.net/mloss08_hunter_mat">talk</a> about matplotlib presented at <a href="http://videolectures.net/mloss08_whistler">NIPS 08 Workshop</a> <i>MLOSS</i></a>.
+</p>
+
+
+<h3>Toolkits</h3>
+
<p>There are several matplotlib addon <a href="{{
pathto('users/toolkits') }}">toolkits</a>, including the projection
and mapping toolkit
<a href="http://matplotlib.sf.net/basemap/doc/html">basemap</a>, 3d plotting with <a href="{{
-pathto('mpl_toolkits/mplot3d/index') }}">mplot3d</a>, wild and wonderful axes and axis helpers in <a href="{{
+pathto('mpl_toolkits/mplot3d/index') }}">mplot3d</a>, axes and axis helpers in <a href="{{
pathto('mpl_toolkits/axes_grid/index') }}">axes_grid</a> and more.
</p>
-
<h3>Need help?</h3>
<p>Check the <a href="{{ pathto('users/index') }}">user guide</a>,
Modified: branches/v0_99_maint/doc/_templates/layout.html
===================================================================
--- branches/v0_99_maint/doc/_templates/layout.html 2009-08-22 23:19:44 UTC (rev 7522)
+++ branches/v0_99_maint/doc/_templates/layout.html 2009-08-22 23:20:30 UTC (rev 7523)
@@ -2,10 +2,11 @@
{% block rootrellink %}
- <li><a href="{{ pathto('index') }}">matplotlib home</a>| </li>
+ <li><a href="{{ pathto('index') }}">home</a>| </li>
<li><a href="{{ pathto('search') }}">search</a>| </li>
+ <li><a href="examples/index.html">examples</a>| </li>
<li><a href="{{ pathto('gallery') }}">gallery</a>| </li>
- <li><a href="{{ pathto('contents') }}">documentation </a> »</li>
+ <li><a href="{{ pathto('contents') }}">docs</a> »</li>
{% endblock %}
Modified: branches/v0_99_maint/doc/faq/installing_faq.rst
===================================================================
--- branches/v0_99_maint/doc/faq/installing_faq.rst 2009-08-22 23:19:44 UTC (rev 7522)
+++ branches/v0_99_maint/doc/faq/installing_faq.rst 2009-08-22 23:20:30 UTC (rev 7523)
@@ -400,9 +400,10 @@
``/Library/Frameworks/Python.framework/Versions/Current/lib/pythonX.Y/site-packages/easy-install.pth``,
(where X.Y is the version of Python you are building against)
Comment out the line containing the name of the directory in which the
-previous version of MPL was installed (Looks something like ``./matplotlib-0.98.5.2n2-py2.5-macosx-10.3-fat.egg``).
+previous version of MPL was installed (Looks something like ``./matplotlib-0.98.5.2n2-py2.5-macosx-10.3-fat.egg``).
3. Save the following as a shell script , for example ``./install-matplotlib-epd-osx.sh`` ::
+
NAME=matplotlib
VERSION=0_99
PREFIX=$HOME
@@ -413,11 +414,11 @@
echo getting the trunk
svn co https://matplotlib.svn.sourceforge.net/svnroot/$NAME/trunk/$NAME $NAME
cd $NAME
-
+
fi
if [ $branch = "release" ]
then
- echo getting the maintenance branch
+ echo getting the maintenance branch
svn co https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v${VERSION}_maint $NAME$VERSION
cd $NAME$VERSION
fi
Modified: branches/v0_99_maint/doc/users/transforms_tutorial.rst
===================================================================
--- branches/v0_99_maint/doc/users/transforms_tutorial.rst 2009-08-22 23:19:44 UTC (rev 7522)
+++ branches/v0_99_maint/doc/users/transforms_tutorial.rst 2009-08-22 23:20:30 UTC (rev 7523)
@@ -12,11 +12,12 @@
happens under the hood, but as you push the limits of custom figure
generation, it helps to have an understanding of these objects so you
can reuse the existing transformations matplotlib makes available to
-you, or create your own (see :mod:`matplotlib.transforms`. The table below summarizes the existing
-coordinate systems, the transformation object you should use to work
-in that coordinate system, and the description of that system. In the
-`Transformation Object` column, ``ax`` is a :class:`~matplotlib.axes.Axes` instance,
-and ``fig`` is a :class:`~matplotlib.figure.Figure` instance.
+you, or create your own (see :mod:`matplotlib.transforms`). The table
+below summarizes the existing coordinate systems, the transformation
+object you should use to work in that coordinate system, and the
+description of that system. In the `Transformation Object` column,
+``ax`` is a :class:`~matplotlib.axes.Axes` instance, and ``fig`` is a
+:class:`~matplotlib.figure.Figure` instance.
========== ===================== ==============================================================================================================================================================
Coordinate Transformation Object Description
@@ -28,16 +29,18 @@
========== ===================== ==============================================================================================================================================================
-All of the transformation objects take inputs in their coordinate
-system, and transform the input to the `display` coordinate system.
-That is why the `display` coordinate system has `None` for the
-`Transformation Object` column -- it already is in display
-coordinates. The transformations also know how to invert themselves,
-to go from `display` back to the native coordinate system. This is
-particularly useful when processing events from the user interface,
-which typically occur in display space, and you want to know where the
-mouse click or key-press occurred in your data coordinate system.
+All of the transformation objects in the table above take inputs in
+their coordinate system, and transform the input to the `display`
+coordinate system. That is why the `display` coordinate system has
+`None` for the `Transformation Object` column -- it already is in
+display coordinates. The transformations also know how to invert
+themselves, to go from `display` back to the native coordinate system.
+This is particularly useful when processing events from the user
+interface, which typically occur in display space, and you want to
+know where the mouse click or key-press occurred in your data
+coordinate system.
+
.. _data-coords:
Data coordinates
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <as...@us...> - 2009-08-23 01:03:25
|
Revision: 7525
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7525&view=rev
Author: astraw
Date: 2009-08-23 01:03:07 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
remove buildout support (testing will use plain buildbot)
Removed Paths:
-------------
trunk/matplotlib/bootstrap.py
trunk/matplotlib/buildout.cfg
Deleted: trunk/matplotlib/bootstrap.py
===================================================================
--- trunk/matplotlib/bootstrap.py 2009-08-22 23:26:25 UTC (rev 7524)
+++ trunk/matplotlib/bootstrap.py 2009-08-23 01:03:07 UTC (rev 7525)
@@ -1,52 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2006 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Bootstrap a buildout-based project
-
-Simply run this script in a directory containing a buildout.cfg.
-The script accepts buildout command-line options, so you can
-use the -c option to specify an alternate configuration file.
-
-$Id$
-"""
-
-import os, shutil, sys, tempfile, urllib2
-
-tmpeggs = tempfile.mkdtemp()
-
-ez = {}
-exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
- ).read() in ez
-ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
-
-import pkg_resources
-
-cmd = 'from setuptools.command.easy_install import main; main()'
-if sys.platform == 'win32':
- cmd = '"%s"' % cmd # work around spawn lamosity on windows
-
-ws = pkg_resources.working_set
-assert os.spawnle(
- os.P_WAIT, sys.executable, sys.executable,
- '-c', cmd, '-mqNxd', tmpeggs, 'zc.buildout',
- dict(os.environ,
- PYTHONPATH=
- ws.find(pkg_resources.Requirement.parse('setuptools')).location
- ),
- ) == 0
-
-ws.add_entry(tmpeggs)
-ws.require('zc.buildout')
-import zc.buildout.buildout
-zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
-shutil.rmtree(tmpeggs)
Deleted: trunk/matplotlib/buildout.cfg
===================================================================
--- trunk/matplotlib/buildout.cfg 2009-08-22 23:26:25 UTC (rev 7524)
+++ trunk/matplotlib/buildout.cfg 2009-08-23 01:03:07 UTC (rev 7525)
@@ -1,31 +0,0 @@
-[buildout]
-parts = PIL test python
-develop = .
-eggs = matplotlib
-find-links = http://astraw.com/mpl/
-
-[test]
-recipe = pbp.recipe.noserunner
-# Use Andrew Straw's custom packaging of noserunner with plugin support.
-eggs =
- pbp.recipe.noserunner==0.2.6.2
- PIL
- ${buildout:eggs}
-working-directory = ${buildout:directory}/test
-initialization =
- sys.path.insert(0,'.')
- from mplTest import MplNosePlugin
-plugins =
- MplNosePlugin()
-
-[python]
-recipe = zc.recipe.egg
-interpreter = python
-eggs =
- ${buildout:eggs}
-
-[PIL]
-# This recipe based on http://www.koansys.com/tech/install-plone-with-zopeskel-buildout-needs-pil
-# Build egg with Andrew Straw's custom packaging of setuptools-compatibile PIL without Tkinter.
-recipe = zc.recipe.egg
-egg = PIL==1.1.6
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-22 23:26:33
|
Revision: 7524
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7524&view=rev
Author: jdh2358
Date: 2009-08-22 23:26:25 +0000 (Sat, 22 Aug 2009)
Log Message:
-----------
Merged revisions 7489-7490,7498-7502,7506,7517,7519,7521-7523 via svnmerge from
https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_99_maint
........
r7489 | jdh2358 | 2009-08-15 10:40:27 -0700 (Sat, 15 Aug 2009) | 1 line
some doc reorg
........
r7490 | jdh2358 | 2009-08-15 10:56:44 -0700 (Sat, 15 Aug 2009) | 1 line
added transformations tut, did some reorg
........
r7498 | jdh2358 | 2009-08-17 20:48:21 -0700 (Mon, 17 Aug 2009) | 1 line
added path tut
........
r7499 | jdh2358 | 2009-08-17 22:15:21 -0700 (Mon, 17 Aug 2009) | 1 line
added looking glass demo
........
r7500 | mdboom | 2009-08-18 07:00:28 -0700 (Tue, 18 Aug 2009) | 2 lines
Fix some minor typos in the transforms tutorial
........
r7501 | mdboom | 2009-08-18 07:01:41 -0700 (Tue, 18 Aug 2009) | 2 lines
Fix some minor typos in the transforms tutorial
........
r7502 | mdboom | 2009-08-18 07:08:27 -0700 (Tue, 18 Aug 2009) | 2 lines
Fix some minor typos in the paths tutorial
........
r7506 | ryanmay | 2009-08-19 00:56:33 -0700 (Wed, 19 Aug 2009) | 1 line
Remove calls to np.asarray(). This was breaking the use of masked arrays in calls to set_[x|y]data() and is handled appropriately already by set_data().
........
r7517 | jdh2358 | 2009-08-21 17:02:15 -0700 (Fri, 21 Aug 2009) | 1 line
fixed a fifo bug for the new transforms infrastructure
........
r7519 | jouni | 2009-08-21 23:25:07 -0700 (Fri, 21 Aug 2009) | 2 lines
Fix typos found by Marc Desmarais and Nicolas Pinto
........
r7521 | jdh2358 | 2009-08-22 15:50:55 -0700 (Sat, 22 Aug 2009) | 1 line
added Ariel's max install patch
........
r7522 | jdh2358 | 2009-08-22 16:19:44 -0700 (Sat, 22 Aug 2009) | 1 line
applied Ariel's mlab.cohere_pairs fixes
........
r7523 | jdh2358 | 2009-08-22 16:20:30 -0700 (Sat, 22 Aug 2009) | 1 line
fix osx epd formatting bug in rest
........
Modified Paths:
--------------
trunk/matplotlib/CXX/IndirectPythonInterface.hxx
trunk/matplotlib/agg24/include/agg_basics.h
trunk/matplotlib/doc/_templates/indexsidebar.html
trunk/matplotlib/doc/_templates/layout.html
trunk/matplotlib/doc/faq/installing_faq.rst
trunk/matplotlib/doc/users/artists.rst
trunk/matplotlib/doc/users/index.rst
trunk/matplotlib/doc/users/index_text.rst
trunk/matplotlib/lib/matplotlib/axes.py
trunk/matplotlib/lib/matplotlib/lines.py
trunk/matplotlib/lib/matplotlib/mlab.py
Added Paths:
-----------
trunk/matplotlib/doc/pyplots/annotate_transform.py
trunk/matplotlib/doc/pyplots/compound_path_demo.py
trunk/matplotlib/doc/users/annotations_guide.rst
trunk/matplotlib/doc/users/annotations_intro.rst
trunk/matplotlib/doc/users/legend_guide.rst
trunk/matplotlib/doc/users/path_tutorial.rst
trunk/matplotlib/doc/users/transforms_tutorial.rst
trunk/matplotlib/examples/event_handling/looking_glass.py
Removed Paths:
-------------
trunk/matplotlib/doc/users/annotations.rst
trunk/matplotlib/doc/users/plotting/annotation.rst
trunk/matplotlib/doc/users/plotting/legend.rst
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
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
- /branches/mathtex:1-7263 /branches/v0_98_5_maint:1-7253 /branches/v0_99_maint:1-7486
+ /branches/mathtex:1-7263 /branches/v0_98_5_maint:1-7253 /branches/v0_99_maint:1-7523
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
+ /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
Modified: trunk/matplotlib/CXX/IndirectPythonInterface.hxx
===================================================================
--- trunk/matplotlib/CXX/IndirectPythonInterface.hxx 2009-08-22 23:20:30 UTC (rev 7523)
+++ trunk/matplotlib/CXX/IndirectPythonInterface.hxx 2009-08-22 23:26:25 UTC (rev 7524)
@@ -193,6 +193,6 @@
void _XDECREF( PyObject *op );
char *__Py_PackageContext();
-};
+}
#endif // __CXX_INDIRECT_PYTHON_INTERFACE__HXX__
Modified: trunk/matplotlib/agg24/include/agg_basics.h
===================================================================
--- trunk/matplotlib/agg24/include/agg_basics.h 2009-08-22 23:20:30 UTC (rev 7523)
+++ trunk/matplotlib/agg24/include/agg_basics.h 2009-08-22 23:26:25 UTC (rev 7524)
@@ -2,8 +2,8 @@
// Anti-Grain Geometry - Version 2.4
// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
//
-// Permission to copy, use, modify, sell and distribute this software
-// is granted provided this copyright notice appears in all copies.
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
// This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
//
@@ -25,12 +25,12 @@
#else
namespace agg
{
- // The policy of all AGG containers and memory allocation strategy
+ // The policy of all AGG containers and memory allocation strategy
// in general is that no allocated data requires explicit construction.
// It means that the allocator can be really simple; you can even
- // replace new/delete to malloc/free. The constructors and destructors
- // won't be called in this case, however everything will remain working.
- // The second argument of deallocate() is the size of the allocated
+ // replace new/delete to malloc/free. The constructors and destructors
+ // won't be called in this case, however everything will remain working.
+ // The second argument of deallocate() is the size of the allocated
// block. You can use this information if you wish.
//------------------------------------------------------------pod_allocator
template<class T> struct pod_allocator
@@ -40,8 +40,8 @@
};
// Single object allocator. It's also can be replaced with your custom
- // allocator. The difference is that it can only allocate a single
- // object and the constructor and destructor must be called.
+ // allocator. The difference is that it can only allocate a single
+ // object and the constructor and destructor must be called.
// In AGG there is no need to allocate an array of objects with
// calling their constructors (only single ones). So that, if you
// replace these new/delete to malloc/free make sure that the in-place
@@ -213,23 +213,23 @@
enum cover_scale_e
{
cover_shift = 8, //----cover_shift
- cover_size = 1 << cover_shift, //----cover_size
- cover_mask = cover_size - 1, //----cover_mask
- cover_none = 0, //----cover_none
- cover_full = cover_mask //----cover_full
+ cover_size = 1 << cover_shift, //----cover_size
+ cover_mask = cover_size - 1, //----cover_mask
+ cover_none = 0, //----cover_none
+ cover_full = cover_mask //----cover_full
};
//----------------------------------------------------poly_subpixel_scale_e
- // These constants determine the subpixel accuracy, to be more precise,
- // the number of bits of the fractional part of the coordinates.
+ // These constants determine the subpixel accuracy, to be more precise,
+ // the number of bits of the fractional part of the coordinates.
// The possible coordinate capacity in bits can be calculated by formula:
// sizeof(int) * 8 - poly_subpixel_shift, i.e, for 32-bit integers and
// 8-bits fractional part the capacity is 24 bits.
enum poly_subpixel_scale_e
{
poly_subpixel_shift = 8, //----poly_subpixel_shift
- poly_subpixel_scale = 1<<poly_subpixel_shift, //----poly_subpixel_scale
- poly_subpixel_mask = poly_subpixel_scale-1, //----poly_subpixel_mask
+ poly_subpixel_scale = 1<<poly_subpixel_shift, //----poly_subpixel_scale
+ poly_subpixel_mask = poly_subpixel_scale-1 //----poly_subpixel_mask
};
//----------------------------------------------------------filling_rule_e
@@ -253,7 +253,7 @@
{
return rad * 180.0 / pi;
}
-
+
//----------------------------------------------------------------rect_base
template<class T> struct rect_base
{
@@ -265,9 +265,9 @@
rect_base(T x1_, T y1_, T x2_, T y2_) :
x1(x1_), y1(y1_), x2(x2_), y2(y2_) {}
- void init(T x1_, T y1_, T x2_, T y2_)
+ void init(T x1_, T y1_, T x2_, T y2_)
{
- x1 = x1_; y1 = y1_; x2 = x2_; y2 = y2_;
+ x1 = x1_; y1 = y1_; x2 = x2_; y2 = y2_;
}
const self_type& normalize()
@@ -299,17 +299,17 @@
};
//-----------------------------------------------------intersect_rectangles
- template<class Rect>
+ template<class Rect>
inline Rect intersect_rectangles(const Rect& r1, const Rect& r2)
{
Rect r = r1;
- // First process x2,y2 because the other order
- // results in Internal Compiler Error under
- // Microsoft Visual C++ .NET 2003 69462-335-0000007-18038 in
+ // First process x2,y2 because the other order
+ // results in Internal Compiler Error under
+ // Microsoft Visual C++ .NET 2003 69462-335-0000007-18038 in
// case of "Maximize Speed" optimization option.
//-----------------
- if(r.x2 > r2.x2) r.x2 = r2.x2;
+ if(r.x2 > r2.x2) r.x2 = r2.x2;
if(r.y2 > r2.y2) r.y2 = r2.y2;
if(r.x1 < r2.x1) r.x1 = r2.x1;
if(r.y1 < r2.y1) r.y1 = r2.y1;
@@ -318,7 +318,7 @@
//---------------------------------------------------------unite_rectangles
- template<class Rect>
+ template<class Rect>
inline Rect unite_rectangles(const Rect& r1, const Rect& r2)
{
Rect r = r1;
@@ -336,26 +336,26 @@
//---------------------------------------------------------path_commands_e
enum path_commands_e
{
- path_cmd_stop = 0, //----path_cmd_stop
- path_cmd_move_to = 1, //----path_cmd_move_to
- path_cmd_line_to = 2, //----path_cmd_line_to
- path_cmd_curve3 = 3, //----path_cmd_curve3
- path_cmd_curve4 = 4, //----path_cmd_curve4
+ path_cmd_stop = 0, //----path_cmd_stop
+ path_cmd_move_to = 1, //----path_cmd_move_to
+ path_cmd_line_to = 2, //----path_cmd_line_to
+ path_cmd_curve3 = 3, //----path_cmd_curve3
+ path_cmd_curve4 = 4, //----path_cmd_curve4
path_cmd_curveN = 5, //----path_cmd_curveN
path_cmd_catrom = 6, //----path_cmd_catrom
path_cmd_ubspline = 7, //----path_cmd_ubspline
path_cmd_end_poly = 0x0F, //----path_cmd_end_poly
- path_cmd_mask = 0x0F //----path_cmd_mask
+ path_cmd_mask = 0x0F //----path_cmd_mask
};
//------------------------------------------------------------path_flags_e
enum path_flags_e
{
- path_flags_none = 0, //----path_flags_none
- path_flags_ccw = 0x10, //----path_flags_ccw
- path_flags_cw = 0x20, //----path_flags_cw
+ path_flags_none = 0, //----path_flags_none
+ path_flags_ccw = 0x10, //----path_flags_ccw
+ path_flags_cw = 0x20, //----path_flags_cw
path_flags_close = 0x40, //----path_flags_close
- path_flags_mask = 0xF0 //----path_flags_mask
+ path_flags_mask = 0xF0 //----path_flags_mask
};
//---------------------------------------------------------------is_vertex
@@ -372,7 +372,7 @@
//-----------------------------------------------------------------is_stop
inline bool is_stop(unsigned c)
- {
+ {
return c == path_cmd_stop;
}
@@ -416,7 +416,7 @@
inline bool is_close(unsigned c)
{
return (c & ~(path_flags_cw | path_flags_ccw)) ==
- (path_cmd_end_poly | path_flags_close);
+ (path_cmd_end_poly | path_flags_close);
}
//------------------------------------------------------------is_next_poly
@@ -440,19 +440,19 @@
//-------------------------------------------------------------is_oriented
inline bool is_oriented(unsigned c)
{
- return (c & (path_flags_cw | path_flags_ccw)) != 0;
+ return (c & (path_flags_cw | path_flags_ccw)) != 0;
}
//---------------------------------------------------------------is_closed
inline bool is_closed(unsigned c)
{
- return (c & path_flags_close) != 0;
+ return (c & path_flags_close) != 0;
}
//----------------------------------------------------------get_close_flag
inline unsigned get_close_flag(unsigned c)
{
- return c & path_flags_close;
+ return c & path_flags_close;
}
//-------------------------------------------------------clear_orientation
@@ -513,7 +513,7 @@
int x1, x2;
const T* ptr;
const_row_info() {}
- const_row_info(int x1_, int x2_, const T* ptr_) :
+ const_row_info(int x1_, int x2_, const T* ptr_) :
x1(x1_), x2(x2_), ptr(ptr_) {}
};
Modified: trunk/matplotlib/doc/_templates/indexsidebar.html
===================================================================
--- trunk/matplotlib/doc/_templates/indexsidebar.html 2009-08-22 23:20:30 UTC (rev 7523)
+++ trunk/matplotlib/doc/_templates/indexsidebar.html 2009-08-22 23:26:25 UTC (rev 7524)
@@ -8,18 +8,33 @@
pathto('users/installing') }}">installing</a>
</p>
-<p>Watch a <a href="http://videolectures.net/mloss08_hunter_mat">video lecture</a> about matplotlib presented at <a href="http://videolectures.net/mloss08_whistler">NIPS 08 Workshop</a> <i>Machine Learning Open Source Software</i></a>.
+<p>Build websites like matplotlib's,
+with <a href="http://sphinx.pocoo.org/">sphinx</a> and extensions for
+mpl plots, math, inheritance diagrams -- try
+the <a href="http://matplotlib.sf.net/sampledoc">sampledoc</a>
+tutorial.
</p>
+
+<h3>Videos</h3>
+
+<p>Watch the <a href="http://conference.scipy.org/">SciPy</a> 2009 <a href="http://www.archive.org/details/scipy09_introTutorialDay2_1">intro</a> and <a href="http://www.archive.org/details/scipy09_advancedTutorialDay1_3">advanced</a> matplotlib tutorials
+</p>
+
+<p>Watch a <a href="http://videolectures.net/mloss08_hunter_mat">talk</a> about matplotlib presented at <a href="http://videolectures.net/mloss08_whistler">NIPS 08 Workshop</a> <i>MLOSS</i></a>.
+</p>
+
+
+<h3>Toolkits</h3>
+
<p>There are several matplotlib addon <a href="{{
pathto('users/toolkits') }}">toolkits</a>, including the projection
and mapping toolkit
<a href="http://matplotlib.sf.net/basemap/doc/html">basemap</a>, 3d plotting with <a href="{{
-pathto('mpl_toolkits/mplot3d/index') }}">mplot3d</a>, wild and wonderful axes and axis helpers in <a href="{{
+pathto('mpl_toolkits/mplot3d/index') }}">mplot3d</a>, axes and axis helpers in <a href="{{
pathto('mpl_toolkits/axes_grid/index') }}">axes_grid</a> and more.
</p>
-
<h3>Need help?</h3>
<p>Check the <a href="{{ pathto('users/index') }}">user guide</a>,
Modified: trunk/matplotlib/doc/_templates/layout.html
===================================================================
--- trunk/matplotlib/doc/_templates/layout.html 2009-08-22 23:20:30 UTC (rev 7523)
+++ trunk/matplotlib/doc/_templates/layout.html 2009-08-22 23:26:25 UTC (rev 7524)
@@ -2,10 +2,11 @@
{% block rootrellink %}
- <li><a href="{{ pathto('index') }}">matplotlib home</a>| </li>
+ <li><a href="{{ pathto('index') }}">home</a>| </li>
<li><a href="{{ pathto('search') }}">search</a>| </li>
+ <li><a href="examples/index.html">examples</a>| </li>
<li><a href="{{ pathto('gallery') }}">gallery</a>| </li>
- <li><a href="{{ pathto('contents') }}">documentation </a> »</li>
+ <li><a href="{{ pathto('contents') }}">docs</a> »</li>
{% endblock %}
Modified: trunk/matplotlib/doc/faq/installing_faq.rst
===================================================================
--- trunk/matplotlib/doc/faq/installing_faq.rst 2009-08-22 23:20:30 UTC (rev 7523)
+++ trunk/matplotlib/doc/faq/installing_faq.rst 2009-08-22 23:26:25 UTC (rev 7524)
@@ -295,8 +295,8 @@
If you want to install matplotlib from one of the binary installers we
build, you have two choices: a dmg installer, which is a typical
Installer.app, or an binary OSX egg, which you can install via
-setuptools easy_install.
-
+setuptools easy_install.
+
The mkpg installer will have a "dmg" extension, and will have a name
like :file:`matplotlib-0.99.0-py2.5-macosx10.5.dmg` depending on the
python, matplotlib, and OSX versions. Save this file and double
@@ -318,10 +318,24 @@
then you will need to set your PYTHONPATH, eg::
- export PYTHONPATH=/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages:$PYTHONPATH
+ export PYTHONPATH=/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages:$PYTHONPATH
See also :ref:`environment-variables`.
+
+If you are upgrading your matplotlib using the dmg installer over an
+Enthought Python Distribution, you may get an error like "You must use
+a framework install of python". EPD puts their python in a directory
+like :file:``//Library/Frameworks/Python.framework/Versions/4.3.0``
+where 4.3.0 is an EPD version number. The mpl installer needs the
+`python` version number, so you need to create a symlink pointing your
+python version to the EPS version before installing matplotlib. For
+example, for python veersion 2.5 and EPD version 4.3.0::
+
+ > cd /Library/Frameworks/Python.framework/Versions
+ > ln -s 4.3.0 2.5
+
+
.. _easy-install-osx-egg:
easy_install from egg
@@ -342,7 +356,7 @@
<http://sourceforge.net/projects/matplotlib/files/>`_ directly to your
harddrive, and manually install it with
- > easy_install --install-dir=~/dev/lib/python2.5/site-packages/ matplotlib-0.99.0.rc1-py2.5-macosx-10.5-i386.egg
+ > easy_install --install-dir=~/dev/lib/python2.5/site-packages/ matplotlib-0.99.0.rc1-py2.5-macosx-10.5-i386.egg
Some users have reported problems with the egg for 0.98 from the
@@ -364,6 +378,66 @@
which prevents their installation through easy_install. Renaming is
all it takes to install them; still, it's annoying.
+
+.. _install_from_source_on_osx_epd:
+
+Building and installing from source on OSX with EPD
+---------------------------------------------------
+
+If you have the EPD installed (:ref:`which-python-for-osx`), it might turn out
+to be rather tricky to install a new version of matplotlib from source on the
+Mac OS 10.5 . Here's a procedure that seems to work, at least sometimes:
+
+0. Remove the ~/.matplotlib folder ("rm -rf ~/.matplotlib").
+
+1. Edit the file (make a backup before you start, just in case):
+``/Library/Frameworks/Python.framework/Versions/Current/lib/python2.5/config/Makefile``,
+removing all occurrences of the string ``-arch ppc``, changing the line
+``MACOSX_DEPLOYMENT_TARGET=10.3`` to ``MACOSX_DEPLOYMENT_TARGET=10.5`` and
+changing the occurrences of ``MacOSX10.4u.sdk`` into ``MacOSX10.5.sdk``
+
+2. In
+``/Library/Frameworks/Python.framework/Versions/Current/lib/pythonX.Y/site-packages/easy-install.pth``,
+(where X.Y is the version of Python you are building against)
+Comment out the line containing the name of the directory in which the
+previous version of MPL was installed (Looks something like ``./matplotlib-0.98.5.2n2-py2.5-macosx-10.3-fat.egg``).
+
+3. Save the following as a shell script , for example ``./install-matplotlib-epd-osx.sh`` ::
+
+ NAME=matplotlib
+ VERSION=0_99
+ PREFIX=$HOME
+ #branch="release"
+ branch="trunk"
+ if [ $branch = "trunk" ]
+ then
+ echo getting the trunk
+ svn co https://matplotlib.svn.sourceforge.net/svnroot/$NAME/trunk/$NAME $NAME
+ cd $NAME
+
+ fi
+ if [ $branch = "release" ]
+ then
+ echo getting the maintenance branch
+ svn co https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v${VERSION}_maint $NAME$VERSION
+ cd $NAME$VERSION
+ fi
+ export CFLAGS="-Os -arch i386"
+ export LDFLAGS="-Os -arch i386"
+ export PKG_CONFIG_PATH="/usr/x11/lib/pkgconfig"
+ export ARCHFLAGS="-arch i386"
+ python setup.py build
+ python setup.py install #--prefix=$PREFIX #Use this if you don't want it installed into your default location
+ cd ..
+
+Run this script (for example ``sh ./install-matplotlib-epd-osx.sh``) in the
+directory in which you want the source code to be placed, or simply type the
+commands in the terminal command line. This script sets some local variable
+(CFLAGS, LDFLAGS, PKG_CONFIG_PATH, ARCHFLAGS), removes previous installations,
+checks out the source from svn, builds and installs it. The backend seems to be
+set to MacOSX.
+
+
Windows questions
=================
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
+ /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
Copied: trunk/matplotlib/doc/pyplots/annotate_transform.py (from rev 7523, branches/v0_99_maint/doc/pyplots/annotate_transform.py)
===================================================================
--- trunk/matplotlib/doc/pyplots/annotate_transform.py (rev 0)
+++ trunk/matplotlib/doc/pyplots/annotate_transform.py 2009-08-22 23:26:25 UTC (rev 7524)
@@ -0,0 +1,34 @@
+import numpy as np
+import matplotlib.pyplot as plt
+
+x = np.arange(0, 10, 0.005)
+y = np.exp(-x/2.) * np.sin(2*np.pi*x)
+
+fig = plt.figure()
+ax = fig.add_subplot(111)
+ax.plot(x, y)
+ax.set_xlim(0, 10)
+ax.set_ylim(-1, 1)
+
+xdata, ydata = 5, 0
+xdisplay, ydisplay = ax.transData.transform((xdata, ydata))
+
+bbox = dict(boxstyle="round", fc="0.8")
+arrowprops = dict(
+ arrowstyle = "->",
+ connectionstyle = "angle,angleA=0,angleB=90,rad=10")
+
+offset = 72
+ax.annotate('data = (%.1f, %.1f)'%(xdata, ydata),
+ (xdata, ydata), xytext=(-2*offset, offset), textcoords='offset points',
+ bbox=bbox, arrowprops=arrowprops)
+
+
+disp = ax.annotate('display = (%.1f, %.1f)'%(xdisplay, ydisplay),
+ (xdisplay, ydisplay), xytext=(0.5*offset, -offset),
+ xycoords='figure pixels',
+ textcoords='offset points',
+ bbox=bbox, arrowprops=arrowprops)
+
+
+plt.show()
Copied: trunk/matplotlib/doc/pyplots/compound_path_demo.py (from rev 7523, branches/v0_99_maint/doc/pyplots/compound_path_demo.py)
===================================================================
--- trunk/matplotlib/doc/pyplots/compound_path_demo.py (rev 0)
+++ trunk/matplotlib/doc/pyplots/compound_path_demo.py 2009-08-22 23:26:25 UTC (rev 7524)
@@ -0,0 +1,42 @@
+import numpy as np
+
+import matplotlib.pyplot as plt
+import matplotlib.patches as patches
+import matplotlib.path as path
+
+fig = plt.figure()
+ax = fig.add_subplot(111)
+
+# histogram our data with numpy
+data = np.random.randn(1000)
+n, bins = np.histogram(data, 100)
+
+# get the corners of the rectangles for the histogram
+left = np.array(bins[:-1])
+right = np.array(bins[1:])
+bottom = np.zeros(len(left))
+top = bottom + n
+nrects = len(left)
+
+nverts = nrects*(1+3+1)
+verts = np.zeros((nverts, 2))
+codes = np.ones(nverts, int) * path.Path.LINETO
+codes[0::5] = path.Path.MOVETO
+codes[4::5] = path.Path.CLOSEPOLY
+verts[0::5,0] = left
+verts[0::5,1] = bottom
+verts[1::5,0] = left
+verts[1::5,1] = top
+verts[2::5,0] = right
+verts[2::5,1] = top
+verts[3::5,0] = right
+verts[3::5,1] = bottom
+
+barpath = path.Path(verts, codes)
+patch = patches.PathPatch(barpath, facecolor='green', edgecolor='yellow', alpha=0.5)
+ax.add_patch(patch)
+
+ax.set_xlim(left[0], right[-1])
+ax.set_ylim(bottom.min(), top.max())
+
+plt.show()
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
+ /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
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
+ /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
Deleted: trunk/matplotlib/doc/users/annotations.rst
===================================================================
--- trunk/matplotlib/doc/users/annotations.rst 2009-08-22 23:20:30 UTC (rev 7523)
+++ trunk/matplotlib/doc/users/annotations.rst 2009-08-22 23:26:25 UTC (rev 7524)
@@ -1,87 +0,0 @@
-.. _annotations-tutorial:
-
-Annotating text
-===============
-
-For a more detailed introduction to annotations, see
-:ref:`plotting-guide-annotation`.
-
-The uses of the basic :func:`~matplotlib.pyplot.text` command above
-place text at an arbitrary position on the Axes. A common use case of
-text is to annotate some feature of the plot, and the
-:func:`~matplotlib.Axes.annotate` method provides helper functionality
-to make annotations easy. In an annotation, there are two points to
-consider: the location being annotated represented by the argument
-``xy`` and the location of the text ``xytext``. Both of these
-arguments are ``(x,y)`` tuples.
-
-.. plot:: pyplots/annotation_basic.py
- :include-source:
-
-
-In this example, both the ``xy`` (arrow tip) and ``xytext`` locations
-(text location) are in data coordinates. There are a variety of other
-coordinate systems one can choose -- you can specify the coordinate
-system of ``xy`` and ``xytext`` with one of the following strings for
-``xycoords`` and ``textcoords`` (default is 'data')
-
-==================== ====================================================
-argument coordinate system
-==================== ====================================================
- 'figure points' points from the lower left corner of the figure
- 'figure pixels' pixels from the lower left corner of the figure
- 'figure fraction' 0,0 is lower left of figure and 1,1 is upper, right
- 'axes points' points from lower left corner of axes
- 'axes pixels' pixels from lower left corner of axes
- 'axes fraction' 0,1 is lower left of axes and 1,1 is upper right
- 'data' use the axes data coordinate system
-==================== ====================================================
-
-For example to place the text coordinates in fractional axes
-coordinates, one could do::
-
- ax.annotate('local max', xy=(3, 1), xycoords='data',
- xytext=(0.8, 0.95), textcoords='axes fraction',
- arrowprops=dict(facecolor='black', shrink=0.05),
- horizontalalignment='right', verticalalignment='top',
- )
-
-For physical coordinate systems (points or pixels) the origin is the
-(bottom, left) of the figure or axes. If the value is negative,
-however, the origin is from the (right, top) of the figure or axes,
-analogous to negative indexing of sequences.
-
-Optionally, you can specify arrow properties which draws an arrow
-from the text to the annotated point by giving a dictionary of arrow
-properties in the optional keyword argument ``arrowprops``.
-
-
-==================== =====================================================
-``arrowprops`` key description
-==================== =====================================================
-width the width of the arrow in points
-frac the fraction of the arrow length occupied by the head
-headwidth the width of the base of the arrow head in points
-shrink move the tip and base some percent away from
- the annotated point and text
-
-\*\*kwargs any key for :class:`matplotlib.patches.Polygon`,
- e.g. ``facecolor``
-==================== =====================================================
-
-
-In the example below, the ``xy`` point is in native coordinates
-(``xycoords`` defaults to 'data'). For a polar axes, this is in
-(theta, radius) space. The text in this example is placed in the
-fractional figure coordinate system. :class:`matplotlib.text.Text`
-keyword args like ``horizontalalignment``, ``verticalalignment`` and
-``fontsize are passed from the `~matplotlib.Axes.annotate` to the
-``Text`` instance
-
-.. plot:: pyplots/annotation_polar.py
- :include-source:
-
-For more on all the wild and wonderful things you can do with
-annotations, including fancy arrows, see :ref:`plotting-guide-annotation`
-and :ref:`pylab_examples-annotation_demo`.
-
Copied: trunk/matplotlib/doc/users/annotations_guide.rst (from rev 7523, branches/v0_99_maint/doc/users/annotations_guide.rst)
===================================================================
--- trunk/matplotlib/doc/users/annotations_guide.rst (rev 0)
+++ trunk/matplotlib/doc/users/annotations_guide.rst 2009-08-22 23:26:25 UTC (rev 7524)
@@ -0,0 +1,332 @@
+.. _plotting-guide-annotation:
+
+****************
+Annotating Axes
+****************
+
+Do not proceed unless you already have read
+:func:`~matplotlib.pyplot.text` and :func:`~matplotlib.pyplot.annotate`!
+
+
+Annotating with Text with Box
+=============================
+
+Let's start with a simple example.
+
+.. plot:: users/plotting/examples/annotate_text_arrow.py
+
+
+The :func:`~matplotlib.pyplot.text` function in the pyplot module (or
+text method of the Axes class) takes bbox keyword argument, and when
+given, a box around the text is drawn. ::
+
+ bbox_props = dict(boxstyle="rarrow,pad=0.3", fc="cyan", ec="b", lw=2)
+ t = ax.text(0, 0, "Direction", ha="center", va="center", rotation=45,
+ size=15,
+ bbox=bbox_props)
+
+
+The patch object associated with the text can be accessed by::
+
+ bb = t.get_bbox_patch()
+
+The return value is an instance of FancyBboxPatch and the patch
+properties like facecolor, edgewidth, etc. can be accessed and
+modified as usual. To change the shape of the box, use *set_boxstyle*
+method. ::
+
+ bb.set_boxstyle("rarrow", pad=0.6)
+
+The arguments are the name of the box style with its attributes as
+keyword arguments. Currently, followign box styles are implemented.
+
+ ========== ============== ==========================
+ Class Name Attrs
+ ========== ============== ==========================
+ LArrow ``larrow`` pad=0.3
+ RArrow ``rarrow`` pad=0.3
+ Round ``round`` pad=0.3,rounding_size=None
+ Round4 ``round4`` pad=0.3,rounding_size=None
+ Roundtooth ``roundtooth`` pad=0.3,tooth_size=None
+ Sawtooth ``sawtooth`` pad=0.3,tooth_size=None
+ Square ``square`` pad=0.3
+ ========== ============== ==========================
+
+.. plot:: mpl_examples/pylab_examples/fancybox_demo2.py
+
+
+Note that the attrubutes arguments can be specified within the style
+name with separating comma (this form can be used as "boxstyle" value
+of bbox argument when initializing the text instance) ::
+
+ bb.set_boxstyle("rarrow,pad=0.6")
+
+
+
+
+Annotating with Arrow
+=====================
+
+The :func:`~matplotlib.pyplot.annotate` function in the pyplot module
+(or annotate method of the Axes class) is used to draw an arrow
+connecting two points on the plot. ::
+
+ ax.annotate("Annotation",
+ xy=(x1, y1), xycoords='data',
+ xytext=(x2, y2), textcoords='offset points',
+ )
+
+This annotates a point at ``xy`` in the given coordinate (``xycoords``)
+with the text at ``xytext`` given in ``textcoords``. Often, the
+annotated point is specified in the *data* coordinate and the annotating
+text in *offset points*.
+See :func:`~matplotlib.pyplot.annotate` for available coordinate systems.
+
+An arrow connecting two point (xy & xytext) can be optionally drawn by
+specifying the ``arrowprops`` argument. To draw only an arrow, use
+empty string as the first argument. ::
+
+ ax.annotate("",
+ xy=(0.2, 0.2), xycoords='data',
+ xytext=(0.8, 0.8), textcoords='data',
+ arrowprops=dict(arrowstyle="->",
+ connectionstyle="arc3"),
+ )
+
+.. plot:: users/plotting/examples/annotate_simple01.py
+
+The arrow drawing takes a few steps.
+
+1. a connecting path between two points are created. This is
+ controlled by ``connectionstyle`` key value.
+
+2. If patch object is given (*patchA* & *patchB*), the path is clipped to
+ avoid the patch.
+
+3. The path is further shrinked by given amount of pixels (*shirnkA*
+ & *shrinkB*)
+
+4. The path is transmuted to arrow patch, which is controlled by the
+ ``arrowstyle`` key value.
+
+
+.. plot:: users/plotting/examples/annotate_explain.py
+
+
+The creation of the connecting path between two points is controlled by
+``connectionstyle`` key and follwing styles are available.
+
+ ========== =============================================
+ Name Attrs
+ ========== =============================================
+ ``angle`` angleA=90,angleB=0,rad=0.0
+ ``angle3`` angleA=90,angleB=0
+ ``arc`` angleA=0,angleB=0,armA=None,armB=None,rad=0.0
+ ``arc3`` rad=0.0
+ ``bar`` armA=0.0,armB=0.0,fraction=0.3,angle=None
+ ========== =============================================
+
+Note that "3" in ``angle3`` and ``arc3`` is meant to indicate that the
+resulting path is a quadratic spline segment (three control
+points). As will be discussed below, some arrow style option only can
+be used when the connecting path is a quadratic spline.
+
+The behavior of each connection style is (limitedly) demonstrated in the
+example below. (Warning : The behavior of the ``bar`` style is currently not
+well defined, it may be changed in the future).
+
+.. plot:: users/plotting/examples/connectionstyle_demo.py
+
+
+The connecting path (after clipping and shrinking) is then mutated to
+an arrow patch, according to the given ``arrowstyle``.
+
+ ========== =============================================
+ Name Attrs
+ ========== =============================================
+ ``-`` None
+ ``->`` head_length=0.4,head_width=0.2
+ ``-[`` widthB=1.0,lengthB=0.2,angleB=None
+ ``-|>`` head_length=0.4,head_width=0.2
+ ``<-`` head_length=0.4,head_width=0.2
+ ``<->`` head_length=0.4,head_width=0.2
+ ``<|-`` head_length=0.4,head_width=0.2
+ ``<|-|>`` head_length=0.4,head_width=0.2
+ ``fancy`` head_length=0.4,head_width=0.4,tail_width=0.4
+ ``simple`` head_length=0.5,head_width=0.5,tail_width=0.2
+ ``wedge`` tail_width=0.3,shrink_factor=0.5
+ ========== =============================================
+
+.. plot:: mpl_examples/pylab_examples/fancyarrow_demo.py
+
+Some arrowstyles only work with connection style that generates a
+quadratic-spline segment. They are ``fancy``, ``simple``, and ``wedge``.
+For these arrow styles, you must use "angle3" or "arc3" connection
+style.
+
+If the annotation string is given, the patchA is set to the bbox patch
+of the text by default.
+
+.. plot:: users/plotting/examples/annotate_simple02.py
+
+As in the text command, a box around the text can be drawn using
+the ``bbox`` argument.
+
+.. plot:: users/plotting/examples/annotate_simple03.py
+
+By default, the starting point is set to the center of the text
+extent. This can be adjusted with ``relpos`` key value. The values
+are normalized to the extent of the text. For example, (0,0) means
+lower-left corner and (1,1) means top-right.
+
+.. plot:: users/plotting/examples/annotate_simple04.py
+
+
+Using ConnectorPatch
+====================
+
+The ConnectorPatch is like an annotation without a text. While the
+annotate function is recommended in most of situation, the
+ConnectorPatch is useful when you want to connect points in different
+axes. ::
+
+ from matplotlib.patches import ConnectionPatch
+ xy = (0.2, 0.2)
+ con = ConnectionPatch(xyA=xy, xyB=xy, coordsA="data", coordsB="data",
+ axesA=ax1, axesB=ax2)
+ ax2.add_artist(con)
+
+The above code connects point xy in data coordinate of ``ax1`` to
+point xy int data coordiante of ``ax2``. Here is a simple example.
+
+.. plot:: users/plotting/examples/connect_simple01.py
+
+
+While the ConnectorPatch instance can be added to any axes, but you
+may want it to be added to the axes in the latter (?) of the axes
+drawing order to prevent overlap (?) by other axes.
+
+
+Placing Artist at the anchored location of the Axes
+===================================================
+
+There are class of artist that can be placed at the anchored location
+of the Axes. A common example is the legend. This type of artists can
+be created by using the OffsetBox class. A few predefined classes are
+available in ``mpl_toolkits.axes_grid.anchored_artists``. ::
+
+ from mpl_toolkits.axes_grid.anchored_artists import AnchoredText
+ at = AnchoredText("Figure 1a",
+ prop=dict(size=8), frameon=True,
+ loc=2,
+ )
+ at.patch.set_boxstyle("round,pad=0.,rounding_size=0.2")
+ ax.add_artist(at)
+
+
+.. plot:: users/plotting/examples/anchored_box01.py
+
+
+The *loc* keyword has same meaning as in the legend command.
+
+A simple application is when the size of the artist (or collection of
+artists) is knwon in pixel size during the time of creation. For
+example, If you want to draw a circle with fixed size of 20 pixel x 20
+pixel (radius = 10 pixel), you can utilize
+``AnchoredDrawingArea``. The instance is created with a size of the
+drawing area (in pixel). And user can add arbitrary artist to the
+drawing area. Note that the extents of the artists that are added to
+the drawing area has nothing to do with the placement of the drawing
+area itself. The initial size only matters. ::
+
+ from mpl_toolkits.axes_grid.anchored_artists import AnchoredDrawingArea
+
+ ada = AnchoredDrawingArea(20, 20, 0, 0,
+ loc=1, pad=0., frameon=False)
+ p1 = Circle((10, 10), 10)
+ ada.drawing_area.add_artist(p1)
+ p2 = Circle((30, 10), 5, fc="r")
+ ada.drawing_area.add_artist(p2)
+
+The artists that are added to the drawing area should not have
+transform set (they will be overridden) and the dimension of those
+artists are interpreted as a pixel coordinate, i.e., the radius of the
+circles in above example are 10 pixel and 5 pixel, respectively.
+
+.. plot:: users/plotting/examples/anchored_box02.py
+
+Sometimes, you want to your artists scale with data coordinate (or
+other coordinate than canvas pixel). You can use
+``AnchoredAuxTransformBox`` class. This is similar to
+``AnchoredDrawingArea`` except that the extent of the artist is
+determined during the drawing time respecting the specified transform. ::
+
+ from mpl_toolkits.axes_grid.anchored_artists import AnchoredAuxTransformBox
+
+ box = AnchoredAuxTransformBox(ax.transData, loc=2)
+ el = Ellipse((0,0), width=0.1, height=0.4, angle=30) # in data coordinates!
+ box.drawing_area.add_artist(el)
+
+The ellipse in the above example will have width and height
+corresponds to 0.1 and 0.4 in data coordinate and will be
+automatically scaled when the view limits of the axes change.
+
+.. plot:: users/plotting/examples/anchored_box03.py
+
+As in the legend, the bbox_to_anchor argument can be set. Using the
+HPacker and VPacker, you can have an arrangement(?) of artist as in the
+legend (as a matter of fact, this is how the legend is created).
+
+.. plot:: users/plotting/examples/anchored_box04.py
+
+Note that unlike the legend, the ``bbox_transform`` is set
+to IdentityTransform by default.
+
+Advanced Topics
+***************
+
+Zoom effect between Axes
+========================
+
+mpl_toolkits.axes_grid.inset_locator defines some patch classs useful
+for interconnect two axes. Understanding the code requires some
+knowledge of how mpl's transform works. But, utilizing it will be
+straight forward.
+
+
+.. plot:: mpl_examples/pylab_examples/axes_zoom_effect.py
+
+
+Define Custom BoxStyle
+======================
+
+You can use a custom box style. The value for the ``boxstyle`` can be a
+callable object in following forms.::
+
+ def __call__(self, x0, y0, width, height, mutation_size,
+ aspect_ratio=1.):
+ """
+ Given the location and size of the box, return the path of
+ the box around it.
+
+ - *x0*, *y0*, *width*, *height* : location and size of the box
+ - *mutation_size* : a reference scale for the mutation.
+ - *aspect_ratio* : aspect-ration for the mutation.
+ """
+ path = ...
+ return path
+
+Here is a complete example.
+
+.. plot:: users/plotting/examples/custom_boxstyle01.py
+
+However, it is recommended that you derive from the
+matplotlib.patches.BoxStyle._Base as demonstrated below.
+
+.. plot:: users/plotting/examples/custom_boxstyle02.py
+ :include-source:
+
+
+Similarly, you can define custom ConnectionStyle and Custome ArrowStyle.
+See the source code of ``lib/matplotlib/patches.py`` and check
+how each style class is defined.
Copied: trunk/matplotlib/doc/users/annotations_intro.rst (from rev 7523, branches/v0_99_maint/doc/users/annotations_intro.rst)
===================================================================
--- trunk/matplotlib/doc/users/annotations_intro.rst (rev 0)
+++ trunk/matplotlib/doc/users/annotations_intro.rst 2009-08-22 23:26:25 UTC (rev 7524)
@@ -0,0 +1,87 @@
+.. _annotations-tutorial:
+
+Annotating text
+===============
+
+For a more detailed introduction to annotations, see
+:ref:`plotting-guide-annotation`.
+
+The uses of the basic :func:`~matplotlib.pyplot.text` command above
+place text at an arbitrary position on the Axes. A common use case of
+text is to annotate some feature of the plot, and the
+:func:`~matplotlib.Axes.annotate` method provides helper functionality
+to make annotations easy. In an annotation, there are two points to
+consider: the location being annotated represented by the argument
+``xy`` and the location of the text ``xytext``. Both of these
+arguments are ``(x,y)`` tuples.
+
+.. plot:: pyplots/annotation_basic.py
+ :include-source:
+
+
+In this example, both the ``xy`` (arrow tip) and ``xytext`` locations
+(text location) are in data coordinates. There are a variety of other
+coordinate systems one can choose -- you can specify the coordinate
+system of ``xy`` and ``xytext`` with one of the following strings for
+``xycoords`` and ``textcoords`` (default is 'data')
+
+==================== ====================================================
+argument coordinate system
+==================== ====================================================
+ 'figure points' points from the lower left corner of the figure
+ 'figure pixels' pixels from the lower left corner of the figure
+ 'figure fraction' 0,0 is lower left of figure and 1,1 is upper, right
+ 'axes points' points from lower left corner of axes
+ 'axes pixels' pixels from lower left corner of axes
+ 'axes fraction' 0,1 is lower left of axes and 1,1 is upper right
+ 'data' use the axes data coordinate system
+==================== ====================================================
+
+For example to place the text coordinates in fractional axes
+coordinates, one could do::
+
+ ax.annotate('local max', xy=(3, 1), xycoords='data',
+ xytext=(0.8, 0.95), textcoords='axes fraction',
+ arrowprops=dict(facecolor='black', shrink=0.05),
+ horizontalalignment='right', verticalalignment='top',
+ )
+
+For physical coordinate systems (points or pixels) the origin is the
+(bottom, left) of the figure or axes. If the value is negative,
+however, the origin is from the (right, top) of the figure or axes,
+analogous to negative indexing of sequences.
+
+Optionally, you can specify arrow properties which draws an arrow
+from the text to the annotated point by giving a dictionary of arrow
+properties in the optional keyword argument ``arrowprops``.
+
+
+==================== =====================================================
+``arrowprops`` key description
+==================== =====================================================
+width the width of the arrow in points
+frac the fraction of the arrow length occupied by the head
+headwidth the width of the base of the arrow head in points
+shrink move the tip and base some percent away from
+ the annotated point and text
+
+\*\*kwargs any key for :class:`matplotlib.patches.Polygon`,
+ e.g. ``facecolor``
+==================== =====================================================
+
+
+In the example below, the ``xy`` point is in native coordinates
+(``xycoords`` defaults to 'data'). For a polar axes, this is in
+(theta, radius) space. The text in this example is placed in the
+fractional figure coordinate system. :class:`matplotlib.text.Text`
+keyword args like ``horizontalalignment``, ``verticalalignment`` and
+``fontsize are passed from the `~matplotlib.Axes.annotate` to the
+``Text`` instance
+
+.. plot:: pyplots/annotation_polar.py
+ :include-source:
+
+For more on all the wild and wonderful things you can do with
+annotations, including fancy arrows, see :ref:`plotting-guide-annotation`
+and :ref:`pylab_examples-annotation_demo`.
+
Modified: trunk/matplotlib/doc/users/artists.rst
===================================================================
--- trunk/matplotlib/doc/users/artists.rst 2009-08-22 23:20:30 UTC (rev 7523)
+++ trunk/matplotlib/doc/users/artists.rst 2009-08-22 23:26:25 UTC (rev 7524)
@@ -37,7 +37,7 @@
:class:`~matplotlib.text.Text`,
:class:`~matplotlib.patches.Rectangle`,
:class:`~matplotlib.image.Image`, respectively). These helper methods
-will take your data (eg. ``numpy`` arrays and strings) create
+will take your data (eg. ``numpy`` arrays and strings) and create
primitive ``Artist`` instances as needed (eg. ``Line2D``), add them to
the relevant containers, and draw them when requested. Most of you
are probably familiar with the :class:`~matplotlib.axes.Subplot`,
Modified: trunk/matplotlib/doc/users/index.rst
===================================================================
--- trunk/matplotlib/doc/users/index.rst 2009-08-22 23:20:30 UTC (rev 7523)
+++ trunk/matplotlib/doc/users/index.rst 2009-08-22 23:26:25 UTC (rev 7524)
@@ -20,8 +20,12 @@
shell.rst
index_text.rst
artists.rst
+ legend_guide.rst
event_handling.rst
- plotting.rst
+ legend.rst
+ transforms_tutorial.rst
+ path_tutorial.rst
+ annotations_guide.rst
toolkits.rst
screenshots.rst
whats_new.rst
Modified: trunk/matplotlib/doc/users/index_text.rst
===================================================================
--- trunk/matplotlib/doc/users/index_text.rst 2009-08-22 23:20:30 UTC (rev 7523)
+++ trunk/matplotlib/doc/users/index_text.rst 2009-08-22 23:26:25 UTC (rev 7524)
@@ -9,6 +9,6 @@
text_props.rst
mathtext.rst
usetex.rst
- annotations.rst
+ annotations_intro.rst
Copied: trunk/matplotlib/doc/users/legend_guide.rst (from rev 7523, branches/v0_99_maint/doc/users/legend_guide.rst)
===================================================================
--- trunk/matplotlib/doc/users/legend_guide.rst (rev 0)
+++ trunk/matplotlib/doc/users/legend_guide.rst 2009-08-22 23:26:25 UTC (rev 7524)
@@ -0,0 +1,182 @@
+.. _plotting-guide-legend:
+
+************
+Legend guide
+************
+
+Do not proceed unless you already have read :func:`~matplotlib.pyplot.legend` and
+:class:`matplotlib.legend.Legend`!
+
+
+What to be displayed
+====================
+
+The legend command has a following call signature::
+
+ legend(*args, **kwargs)
+
+If len(args) is 2, the first argument should be a list of artist to be
+labeled, and the second argument should a list of string labels. If
+len(args) is 0, it automatically generate the legend from label
+properties of the child artists by calling
+:meth:`~matplotlib.axes.Axes.get_legend_handles_labels` method.
+For example, *ax.legend()* is equivalent to::
+
+ handles, labels = ax.get_legend_handles_labels()
+ ax.legend(handles, labels)
+
+The :meth:`~matplotlib.axes.Axes.get_legend_handles_labels` method
+returns a tuple of two lists, i.e., list of artists and list of labels
+(python string). However, it does not return all of its child
+artists. It returns all artists in *ax.lines* and *ax.patches* and
+some artists in *ax.collection* which are instance of
+:class:`~matplotlib.collections.LineCollection` or
+:class:`~matplotlib.collections.RegularPolyCollection`. The label
+attributes (returned by get_label() method) of collected artists are
+used as text labels. If label attribute is empty string or starts with
+"_", that artist will be ignored.
+
+
+ * Note that not all kind of artists are supported by the legend. The
+ following is the list of artists that are currently supported.
+
+ * :class:`~matplotlib.lines.Line2D`
+ * :class:`~matplotlib.patches.Patch`
+ * :class:`~matplotlib.collections.LineCollection`
+ * :class:`~matplotlib.collections.RegularPolyCollection`
+
+ Unfortunately, there is no easy workaround when you need legend for
+ an artist not in the above list (You may use one of the supported
+ artist as a proxy. See below), or customize it beyond what is
+ supported by :class:`matplotlib.legend.Legend`.
+
+ * Remember that some *pyplot* commands return artist not supported by
+ legend, e.g., :func:`~matplotlib.pyplot.fill_between` returns
+ :class:`~matplotlib.collections.PolyCollection` that is not
+ supported. Or some return multiple artists. For example,
+ :func:`~matplotlib.pyplot.plot` returns list of
+ :class:`~matplotlib.lines.Line2D` instances, and
+ :func:`~matplotlib.pyplot.errorbar` returns a length 3 tuple of
+ :class:`~matplotlib.lines.Line2D` instances.
+
+ * The legend does not care about the axes that given artists belongs,
+ i.e., the artists may belong to other axes or even none.
+
+
+Adjusting the Order of Legend items
+-----------------------------------
+
+When you want to customize the list of artists to be displayed in the
+legend, or their order of appearance. There are a two options. First,
+you can keep lists of artists and labels, and explicitly use these for
+the first two argument of the legend call.::
+
+ p1, = plot([1,2,3])
+ p2, = plot([3,2,1])
+ p3, = plot([2,3,1])
+ legend([p2, p1], ["line 2", "line 1"])
+
+Or you may use :meth:`~matplotlib.axes.Axes.get_legend_handles_labels`
+to retrieve list of artist and labels and manipulate them before
+feeding them to legend call.::
+
+ ax = subplot(1,1,1)
+ p1, = ax.plot([1,2,3], label="line 1")
+ p2, = ax.plot([3,2,1], label="line 2")
+ p3, = ax.plot([2,3,1], label="line 3")
+
+ handles, labels = ax.get_legend_handles_labels()
+
+ # reverse the order
+ ax.legend(handles[::-1], labels[::-1])
+
+ # or sort them by labels
+ import operator
+ hl = sorted(zip(handles, labels),
+ key=operator.itemgetter(1))
+ handles2, labels2 = zip(*hl)
+
+ ax.legend(handles2, labels2)
+
+
+Using Proxy Artist
+------------------
+
+When you want to display legend for an artist not supported by the
+matplotlib, you may use other supported artist as a proxy. For
+example, you may creates an proxy artist without adding it to the axes
+(so the proxy artist will not be drawn in the main axes) and feet it
+to the legend function.::
+
+ p = Rectangle((0, 0), 1, 1, fc="r")
+ legend([p], ["Red Rectangle"])
+
+
+Multicolumn Legend
+==================
+
+By specifying the keyword argument *ncol*, you can have a multi-column
+legend. Also, mode="expand" horizontally expand the legend to fill the
+axes area. See `legend_demo3.py
+<http://matplotlib.sourceforge.net/examples/pylab_examples/legend_demo3.html>`_
+for example.
+
+
+Legend location
+===============
+
+The location of the legend can be specified by the keyword argument
+*loc*, either by string or a integer number.
+
+============= ======
+ String Number
+============= ======
+ upper right 1
+ upper left 2
+ lower left 3
+ lower right 4
+ right 5
+ center left 6
+ center right 7
+ lower center 8
+ upper center 9
+ center 10
+============= ======
+
+By default, the legend will anchor to the bbox of the axes
+(for legend) or the bbox of the figure (figlegend). You can specify
+your own bbox using *bbox_to_anchor* argument. *bbox_to_anchor* can be an
+instance of :class:`~matplotlib.transforms.BboxBase`, a tuple of 4
+floats (x, y, width, height of the bbox), or a tuple of 2 floats (x, y
+with width=height=0). Unless *bbox_transform* argument is given, the
+coordinates (even for the bbox instance) are considered as normalized
+axes coordinates.
+
+For example, if you want your axes legend located at the figure corner
+(instead of the axes corner)::
+
+ l = legend(bbox_to_anchor=(0, 0, 1, 1), transform=gcf().transFigure)
+
+Also, you can place above or outer right-hand side of the axes,
+
+.. plot:: users/plotting/examples/simple_legend01.py
+ :include-source:
+
+
+Multiple Legend
+===============
+
+Sometime, you want to split the legend into multiple ones.::
+
+ p1, = plot([1,2,3])
+ p2, = plot([3,2,1])
+ legend([p1], ["Test1"], loc=1)
+ legend([p2], ["Test2"], loc=4)
+
+However, the above code only shows the second legend. When the legend
+command is called, a new legend instance is created and old ones are
+removed from the axes. Thus, you need to manually add the removed
+legend.
+
+.. plot:: users/plotting/examples/simple_legend02.py
+ :include-source:
Copied: trunk/matplotlib/doc/users/path_tutorial.rst (from rev 7523, branches/v0_99_maint/doc/users/path_tutorial.rst)
===================================================================
--- trunk/matplotlib/doc/users/path_tutorial.rst (rev 0)
+++ trunk/matplotlib/doc/users/path_tutorial.rst 2009-08-22 23:26:25 UTC (rev 7524)
@@ -0,0 +1,187 @@
+.. _path_tutorial:
+
+*************
+Path Tutorial
+*************
+
+The object underlying all of the :mod:`matplotlib.patch` objects is
+the :class:`~matplotlib.path.Path`, which supports the standard set of
+moveto, lineto, curveto commands to draw simple and compound outlines
+consisting of line segments and splines. The ``Path`` is instantiated
+with a (N,2) array of (x,y) vertices, and a N-length array of path
+codes. For example to draw the unit rectangle from (0,0) to (1,1), we
+could use this code
+
+.. plot::
+ :include-source:
+
+ import matplotlib.pyplot as plt
+ from matplotlib.path import Path
+ import matplotlib.patches as patches
+
+ verts = [
+ (0., 0.), # left, bottom
+ (0., 1.), # left, top
+ ...
[truncated message content] |
|
From: <jd...@us...> - 2009-08-22 22:51:03
|
Revision: 7521
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7521&view=rev
Author: jdh2358
Date: 2009-08-22 22:50:55 +0000 (Sat, 22 Aug 2009)
Log Message:
-----------
added Ariel's max install patch
Modified Paths:
--------------
branches/v0_99_maint/doc/faq/installing_faq.rst
branches/v0_99_maint/lib/matplotlib/mlab.py
Modified: branches/v0_99_maint/doc/faq/installing_faq.rst
===================================================================
--- branches/v0_99_maint/doc/faq/installing_faq.rst 2009-08-22 20:16:09 UTC (rev 7520)
+++ branches/v0_99_maint/doc/faq/installing_faq.rst 2009-08-22 22:50:55 UTC (rev 7521)
@@ -295,8 +295,8 @@
If you want to install matplotlib from one of the binary installers we
build, you have two choices: a dmg installer, which is a typical
Installer.app, or an binary OSX egg, which you can install via
-setuptools easy_install.
-
+setuptools easy_install.
+
The mkpg installer will have a "dmg" extension, and will have a name
like :file:`matplotlib-0.99.0-py2.5-macosx10.5.dmg` depending on the
python, matplotlib, and OSX versions. Save this file and double
@@ -318,10 +318,24 @@
then you will need to set your PYTHONPATH, eg::
- export PYTHONPATH=/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages:$PYTHONPATH
+ export PYTHONPATH=/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages:$PYTHONPATH
See also :ref:`environment-variables`.
+
+If you are upgrading your matplotlib using the dmg installer over an
+Enthought Python Distribution, you may get an error like "You must use
+a framework install of python". EPD puts their python in a directory
+like :file:``//Library/Frameworks/Python.framework/Versions/4.3.0``
+where 4.3.0 is an EPD version number. The mpl installer needs the
+`python` version number, so you need to create a symlink pointing your
+python version to the EPS version before installing matplotlib. For
+example, for python veersion 2.5 and EPD version 4.3.0::
+
+ > cd /Library/Frameworks/Python.framework/Versions
+ > ln -s 4.3.0 2.5
+
+
.. _easy-install-osx-egg:
easy_install from egg
@@ -342,7 +356,7 @@
<http://sourceforge.net/projects/matplotlib/files/>`_ directly to your
harddrive, and manually install it with
- > easy_install --install-dir=~/dev/lib/python2.5/site-packages/ matplotlib-0.99.0.rc1-py2.5-macosx-10.5-i386.egg
+ > easy_install --install-dir=~/dev/lib/python2.5/site-packages/ matplotlib-0.99.0.rc1-py2.5-macosx-10.5-i386.egg
Some users have reported problems with the egg for 0.98 from the
@@ -364,6 +378,65 @@
which prevents their installation through easy_install. Renaming is
all it takes to install them; still, it's annoying.
+
+.. _install_from_source_on_osx_epd:
+
+Building and installing from source on OSX with EPD
+---------------------------------------------------
+
+If you have the EPD installed (:ref:`which-python-for-osx`), it might turn out
+to be rather tricky to install a new version of matplotlib from source on the
+Mac OS 10.5 . Here's a procedure that seems to work, at least sometimes:
+
+0. Remove the ~/.matplotlib folder ("rm -rf ~/.matplotlib").
+
+1. Edit the file (make a backup before you start, just in case):
+``/Library/Frameworks/Python.framework/Versions/Current/lib/python2.5/config/Makefile``,
+removing all occurrences of the string ``-arch ppc``, changing the line
+``MACOSX_DEPLOYMENT_TARGET=10.3`` to ``MACOSX_DEPLOYMENT_TARGET=10.5`` and
+changing the occurrences of ``MacOSX10.4u.sdk`` into ``MacOSX10.5.sdk``
+
+2. In
+``/Library/Frameworks/Python.framework/Versions/Current/lib/pythonX.Y/site-packages/easy-install.pth``,
+(where X.Y is the version of Python you are building against)
+Comment out the line containing the name of the directory in which the
+previous version of MPL was installed (Looks something like ``./matplotlib-0.98.5.2n2-py2.5-macosx-10.3-fat.egg``).
+
+3. Save the following as a shell script , for example ``./install-matplotlib-epd-osx.sh`` ::
+ NAME=matplotlib
+ VERSION=0_99
+ PREFIX=$HOME
+ #branch="release"
+ branch="trunk"
+ if [ $branch = "trunk" ]
+ then
+ echo getting the trunk
+ svn co https://matplotlib.svn.sourceforge.net/svnroot/$NAME/trunk/$NAME $NAME
+ cd $NAME
+
+ fi
+ if [ $branch = "release" ]
+ then
+ echo getting the maintenance branch
+ svn co https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v${VERSION}_maint $NAME$VERSION
+ cd $NAME$VERSION
+ fi
+ export CFLAGS="-Os -arch i386"
+ export LDFLAGS="-Os -arch i386"
+ export PKG_CONFIG_PATH="/usr/x11/lib/pkgconfig"
+ export ARCHFLAGS="-arch i386"
+ python setup.py build
+ python setup.py install #--prefix=$PREFIX #Use this if you don't want it installed into your default location
+ cd ..
+
+Run this script (for example ``sh ./install-matplotlib-epd-osx.sh``) in the
+directory in which you want the source code to be placed, or simply type the
+commands in the terminal command line. This script sets some local variable
+(CFLAGS, LDFLAGS, PKG_CONFIG_PATH, ARCHFLAGS), removes previous installations,
+checks out the source from svn, builds and installs it. The backend seems to be
+set to MacOSX.
+
+
Windows questions
=================
Modified: branches/v0_99_maint/lib/matplotlib/mlab.py
===================================================================
--- branches/v0_99_maint/lib/matplotlib/mlab.py 2009-08-22 20:16:09 UTC (rev 7520)
+++ branches/v0_99_maint/lib/matplotlib/mlab.py 2009-08-22 22:50:55 UTC (rev 7521)
@@ -565,7 +565,7 @@
For an example script that shows that this
:func:`cohere_pairs` and :func:`cohere` give the same
results for a given pair.
- """
+ """
numRows, numCols = X.shape
# zero pad if X is too short
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ry...@us...> - 2009-08-22 20:16:22
|
Revision: 7520
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7520&view=rev
Author: ryanmay
Date: 2009-08-22 20:16:09 +0000 (Sat, 22 Aug 2009)
Log Message:
-----------
Fix typo in QuadMesh.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/collections.py
Modified: trunk/matplotlib/lib/matplotlib/collections.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/collections.py 2009-08-22 06:25:07 UTC (rev 7519)
+++ trunk/matplotlib/lib/matplotlib/collections.py 2009-08-22 20:16:09 UTC (rev 7520)
@@ -1209,7 +1209,7 @@
transOffset = transOffset.get_affine()
gc = renderer.new_gc()
- self._set_clip_gc(gc)
+ self._set_gc_clip(gc)
if self._shading == 'gouraud':
triangles, colors = self.convert_mesh_to_triangles(
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jo...@us...> - 2009-08-22 06:25:16
|
Revision: 7519
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7519&view=rev
Author: jouni
Date: 2009-08-22 06:25:07 +0000 (Sat, 22 Aug 2009)
Log Message:
-----------
Fix typos found by Marc Desmarais and Nicolas Pinto
Modified Paths:
--------------
branches/v0_99_maint/doc/users/artists.rst
branches/v0_99_maint/lib/matplotlib/axes.py
Modified: branches/v0_99_maint/doc/users/artists.rst
===================================================================
--- branches/v0_99_maint/doc/users/artists.rst 2009-08-22 04:19:45 UTC (rev 7518)
+++ branches/v0_99_maint/doc/users/artists.rst 2009-08-22 06:25:07 UTC (rev 7519)
@@ -37,7 +37,7 @@
:class:`~matplotlib.text.Text`,
:class:`~matplotlib.patches.Rectangle`,
:class:`~matplotlib.image.Image`, respectively). These helper methods
-will take your data (eg. ``numpy`` arrays and strings) create
+will take your data (eg. ``numpy`` arrays and strings) and create
primitive ``Artist`` instances as needed (eg. ``Line2D``), add them to
the relevant containers, and draw them when requested. Most of you
are probably familiar with the :class:`~matplotlib.axes.Subplot`,
Modified: branches/v0_99_maint/lib/matplotlib/axes.py
===================================================================
--- branches/v0_99_maint/lib/matplotlib/axes.py 2009-08-22 04:19:45 UTC (rev 7518)
+++ branches/v0_99_maint/lib/matplotlib/axes.py 2009-08-22 06:25:07 UTC (rev 7519)
@@ -3828,7 +3828,7 @@
"""
return handles and labels for legend
- ax.legend() is equibalent to ::
+ ax.legend() is equivalent to ::
h, l = ax.get_legend_handles_labels()
ax.legend(h, l)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jo...@us...> - 2009-08-22 04:19:52
|
Revision: 7518
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7518&view=rev
Author: jouni
Date: 2009-08-22 04:19:45 +0000 (Sat, 22 Aug 2009)
Log Message:
-----------
Changed the way the target OS X version is determined in _macosx.m.
Modified Paths:
--------------
trunk/matplotlib/src/_macosx.m
Modified: trunk/matplotlib/src/_macosx.m
===================================================================
--- trunk/matplotlib/src/_macosx.m 2009-08-22 00:02:15 UTC (rev 7517)
+++ trunk/matplotlib/src/_macosx.m 2009-08-22 04:19:45 UTC (rev 7518)
@@ -5,11 +5,16 @@
#include "numpy/arrayobject.h"
#include "path_cleanup.h"
+/* Proper way to check for the OS X version we are compiling for, from
+ http://developer.apple.com/documentation/DeveloperTools/Conceptual/cross_development */
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
+#define COMPILING_FOR_10_5
+#endif
static int nwin = 0; /* The number of open windows */
/* Use Atsui for Mac OS X 10.4, CoreText for Mac OS X 10.5 */
-#ifndef MAC_OS_X_VERSION_10_5
+#ifndef COMPILING_FOR_10_5
static int ngc = 0; /* The number of graphics contexts in use */
@@ -175,7 +180,7 @@
return 1;
}
-#ifndef MAC_OS_X_VERSION_10_5
+#ifndef COMPILING_FOR_10_5
static int _init_atsui(void)
{
OSStatus status;
@@ -451,7 +456,7 @@
self->cr = NULL;
self->level = 0;
-#ifndef MAC_OS_X_VERSION_10_5
+#ifndef COMPILING_FOR_10_5
if (ngc==0)
{
int ok = _init_atsui();
@@ -466,7 +471,7 @@
return (PyObject*) self;
}
-#ifndef MAC_OS_X_VERSION_10_5
+#ifndef COMPILING_FOR_10_5
static void
GraphicsContext_dealloc(GraphicsContext *self)
{
@@ -1877,7 +1882,7 @@
}
-#ifdef MAC_OS_X_VERSION_10_5
+#ifdef COMPILING_FOR_10_5
static CTFontRef
#else
static ATSFontRef
@@ -1891,7 +1896,7 @@
const char* temp;
const char* name = "Times-Roman";
CFStringRef string;
-#ifdef MAC_OS_X_VERSION_10_5
+#ifdef COMPILING_FOR_10_5
CTFontRef font = 0;
#else
ATSFontRef font = 0;
@@ -2091,7 +2096,7 @@
string = CFStringCreateWithCString(kCFAllocatorDefault,
temp,
kCFStringEncodingMacRoman);
-#ifdef MAC_OS_X_VERSION_10_5
+#ifdef COMPILING_FOR_10_5
font = CTFontCreateWithName(string, size, NULL);
#else
font = ATSFontFindFromPostScriptName(string, kATSOptionFlagsDefault);
@@ -2109,20 +2114,20 @@
{ string = CFStringCreateWithCString(kCFAllocatorDefault,
name,
kCFStringEncodingMacRoman);
-#ifdef MAC_OS_X_VERSION_10_5
+#ifdef COMPILING_FOR_10_5
font = CTFontCreateWithName(string, size, NULL);
#else
font = ATSFontFindFromPostScriptName(string, kATSOptionFlagsDefault);
#endif
CFRelease(string);
}
-#ifndef MAC_OS_X_VERSION_10_5
+#ifndef COMPILING_FOR_10_5
CGContextSelectFont(cr, name, size, kCGEncodingMacRoman);
#endif
return font;
}
-#ifdef MAC_OS_X_VERSION_10_5
+#ifdef COMPILING_FOR_10_5
static PyObject*
GraphicsContext_draw_text (GraphicsContext* self, PyObject* args)
{
@@ -2821,7 +2826,7 @@
"_macosx.GraphicsContext", /*tp_name*/
sizeof(GraphicsContext), /*tp_basicsize*/
0, /*tp_itemsize*/
-#ifdef MAC_OS_X_VERSION_10_5
+#ifdef COMPILING_FOR_10_5
0, /*tp_dealloc*/
#else
(destructor)GraphicsContext_dealloc, /*tp_dealloc*/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-22 00:02:28
|
Revision: 7517
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7517&view=rev
Author: jdh2358
Date: 2009-08-22 00:02:15 +0000 (Sat, 22 Aug 2009)
Log Message:
-----------
fixed a fifo bug for the new transforms infrastructure
Modified Paths:
--------------
branches/v0_99_maint/doc/users/index.rst
branches/v0_99_maint/lib/matplotlib/mlab.py
Modified: branches/v0_99_maint/doc/users/index.rst
===================================================================
--- branches/v0_99_maint/doc/users/index.rst 2009-08-21 18:35:47 UTC (rev 7516)
+++ branches/v0_99_maint/doc/users/index.rst 2009-08-22 00:02:15 UTC (rev 7517)
@@ -22,10 +22,10 @@
artists.rst
legend_guide.rst
event_handling.rst
- annotations_guide.rst
legend.rst
transforms_tutorial.rst
path_tutorial.rst
+ annotations_guide.rst
toolkits.rst
screenshots.rst
whats_new.rst
Modified: branches/v0_99_maint/lib/matplotlib/mlab.py
===================================================================
--- branches/v0_99_maint/lib/matplotlib/mlab.py 2009-08-21 18:35:47 UTC (rev 7516)
+++ branches/v0_99_maint/lib/matplotlib/mlab.py 2009-08-22 00:02:15 UTC (rev 7517)
@@ -1099,8 +1099,9 @@
Add scalar *x* and *y* to the queue.
"""
if self.dataLim is not None:
- xys = ((x,y),)
- self.dataLim.update(xys, -1) #-1 means use the default ignore setting
+ xy = np.asarray([(x,y),])
+ self.dataLim.update_from_data_xy(xy, None)
+
ind = self._ind % self._nmax
#print 'adding to fifo:', ind, x, y
self._xs[ind] = x
@@ -1144,6 +1145,8 @@
if self.dataLim is None:
raise ValueError('You must first set the dataLim attr')
x, y = self.asarrays()
+ self.dataLim.update_from_data(x, y, True)
+
self.dataLim.update_numerix(x, y, True)
def movavg(x,n):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2009-08-21 18:35:55
|
Revision: 7516
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7516&view=rev
Author: mdboom
Date: 2009-08-21 18:35:47 +0000 (Fri, 21 Aug 2009)
Log Message:
-----------
Improve documentation re-build speed.
Modified Paths:
--------------
trunk/matplotlib/doc/sphinxext/gen_gallery.py
trunk/matplotlib/doc/sphinxext/gen_rst.py
Modified: trunk/matplotlib/doc/sphinxext/gen_gallery.py
===================================================================
--- trunk/matplotlib/doc/sphinxext/gen_gallery.py 2009-08-21 17:39:46 UTC (rev 7515)
+++ trunk/matplotlib/doc/sphinxext/gen_gallery.py 2009-08-21 18:35:47 UTC (rev 7516)
@@ -18,6 +18,10 @@
multiimage = re.compile('(.*)_\d\d')
+def out_of_date(original, derived):
+ return (not os.path.exists(derived) or
+ os.stat(derived).st_mtime < os.stat(original).st_mtime)
+
def gen_gallery(app, doctree):
if app.builder.name != 'html':
return
@@ -58,10 +62,10 @@
# Create thumbnails based on images in tmpdir, and place
# them within the build tree
- image.thumbnail(
- str(os.path.join(origdir, filename)),
- str(os.path.join(thumbdir, filename)),
- scale=0.3)
+ orig_path = str(os.path.join(origdir, filename))
+ thumb_path = str(os.path.join(thumbdir, filename))
+ if out_of_date(orig_path, thumb_path):
+ image.thumbnail(orig_path, thumb_path, scale=0.3)
m = multiimage.match(basename)
if m is None:
Modified: trunk/matplotlib/doc/sphinxext/gen_rst.py
===================================================================
--- trunk/matplotlib/doc/sphinxext/gen_rst.py 2009-08-21 17:39:46 UTC (rev 7515)
+++ trunk/matplotlib/doc/sphinxext/gen_rst.py 2009-08-21 18:35:47 UTC (rev 7516)
@@ -113,8 +113,7 @@
fhsubdirIndex.write(' %s\n'%rstfile)
- if (not out_of_date(fullpath, outputfile) and
- not out_of_date(fullpath, outrstfile)):
+ if not out_of_date(fullpath, outrstfile):
continue
fh = file(outrstfile, 'w')
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ry...@us...> - 2009-08-21 17:39:56
|
Revision: 7515
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7515&view=rev
Author: ryanmay
Date: 2009-08-21 17:39:46 +0000 (Fri, 21 Aug 2009)
Log Message:
-----------
Add an example showing how to dynamically resample for plotting using event handling.
Added Paths:
-----------
trunk/matplotlib/examples/event_handling/resample.py
Added: trunk/matplotlib/examples/event_handling/resample.py
===================================================================
--- trunk/matplotlib/examples/event_handling/resample.py (rev 0)
+++ trunk/matplotlib/examples/event_handling/resample.py 2009-08-21 17:39:46 UTC (rev 7515)
@@ -0,0 +1,53 @@
+import numpy as np
+import matplotlib.pyplot as plt
+from scikits.audiolab import wavread
+
+# A class that will downsample the data and recompute when zoomed.
+class DataDisplayDownsampler(object):
+ def __init__(self, xdata, ydata):
+ self.origYData = ydata
+ self.origXData = xdata
+ self.numpts = 3000
+ self.delta = xdata[-1] - xdata[0]
+
+ def resample(self, xstart, xend):
+ # Very simple downsampling that takes the points within the range
+ # and picks every Nth point
+ mask = (self.origXData > xstart) & (self.origXData < xend)
+ xdata = self.origXData[mask]
+ ratio = int(xdata.size / self.numpts) + 1
+ xdata = xdata[::ratio]
+
+ ydata = self.origYData[mask]
+ ydata = ydata[::ratio]
+
+ return xdata, ydata
+
+ def update(self, ax):
+ # Update the line
+ lims = ax.viewLim
+ if np.abs(lims.width - self.delta) > 1e-8:
+ self.delta = lims.width
+ xstart, xend = lims.intervalx
+ self.line.set_data(*self.downsample(xstart, xend))
+ ax.figure.canvas.draw_idle()
+
+# Read data
+data = wavread('/usr/share/sounds/purple/receive.wav')[0]
+ydata = np.tile(data[:, 0], 100)
+xdata = np.arange(ydata.size)
+
+d = DataDisplayDownsampler(xdata, ydata)
+
+fig = plt.figure()
+ax = fig.add_subplot(1, 1, 1)
+
+#Hook up the line
+xdata, ydata = d.downsample(xdata[0], xdata[-1])
+d.line, = ax.plot(xdata, ydata)
+ax.set_autoscale_on(False) # Otherwise, infinite loop
+
+# Connect for changing the view limits
+ax.callbacks.connect('xlim_changed', d.update)
+
+plt.show()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-21 05:33:33
|
Revision: 7514
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7514&view=rev
Author: jdh2358
Date: 2009-08-21 05:33:25 +0000 (Fri, 21 Aug 2009)
Log Message:
-----------
tweaks to sampledoc
Modified Paths:
--------------
trunk/sampledoc_tut/custom_look.rst
trunk/sampledoc_tut/extensions.rst
Modified: trunk/sampledoc_tut/custom_look.rst
===================================================================
--- trunk/sampledoc_tut/custom_look.rst 2009-08-20 23:16:11 UTC (rev 7513)
+++ trunk/sampledoc_tut/custom_look.rst 2009-08-21 05:33:25 UTC (rev 7514)
@@ -9,7 +9,7 @@
the sites created with the default css, so here we'll invoke TS Elliots'
maxim "Talent imitates, but genius steals" and grab their css
and part of their layout. As before, you can either get the required
-files :file:`_static/default.css`, :file:`_templates:layout.html` and
+files :file:`_static/default.css`, :file:`_templates/layout.html` and
:file:`_static/logo.png` from the website or svn (see
:ref:`fetching-the-data`). Since I did a svn checkout before, I will
just copy the stuff I need from there::
Modified: trunk/sampledoc_tut/extensions.rst
===================================================================
--- trunk/sampledoc_tut/extensions.rst 2009-08-20 23:16:11 UTC (rev 7513)
+++ trunk/sampledoc_tut/extensions.rst 2009-08-21 05:33:25 UTC (rev 7514)
@@ -26,7 +26,7 @@
In addition to the builtin matplotlib extensions for embedding pyplot
plots and rendering math with matplotlib's native math engine, we also
have extensions for syntax highlighting ipython sessions, making
-inhertiance diagrams, and more.
+inhertiance diagrams, and more.
We need to inform sphinx of our new extensions in the :file:`conf.py`
file by adding the following. First we tell it where to find the extensions::
@@ -37,7 +37,7 @@
sys.path.append(os.path.abspath('sphinxext'))
And then we tell it what extensions to load::
-
+
# Add any Sphinx extension module names here, as strings. They can
# be extensions coming with Sphinx (named 'sphinx.ext.*') or your
# custom ones.
@@ -108,13 +108,13 @@
.. math::
- W^{3\beta}_{\delta_1 \rho_1 \sigma_2} \approx U^{3\beta}_{\delta_1 \rho_1}
+ W^{3\beta}_{\delta_1 \rho_1 \sigma_2} \approx U^{3\beta}_{\delta_1 \rho_1}
-which is rendered as
+which is rendered as
.. math::
- W^{3\beta}_{\delta_1 \rho_1 \sigma_2} \approx U^{3\beta}_{\delta_1 \rho_1}
+ W^{3\beta}_{\delta_1 \rho_1 \sigma_2} \approx U^{3\beta}_{\delta_1 \rho_1}
This documentation framework includes a Sphinx extension,
:file:`sphinxext/mathmpl.py`, that uses matplotlib to render math
@@ -147,9 +147,19 @@
Inserting automatically-generated plots is easy. Simply put the
script to generate the plot in the :file:`pyplots` directory, and
-refer to it using the ``plot`` directive. To include the source code
-for the plot in the document, pass the ``include-source`` parameter::
+refer to it using the ``plot`` directive. First make a
+:file:`pyplots` directory at the top level of your project (next to
+:``conf.py``) and copy the :file:`ellipses.py`` file into it::
+ home:~/tmp/sampledoc> mkdir pyplots
+ home:~/tmp/sampledoc> cp ../sampledoc_tut/pyplots/ellipses.py pyplots/
+
+
+You can refer to this file in your sphinx documentation; by default it
+will just inline the plot with links to the source and PF and high
+resolution PNGS. To also include the source code for the plot in the
+document, pass the ``include-source`` parameter::
+
.. plot:: pyplots/ellipses.py
:include-source:
@@ -161,9 +171,9 @@
:include-source:
-You can also inline simple plots, and the code will be executed at
-documentation build time and the figure inserted into your docs; the
-following code::
+You can also inline code for plots directly, and the code will be
+executed at documentation build time and the figure inserted into your
+docs; the following code::
.. plot::
@@ -192,7 +202,7 @@
<http://matplotlib.sourceforge.net/users/pyplot_tutorial.html>`_ and
the `gallery <http://matplotlib.sourceforge.net/gallery.html>`_ for
lots of examples of matplotlib plots.
-
+
Inheritance diagrams
====================
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-20 23:16:19
|
Revision: 7513
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7513&view=rev
Author: jdh2358
Date: 2009-08-20 23:16:11 +0000 (Thu, 20 Aug 2009)
Log Message:
-----------
make autodateformatter customizable
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/dates.py
Modified: trunk/matplotlib/lib/matplotlib/dates.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/dates.py 2009-08-20 23:15:07 UTC (rev 7512)
+++ trunk/matplotlib/lib/matplotlib/dates.py 2009-08-20 23:16:11 UTC (rev 7513)
@@ -432,12 +432,9 @@
def __call__(self, x, pos=0):
scale = float( self._locator._get_unit() )
- keys = self.scaled.keys()
- keys.sort()
-
fmt = self.defaultfmt
- for k in keys:
+ for k in sorted(self.scaled):
if k>=scale:
fmt = self.scaled[k]
break
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2009-08-20 23:15:21
|
Revision: 7512
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7512&view=rev
Author: jdh2358
Date: 2009-08-20 23:15:07 +0000 (Thu, 20 Aug 2009)
Log Message:
-----------
make autodateformatter customizable
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/dates.py
Modified: trunk/matplotlib/lib/matplotlib/dates.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/dates.py 2009-08-20 23:11:44 UTC (rev 7511)
+++ trunk/matplotlib/lib/matplotlib/dates.py 2009-08-20 23:15:07 UTC (rev 7512)
@@ -413,12 +413,15 @@
# Or more simply, perhaps just a format string for each
# possibility...
- def __init__(self, locator, tz=None):
+ def __init__(self, locator, tz=None, defaultfmt='%Y-%m-%d'):
"""
+ Autofmt the date labels. The default format is the one to use
+ if none of the times in scaled match
"""
self._locator = locator
self._tz = tz
- self._formatter = DateFormatter("%b %d %Y %H:%M:%D", tz)
+ self.defaultfmt = defaultfmt
+ self._formatter = DateFormatter(self.defaultfmt, tz)
self.scaled = {
365.0 : '%Y',
30. : '%b %Y',
@@ -432,11 +435,14 @@
keys = self.scaled.keys()
keys.sort()
+ fmt = self.defaultfmt
+
for k in keys:
if k>=scale:
- self._formatter = DateFormatter(self.scaled[k])
+ fmt = self.scaled[k]
break
+ self._formatter = DateFormatter(fmt)
return self._formatter(x, pos)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|