From a9f708b39c9ed72b6d5963b7224e49a58ba99726 Mon Sep 17 00:00:00 2001 From: fgb Date: Sun, 20 Feb 2011 00:19:55 -0800 Subject: [PATCH 01/15] Updated libpng's sourceforge download link since old one was broken. --- make.osx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make.osx b/make.osx index d3093a731244..b6b57d85c214 100644 --- a/make.osx +++ b/make.osx @@ -35,7 +35,7 @@ clean: fetch: ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://superb-sea2.dl.sourceforge.net/project/libpng/zlib/${ZLIBVERSION}/zlib-${ZLIBVERSION}.tar.gz", "zlib-${ZLIBVERSION}.tar.gz")' &&\ - ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://sourceforge.net/projects/libpng/files/libpng-stable/${PNGVERSION}/libpng-${PNGVERSION}.tar.gz/download", "libpng-${PNGVERSION}.tar.gz")' &&\ + ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://sourceforge.net/projects/libpng/files/libpng12/older-releases/${PNGVERSION}/libpng-${PNGVERSION}.tar.gz/download", "libpng-${PNGVERSION}.tar.gz")' &&\ ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2", "freetype-${FREETYPEVERSION}.tar.bz2")' From 9560e0e081ee422b12bafb770a35628773ca9ef7 Mon Sep 17 00:00:00 2001 From: fgb Date: Sun, 20 Feb 2011 00:26:47 -0800 Subject: [PATCH 02/15] Fixed clean, by changing libpng to be a gz instead of bz2. --- make.osx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make.osx b/make.osx index b6b57d85c214..e50b70f22b7b 100644 --- a/make.osx +++ b/make.osx @@ -25,7 +25,7 @@ check-prefix: @if [ ! -d "$(PREFIX)" ]; then echo Set PREFIX to a directory - see README.osx; exit 1; fi clean: - rm -rf zlib-${ZLIBVERSION}.tar.gz libpng-${PNGVERSION}.tar.bz2 \ + rm -rf zlib-${ZLIBVERSION}.tar.gz libpng-${PNGVERSION}.tar.gz \ freetype-${FREETYPEVERSION}.tar.bz2 bdist_mpkg-${BDISTMPKGVERSION}.tar.gz \ bdist_mpkg-${BDISTMPKGVERSION} \ zlib-${ZLIBVERSION} libpng-${PNGVERSION} freetype-${FREETYPEVERSION} \ From e4b38b65c9ca97d185ae44158948ebb9e94ba09b Mon Sep 17 00:00:00 2001 From: fgb Date: Sun, 20 Feb 2011 00:39:30 -0800 Subject: [PATCH 03/15] Probably a superfluous change, since the zlib url still worked, but wasn't up to date. --- make.osx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make.osx b/make.osx index e50b70f22b7b..f24a3fa96c1a 100644 --- a/make.osx +++ b/make.osx @@ -34,7 +34,7 @@ clean: fetch: - ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://superb-sea2.dl.sourceforge.net/project/libpng/zlib/${ZLIBVERSION}/zlib-${ZLIBVERSION}.tar.gz", "zlib-${ZLIBVERSION}.tar.gz")' &&\ + ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://sourceforge.net/projects/libpng/files/zlib/${ZLIBVERSION}/zlib-${ZLIBVERSION}.tar.gz/download", "zlib-${ZLIBVERSION}.tar.gz")' &&\ ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://sourceforge.net/projects/libpng/files/libpng12/older-releases/${PNGVERSION}/libpng-${PNGVERSION}.tar.gz/download", "libpng-${PNGVERSION}.tar.gz")' &&\ ${PYTHON} -c 'import urllib; urllib.urlretrieve("http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2", "freetype-${FREETYPEVERSION}.tar.bz2")' From c658a842ef191672401fa9b4c473a35e0a4f1cbe Mon Sep 17 00:00:00 2001 From: fgb Date: Sun, 20 Feb 2011 01:03:56 -0800 Subject: [PATCH 04/15] Suggesting PYVERSION be input on the command line Although a hard-coded PYVERSION=2.6 is safe for snow leopard, it might make more sense to leave it blank, defaulting to the 'python' command that takes precedence in the PATH. On the other hand, suggesting in the documentation that it can be included to the command line might prompt users to choose the right version without editing the makefile. --- README.osx | 2 +- make.osx | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/README.osx b/README.osx index b0f4ad45838b..226718b51744 100644 --- a/README.osx +++ b/README.osx @@ -9,5 +9,5 @@ lib, png or freetype on your system Example usage:: - PREFIX=/Users/jdhunter/dev make -f make.osx fetch deps mpl_install + PREFIX=/Users/jdhunter/dev [PYVERSION=2.6] make -f make.osx fetch deps mpl_install diff --git a/make.osx b/make.osx index f24a3fa96c1a..d41ab42edc7f 100644 --- a/make.osx +++ b/make.osx @@ -1,7 +1,6 @@ # build mpl into a local install dir with -# PREFIX=/Users/jdhunter/dev make -f make.osx fetch deps mpl_install +# PREFIX=/Users/jdhunter/dev [PYVERSION=2.6] make -f make.osx fetch deps mpl_install MPLVERSION=1.0rc1 -PYVERSION=2.6 PYTHON=python${PYVERSION} ZLIBVERSION=1.2.3 PNGVERSION=1.2.39 From 27a2b23f03939ff8302d643d626713437555e46a Mon Sep 17 00:00:00 2001 From: fgb Date: Sun, 20 Feb 2011 01:27:47 -0800 Subject: [PATCH 05/15] Removed the PREFIX from mpl_install in order to install into relevant site-packages. --- make.osx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make.osx b/make.osx index d41ab42edc7f..84c11942e4f0 100644 --- a/make.osx +++ b/make.osx @@ -95,7 +95,7 @@ mpl_install: check-prefix export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\ export CFLAGS=${CFLAGS} &&\ export LDFLAGS=${LDFLAGS} &&\ - ${PYTHON} setup.py install --prefix=${PREFIX} + ${PYTHON} setup.py install binaries: check-prefix From 7b47d25d61f15a7767f328005c31ebeaabd4ec9f Mon Sep 17 00:00:00 2001 From: fgb Date: Sun, 20 Feb 2011 01:34:48 -0800 Subject: [PATCH 06/15] Added some stray files from build process to clean. --- make.osx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/make.osx b/make.osx index 84c11942e4f0..aa8ebef8ffe8 100644 --- a/make.osx +++ b/make.osx @@ -26,7 +26,8 @@ check-prefix: clean: rm -rf zlib-${ZLIBVERSION}.tar.gz libpng-${PNGVERSION}.tar.gz \ freetype-${FREETYPEVERSION}.tar.bz2 bdist_mpkg-${BDISTMPKGVERSION}.tar.gz \ - bdist_mpkg-${BDISTMPKGVERSION} \ + bdist_mpkg-${BDISTMPKGVERSION} setupext.pyc \ + lib/matplotlib/mpl-data/matplotlib.conf lib/matplotlib/mpl-data/matplotlibrc \ zlib-${ZLIBVERSION} libpng-${PNGVERSION} freetype-${FREETYPEVERSION} \ build From 1ab26de1a61a27d166bbeb5bd71fce01cf3e4562 Mon Sep 17 00:00:00 2001 From: Scott Sinclair Date: Sat, 19 Feb 2011 16:22:32 +0800 Subject: [PATCH 07/15] BUG: Get autofmt_xdate to work when used with twinx * See mailing list discussion at http://sourceforge.net/mailarchive/message.php?msg_id=26618642 --- lib/matplotlib/figure.py | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index 57ab2c4328c3..ed2c35858406 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -312,25 +312,17 @@ def autofmt_xdate(self, bottom=0.2, rotation=30, ha='right'): *ha* the horizontal alignment of the xticklabels """ - allsubplots = np.alltrue([hasattr(ax, 'is_last_row') for ax in self.axes]) - if len(self.axes)==1: - for label in ax.get_xticklabels(): - label.set_ha(ha) - label.set_rotation(rotation) - else: - if allsubplots: - for ax in self.get_axes(): - if ax.is_last_row(): - for label in ax.get_xticklabels(): - label.set_ha(ha) - label.set_rotation(rotation) - else: - for label in ax.get_xticklabels(): - label.set_visible(False) - ax.set_xlabel('') - - if allsubplots: - self.subplots_adjust(bottom=bottom) + for ax in self.get_axes(): + if hasattr(ax, 'is_last_row') and ax.is_last_row(): + for label in ax.get_xticklabels(): + label.set_ha(ha) + label.set_rotation(rotation) + else: + for label in ax.get_xticklabels(): + label.set_visible(False) + ax.set_xlabel('') + + self.subplots_adjust(bottom=bottom) def get_children(self): 'get a list of artists contained in the figure' From b86140c8d72dc552a1614881824701fe42cc9398 Mon Sep 17 00:00:00 2001 From: Scott Sinclair Date: Tue, 22 Feb 2011 14:08:01 +0800 Subject: [PATCH 08/15] BUG: Don't alter current behaviour of autofmt_xdate * Make sure that autofmt_xdate does the right thing when the figure contains a single Axes object that is not be derived from matplotlib.axes.SubplotBase. --- lib/matplotlib/figure.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index ed2c35858406..2688baa24807 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -312,15 +312,22 @@ def autofmt_xdate(self, bottom=0.2, rotation=30, ha='right'): *ha* the horizontal alignment of the xticklabels """ - for ax in self.get_axes(): - if hasattr(ax, 'is_last_row') and ax.is_last_row(): - for label in ax.get_xticklabels(): - label.set_ha(ha) - label.set_rotation(rotation) - else: - for label in ax.get_xticklabels(): - label.set_visible(False) - ax.set_xlabel('') + if len(self.axes)==1: + # Always operate on the ticklabels if there is a single + # Axes object in the figure. + for label in ax.get_xticklabels(): + label.set_ha(ha) + label.set_rotation(rotation) + else: + for ax in self.get_axes(): + if hasattr(ax, 'is_last_row') and ax.is_last_row(): + for label in ax.get_xticklabels(): + label.set_ha(ha) + label.set_rotation(rotation) + else: + for label in ax.get_xticklabels(): + label.set_visible(False) + ax.set_xlabel('') self.subplots_adjust(bottom=bottom) From 125c33214bb460bc3042ad76acc0e798bc925261 Mon Sep 17 00:00:00 2001 From: Scott Sinclair Date: Wed, 23 Feb 2011 14:45:36 +0800 Subject: [PATCH 09/15] REV: Attend to code review comments * See https://github.com/matplotlib/matplotlib/issues#issue/1 --- lib/matplotlib/figure.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index 2688baa24807..b9875c769d09 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -315,6 +315,7 @@ def autofmt_xdate(self, bottom=0.2, rotation=30, ha='right'): if len(self.axes)==1: # Always operate on the ticklabels if there is a single # Axes object in the figure. + ax = self.get_axes()[0] for label in ax.get_xticklabels(): label.set_ha(ha) label.set_rotation(rotation) @@ -329,7 +330,7 @@ def autofmt_xdate(self, bottom=0.2, rotation=30, ha='right'): label.set_visible(False) ax.set_xlabel('') - self.subplots_adjust(bottom=bottom) + self.subplots_adjust(bottom=bottom) def get_children(self): 'get a list of artists contained in the figure' From 411b15380ea0252209f28fa9ef61a5294d98d678 Mon Sep 17 00:00:00 2001 From: Scott Sinclair Date: Wed, 23 Feb 2011 14:53:07 +0800 Subject: [PATCH 10/15] BUG: Incorrect indentation for adjust_subplots --- lib/matplotlib/figure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index b9875c769d09..99fd09fed4d4 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -330,7 +330,7 @@ def autofmt_xdate(self, bottom=0.2, rotation=30, ha='right'): label.set_visible(False) ax.set_xlabel('') - self.subplots_adjust(bottom=bottom) + self.subplots_adjust(bottom=bottom) def get_children(self): 'get a list of artists contained in the figure' From 36708dbd96a9300a95b2de208657b05b85ce6424 Mon Sep 17 00:00:00 2001 From: Nicholas Devenish Date: Mon, 21 Feb 2011 21:05:38 +0800 Subject: [PATCH 11/15] Allow setting of default histogram type from matplotlibrc This change doesn't yet include documentation updates --- lib/matplotlib/axes.py | 12 +++++++----- lib/matplotlib/pyplot.py | 2 +- lib/matplotlib/rcsetup.py | 8 +++++++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/matplotlib/axes.py b/lib/matplotlib/axes.py index 4972d27170df..13eae8d540fb 100644 --- a/lib/matplotlib/axes.py +++ b/lib/matplotlib/axes.py @@ -7428,7 +7428,7 @@ def get_shared_y_axes(self): @docstring.dedent_interpd def hist(self, x, bins=10, range=None, normed=False, weights=None, - cumulative=False, bottom=None, histtype='bar', align='mid', + cumulative=False, bottom=None, histtype=None, align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, **kwargs): @@ -7436,7 +7436,7 @@ def hist(self, x, bins=10, range=None, normed=False, weights=None, call signature:: def hist(x, bins=10, range=None, normed=False, weights=None, - cumulative=False, bottom=None, histtype='bar', align='mid', + cumulative=False, bottom=None, histtype=None, align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, **kwargs): @@ -7506,7 +7506,8 @@ def hist(x, bins=10, range=None, normed=False, weights=None, such that the first bin equals 1. *histtype*: [ 'bar' | 'barstacked' | 'step' | 'stepfilled' ] - The type of histogram to draw. + The type of histogram to draw. If (*None*), the rc value is + used (by default, 'bar') - 'bar' is a traditional bar-type histogram. If multiple data are given the bars are aranged side by side. @@ -7576,6 +7577,8 @@ def hist(x, bins=10, range=None, normed=False, weights=None, # Validate string inputs here so we don't have to clutter # subsequent code. + if histtype is None: + histtype = rcParams['hist.histtype'] if histtype not in ['bar', 'barstacked', 'step', 'stepfilled']: raise ValueError("histtype %s is not recognized" % histtype) @@ -7786,8 +7789,7 @@ def hist(x, bins=10, range=None, normed=False, weights=None, patches.append( self.fill(x, y, closed=False, facecolor=c) ) else: - patches.append( self.fill(x, y, - closed=False, edgecolor=c, fill=False) ) + patches.append( self.plot(x, y,color=c) ) # adopted from adjust_x/ylim part of the bar method if orientation == 'horizontal': diff --git a/lib/matplotlib/pyplot.py b/lib/matplotlib/pyplot.py index 6dd4f5293a97..283381a15ac6 100644 --- a/lib/matplotlib/pyplot.py +++ b/lib/matplotlib/pyplot.py @@ -2179,7 +2179,7 @@ def hexbin(x, y, C=None, gridsize=100, bins=None, xscale='linear', yscale='linea # This function was autogenerated by boilerplate.py. Do not edit as # changes will be lost @autogen_docstring(Axes.hist) -def hist(x, bins=10, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, hold=None, **kwargs): +def hist(x, bins=10, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype=None, align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, hold=None, **kwargs): ax = gca() # allow callers to override the hold state by passing hold=True|False washold = ax.ishold() diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index f3198d862c7f..331155754fd3 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -258,6 +258,10 @@ def validate_font_properties(s): 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'b10', ], ignorecase=True) +validate_hist_histtype = ValidateInStrings('histtype',[ + 'bar', 'barstacked', 'step', 'stepfilled', + ], ignorecase=True) + def validate_ps_distiller(s): if type(s) is str: s = s.lower() @@ -427,7 +431,9 @@ def __call__(self, s): 'image.resample' : [False, validate_bool], 'contour.negative_linestyle' : ['dashed', validate_negative_linestyle_legacy], - + + 'hist.histtype' : ['bar', validate_hist_histtype], + # axes props 'axes.axisbelow' : [False, validate_bool], 'axes.hold' : [True, validate_bool], From ff4a5921beccf1702d57e83b7860c4b43ba38715 Mon Sep 17 00:00:00 2001 From: Eric Firing Date: Mon, 21 Feb 2011 07:56:07 +0800 Subject: [PATCH 12/15] clabel accepts callable as fmt kwarg; modified patch by Daniel Hyams --- CHANGELOG | 3 +++ examples/pylab_examples/contour_label_demo.py | 15 ++++++++++++--- lib/matplotlib/contour.py | 6 +++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 8b9e5139178a..715db1ca5490 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +2011-02-20 clabel accepts a callable as an fmt kwarg; modified + patch by Daniel Hyams. - EF + 2011-02-18 scatter([], []) is now valid. Also fixed issues with empty collections - BVR diff --git a/examples/pylab_examples/contour_label_demo.py b/examples/pylab_examples/contour_label_demo.py index 8181b792ab2d..d900192f648c 100644 --- a/examples/pylab_examples/contour_label_demo.py +++ b/examples/pylab_examples/contour_label_demo.py @@ -9,6 +9,7 @@ import numpy as np import matplotlib.cm as cm import matplotlib.mlab as mlab +import matplotlib.ticker as ticker import matplotlib.pyplot as plt matplotlib.rcParams['xtick.direction'] = 'out' @@ -68,7 +69,15 @@ def __repr__(self): # Label every other level using strings plt.clabel(CS,CS.levels[::2],inline=True,fmt=fmt,fontsize=10) -################################################## -# Show the hole thing -################################################## +# Use a Formatter + +plt.figure() + +CS = plt.contour(X, Y, 100**Z, locator=plt.LogLocator()) +fmt = ticker.LogFormatterMathtext() +fmt.create_dummy_axis() +plt.clabel(CS, CS.levels, fmt=fmt) +plt.title("$100^Z$") + plt.show() + diff --git a/lib/matplotlib/contour.py b/lib/matplotlib/contour.py index 9c8ef0e34b30..2c31c20fc8f4 100644 --- a/lib/matplotlib/contour.py +++ b/lib/matplotlib/contour.py @@ -95,7 +95,9 @@ def clabel(self, *args, **kwargs): a format string for the label. Default is '%1.3f' Alternatively, this can be a dictionary matching contour levels with arbitrary strings to use for each contour level - (i.e., fmt[level]=string) + (i.e., fmt[level]=string), or it can be any callable, such + as a :class:`~matplotlib.ticker.Formatter` instance, that + returns a string when called with a numeric contour level. *manual*: if *True*, contour labels will be placed manually using @@ -326,6 +328,8 @@ def get_text(self, lev, fmt): else: if isinstance(fmt,dict): return fmt[lev] + elif callable(fmt): + return fmt(lev) else: return fmt%lev From 5cd634e278cc409399bef245f5c26f2272539551 Mon Sep 17 00:00:00 2001 From: Eric Firing Date: Mon, 21 Feb 2011 08:44:08 +0800 Subject: [PATCH 13/15] colors.rgb_to_hsv: don't divide by zero --- lib/matplotlib/colors.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/matplotlib/colors.py b/lib/matplotlib/colors.py index 42d43d8b7a34..2ea65f153a84 100644 --- a/lib/matplotlib/colors.py +++ b/lib/matplotlib/colors.py @@ -1053,19 +1053,21 @@ def rgb_to_hsv(arr): convert rgb values in a numpy array to hsv values input and output arrays should have shape (M,N,3) """ - out = np.empty_like(arr) + out = np.zeros_like(arr) arr_max = arr.max(-1) + ipos = arr_max > 0 delta = arr.ptp(-1) - s = delta / arr_max - s[delta==0] = 0 + s = np.zeros_like(delta) + s[ipos] = delta[ipos] / arr_max[ipos] + ipos = delta > 0 # red is max - idx = (arr[:,:,0] == arr_max) + idx = (arr[:,:,0] == arr_max) & ipos out[idx, 0] = (arr[idx, 1] - arr[idx, 2]) / delta[idx] # green is max - idx = (arr[:,:,1] == arr_max) + idx = (arr[:,:,1] == arr_max) & ipos out[idx, 0] = 2. + (arr[idx, 2] - arr[idx, 0] ) / delta[idx] # blue is max - idx = (arr[:,:,2] == arr_max) + idx = (arr[:,:,2] == arr_max) & ipos out[idx, 0] = 4. + (arr[idx, 0] - arr[idx, 1] ) / delta[idx] out[:,:,0] = (out[:,:,0]/6.0) % 1.0 out[:,:,1] = s From d4cea823627262e7897c1ca2ea334a75137605aa Mon Sep 17 00:00:00 2001 From: Darren Dale Date: Mon, 21 Feb 2011 09:55:58 +0800 Subject: [PATCH 14/15] add .gitattributes and .gitignore, fix CRLF --- .gitattributes | 1 + .gitignore | 42 +++ doc/devel/add_new_projection.rst | 268 +++++++++--------- examples/api/font_family_rc.py | 62 ++-- .../mpl-data/images/stock_close.xpm | 42 +-- lib/matplotlib/mpl-data/images/stock_down.xpm | 88 +++--- lib/matplotlib/mpl-data/images/stock_left.xpm | 90 +++--- .../mpl-data/images/stock_refresh.xpm | 70 ++--- .../mpl-data/images/stock_right.xpm | 88 +++--- .../mpl-data/images/stock_save_as.xpm | 260 ++++++++--------- lib/matplotlib/mpl-data/images/stock_up.xpm | 90 +++--- .../mpl-data/images/stock_zoom-in.xpm | 122 ++++---- .../mpl-data/images/stock_zoom-out.xpm | 118 ++++---- release/win32/Makefile | 224 +++++++-------- release/win32/data/setup.cfg | 158 +++++------ release/win32/data/setupwin.py | 24 +- release/win32/data/setupwinegg.py | 30 +- 17 files changed, 910 insertions(+), 867 deletions(-) create mode 100644 .gitattributes create mode 100644 .gitignore diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000000..176a458f94e0 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..9d50d1f8e954 --- /dev/null +++ b/.gitignore @@ -0,0 +1,42 @@ +# Editor temporary/working/backup files # +######################################### +.#* +[#]*# +*~ +*$ +*.bak + +# Compiled source # +################### +*.a +*.com +*.class +*.dll +*.exe +*.o +*.py[ocd] +*.so + +# Python files # +################ +# setup.py working directory +build +# sphinx build directory +doc/_build +# setup.py dist directory +dist +# Egg metadata +*.egg-info + +# OS generated files # +###################### +.gdb_history +.DS_Store? +ehthumbs.db +Icon? +Thumbs.db + +# Things specific to this project # +################################### +lib/matplotlib/mpl-data/matplotlib.conf +lib/matplotlib/mpl-data/matplotlibrc diff --git a/doc/devel/add_new_projection.rst b/doc/devel/add_new_projection.rst index 2a7943010800..5efbead7fc40 100644 --- a/doc/devel/add_new_projection.rst +++ b/doc/devel/add_new_projection.rst @@ -1,134 +1,134 @@ -.. _adding-new-scales: - -*********************************************** -Adding new scales and projections to matplotlib -*********************************************** - -.. ::author Michael Droettboom - -Matplotlib supports the addition of custom procedures that transform -the data before it is displayed. - -There is an important distinction between two kinds of -transformations. Separable transformations, working on a single -dimension, are called "scales", and non-separable transformations, -that handle data in two or more dimensions at a time, are called -"projections". - -From the user's perspective, the scale of a plot can be set with -:meth:`~matplotlib.axes.Axes.set_xscale` and -:meth:`~matplotlib.axes.Axes.set_xscale`. Projections can be chosen -using the ``projection`` keyword argument to the -:func:`~matplotlib.pylab.plot` or :func:`~matplotlib.pylab.subplot` -functions, e.g.:: - - plot(x, y, projection="custom") - -This document is intended for developers and advanced users who need -to create new scales and projections for matplotlib. The necessary -code for scales and projections can be included anywhere: directly -within a plot script, in third-party code, or in the matplotlib source -tree itself. - -.. _creating-new-scale: - -Creating a new scale -==================== - -Adding a new scale consists of defining a subclass of -:class:`matplotlib.scale.ScaleBase`, that includes the following -elements: - - - A transformation from data coordinates into display coordinates. - - - An inverse of that transformation. This is used, for example, to - convert mouse positions from screen space back into data space. - - - A function to limit the range of the axis to acceptable values - (``limit_range_for_scale()``). A log scale, for instance, would - prevent the range from including values less than or equal to - zero. - - - Locators (major and minor) that determine where to place ticks in - the plot, and optionally, how to adjust the limits of the plot to - some "good" values. Unlike ``limit_range_for_scale()``, which is - always enforced, the range setting here is only used when - automatically setting the range of the plot. - - - Formatters (major and minor) that specify how the tick labels - should be drawn. - -Once the class is defined, it must be registered with matplotlib so -that the user can select it. - -A full-fledged and heavily annotated example is in -:file:`examples/api/custom_scale_example.py`. There are also some classes -in :mod:`matplotlib.scale` that may be used as starting points. - - -.. _creating-new-projection: - -Creating a new projection -========================= - -Adding a new projection consists of defining a subclass of -:class:`matplotlib.axes.Axes`, that includes the following elements: - - - A transformation from data coordinates into display coordinates. - - - An inverse of that transformation. This is used, for example, to - convert mouse positions from screen space back into data space. - - - Transformations for the gridlines, ticks and ticklabels. Custom - projections will often need to place these elements in special - locations, and matplotlib has a facility to help with doing so. - - - Setting up default values (overriding - :meth:`~matplotlib.axes.Axes.cla`), since the defaults for a - rectilinear axes may not be appropriate. - - - Defining the shape of the axes, for example, an elliptical axes, - that will be used to draw the background of the plot and for - clipping any data elements. - - - Defining custom locators and formatters for the projection. For - example, in a geographic projection, it may be more convenient to - display the grid in degrees, even if the data is in radians. - - - Set up interactive panning and zooming. This is left as an - "advanced" feature left to the reader, but there is an example of - this for polar plots in :mod:`matplotlib.projections.polar`. - - - Any additional methods for additional convenience or features. - -Once the class is defined, it must be registered with matplotlib -so that the user can select it. - -A full-fledged and heavily annotated example is in -:file:`examples/api/custom_projection_example.py`. The polar plot -functionality in :mod:`matplotlib.projections.polar` may also be of -interest. - -API documentation -================= - -matplotlib.scale ----------------- - -.. automodule:: matplotlib.scale - :members: - :show-inheritance: - -matplotlib.projections ----------------------- - -.. automodule:: matplotlib.projections - :members: - :show-inheritance: - -matplotlib.projections.polar -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: matplotlib.projections.polar - :members: - :show-inheritance: +.. _adding-new-scales: + +*********************************************** +Adding new scales and projections to matplotlib +*********************************************** + +.. ::author Michael Droettboom + +Matplotlib supports the addition of custom procedures that transform +the data before it is displayed. + +There is an important distinction between two kinds of +transformations. Separable transformations, working on a single +dimension, are called "scales", and non-separable transformations, +that handle data in two or more dimensions at a time, are called +"projections". + +From the user's perspective, the scale of a plot can be set with +:meth:`~matplotlib.axes.Axes.set_xscale` and +:meth:`~matplotlib.axes.Axes.set_xscale`. Projections can be chosen +using the ``projection`` keyword argument to the +:func:`~matplotlib.pylab.plot` or :func:`~matplotlib.pylab.subplot` +functions, e.g.:: + + plot(x, y, projection="custom") + +This document is intended for developers and advanced users who need +to create new scales and projections for matplotlib. The necessary +code for scales and projections can be included anywhere: directly +within a plot script, in third-party code, or in the matplotlib source +tree itself. + +.. _creating-new-scale: + +Creating a new scale +==================== + +Adding a new scale consists of defining a subclass of +:class:`matplotlib.scale.ScaleBase`, that includes the following +elements: + + - A transformation from data coordinates into display coordinates. + + - An inverse of that transformation. This is used, for example, to + convert mouse positions from screen space back into data space. + + - A function to limit the range of the axis to acceptable values + (``limit_range_for_scale()``). A log scale, for instance, would + prevent the range from including values less than or equal to + zero. + + - Locators (major and minor) that determine where to place ticks in + the plot, and optionally, how to adjust the limits of the plot to + some "good" values. Unlike ``limit_range_for_scale()``, which is + always enforced, the range setting here is only used when + automatically setting the range of the plot. + + - Formatters (major and minor) that specify how the tick labels + should be drawn. + +Once the class is defined, it must be registered with matplotlib so +that the user can select it. + +A full-fledged and heavily annotated example is in +:file:`examples/api/custom_scale_example.py`. There are also some classes +in :mod:`matplotlib.scale` that may be used as starting points. + + +.. _creating-new-projection: + +Creating a new projection +========================= + +Adding a new projection consists of defining a subclass of +:class:`matplotlib.axes.Axes`, that includes the following elements: + + - A transformation from data coordinates into display coordinates. + + - An inverse of that transformation. This is used, for example, to + convert mouse positions from screen space back into data space. + + - Transformations for the gridlines, ticks and ticklabels. Custom + projections will often need to place these elements in special + locations, and matplotlib has a facility to help with doing so. + + - Setting up default values (overriding + :meth:`~matplotlib.axes.Axes.cla`), since the defaults for a + rectilinear axes may not be appropriate. + + - Defining the shape of the axes, for example, an elliptical axes, + that will be used to draw the background of the plot and for + clipping any data elements. + + - Defining custom locators and formatters for the projection. For + example, in a geographic projection, it may be more convenient to + display the grid in degrees, even if the data is in radians. + + - Set up interactive panning and zooming. This is left as an + "advanced" feature left to the reader, but there is an example of + this for polar plots in :mod:`matplotlib.projections.polar`. + + - Any additional methods for additional convenience or features. + +Once the class is defined, it must be registered with matplotlib +so that the user can select it. + +A full-fledged and heavily annotated example is in +:file:`examples/api/custom_projection_example.py`. The polar plot +functionality in :mod:`matplotlib.projections.polar` may also be of +interest. + +API documentation +================= + +matplotlib.scale +---------------- + +.. automodule:: matplotlib.scale + :members: + :show-inheritance: + +matplotlib.projections +---------------------- + +.. automodule:: matplotlib.projections + :members: + :show-inheritance: + +matplotlib.projections.polar +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: matplotlib.projections.polar + :members: + :show-inheritance: diff --git a/examples/api/font_family_rc.py b/examples/api/font_family_rc.py index 6c096818d808..d379e3163471 100644 --- a/examples/api/font_family_rc.py +++ b/examples/api/font_family_rc.py @@ -1,31 +1,31 @@ -""" -You can explicitly set which font family is picked up for a given font -style (eg 'serif', 'sans-serif', or 'monospace'). - -In the example below, we only allow one font family (Tahoma) for the -san-serif font style. You the default family with the font.family rc -param, eg:: - - rcParams['font.family'] = 'sans-serif' - -and for the font.family you set a list of font styles to try to find -in order:: - - rcParams['font.sans-serif'] = ['Tahoma', 'Bitstream Vera Sans', 'Lucida Grande', 'Verdana'] - -""" - -# -*- noplot -*- - -from matplotlib import rcParams -rcParams['font.family'] = 'sans-serif' -rcParams['font.sans-serif'] = ['Tahoma'] -import matplotlib.pyplot as plt - -fig = plt.figure() -ax = fig.add_subplot(111) -ax.plot([1,2,3], label='test') - -ax.legend() -plt.show() - +""" +You can explicitly set which font family is picked up for a given font +style (eg 'serif', 'sans-serif', or 'monospace'). + +In the example below, we only allow one font family (Tahoma) for the +san-serif font style. You the default family with the font.family rc +param, eg:: + + rcParams['font.family'] = 'sans-serif' + +and for the font.family you set a list of font styles to try to find +in order:: + + rcParams['font.sans-serif'] = ['Tahoma', 'Bitstream Vera Sans', 'Lucida Grande', 'Verdana'] + +""" + +# -*- noplot -*- + +from matplotlib import rcParams +rcParams['font.family'] = 'sans-serif' +rcParams['font.sans-serif'] = ['Tahoma'] +import matplotlib.pyplot as plt + +fig = plt.figure() +ax = fig.add_subplot(111) +ax.plot([1,2,3], label='test') + +ax.legend() +plt.show() + diff --git a/lib/matplotlib/mpl-data/images/stock_close.xpm b/lib/matplotlib/mpl-data/images/stock_close.xpm index 4ae0b95b02c9..005ce14dbf37 100644 --- a/lib/matplotlib/mpl-data/images/stock_close.xpm +++ b/lib/matplotlib/mpl-data/images/stock_close.xpm @@ -1,21 +1,21 @@ -/* XPM */ -static char * stock_close_xpm[] = { -"16 16 2 1", -" g None", -". g #000000", -" ", -" ", -" . . ", -" . ... ", -" .. .... ", -" .. ... ", -" ..... ", -" ... ", -" ..... ", -" ....... ", -" ... .... ", -" ... .... ", -" ... .. ", -" ", -" ", -" "}; +/* XPM */ +static char * stock_close_xpm[] = { +"16 16 2 1", +" g None", +". g #000000", +" ", +" ", +" . . ", +" . ... ", +" .. .... ", +" .. ... ", +" ..... ", +" ... ", +" ..... ", +" ....... ", +" ... .... ", +" ... .... ", +" ... .. ", +" ", +" ", +" "}; diff --git a/lib/matplotlib/mpl-data/images/stock_down.xpm b/lib/matplotlib/mpl-data/images/stock_down.xpm index a394f91e9de0..26d0c28ab927 100644 --- a/lib/matplotlib/mpl-data/images/stock_down.xpm +++ b/lib/matplotlib/mpl-data/images/stock_down.xpm @@ -1,44 +1,44 @@ -/* XPM */ -static char * stock_down_xpm[] = { -"16 16 25 1", -" c None", -". c #000000", -"+ c #B5C9DC", -"@ c #9BB6D0", -"# c #91B0CC", -"$ c #49749C", -"% c #456F96", -"& c #AFC5DA", -"* c #A0BAD3", -"= c #9EB8D1", -"- c #3F6588", -"; c #375978", -"> c #B2C7DB", -", c #9CB7D1", -"' c #9AB5CF", -") c #B6CADD", -"! c #5B88B2", -"~ c #A4BDD5", -"{ c #2A435B", -"] c #5080AD", -"^ c #97B3CE", -"/ c #080D11", -"( c #5F8BB4", -"_ c #95B2CE", -": c #4C79A3", -" ", -" ", -" ....... ", -" .+@#$%. ", -" .&*=-;. ", -" .>,'-;. ", -" .),'-;. ", -" .)@@-;. ", -" ....)',-;.... ", -" .!=~*,---{. ", -" .],,,--{. ", -" .]^*-{. ", -" /(_{. ", -" .:. ", -" . ", -" "}; +/* XPM */ +static char * stock_down_xpm[] = { +"16 16 25 1", +" c None", +". c #000000", +"+ c #B5C9DC", +"@ c #9BB6D0", +"# c #91B0CC", +"$ c #49749C", +"% c #456F96", +"& c #AFC5DA", +"* c #A0BAD3", +"= c #9EB8D1", +"- c #3F6588", +"; c #375978", +"> c #B2C7DB", +", c #9CB7D1", +"' c #9AB5CF", +") c #B6CADD", +"! c #5B88B2", +"~ c #A4BDD5", +"{ c #2A435B", +"] c #5080AD", +"^ c #97B3CE", +"/ c #080D11", +"( c #5F8BB4", +"_ c #95B2CE", +": c #4C79A3", +" ", +" ", +" ....... ", +" .+@#$%. ", +" .&*=-;. ", +" .>,'-;. ", +" .),'-;. ", +" .)@@-;. ", +" ....)',-;.... ", +" .!=~*,---{. ", +" .],,,--{. ", +" .]^*-{. ", +" /(_{. ", +" .:. ", +" . ", +" "}; diff --git a/lib/matplotlib/mpl-data/images/stock_left.xpm b/lib/matplotlib/mpl-data/images/stock_left.xpm index 1e26e19406c2..503bc36616e2 100644 --- a/lib/matplotlib/mpl-data/images/stock_left.xpm +++ b/lib/matplotlib/mpl-data/images/stock_left.xpm @@ -1,45 +1,45 @@ -/* XPM */ -static char * stock_left_xpm[] = { -"16 16 26 1", -" c None", -". c #000000", -"+ c #C4D4E3", -"@ c #A3BCD4", -"# c #A6BED5", -"$ c #AAC1D7", -"% c #ABC2D8", -"& c #AFC5DA", -"* c #AEC4D9", -"= c #6892B9", -"- c #9CB7D1", -"; c #A4BDD5", -"> c #9FB9D2", -", c #9BB6D0", -"' c #9AB5CF", -") c #49759E", -"! c #1C2D3D", -"~ c #C5D5E4", -"{ c #A0BAD3", -"] c #9EB8D1", -"^ c #4B78A2", -"/ c #2A435B", -"( c #3F6588", -"_ c #34536F", -": c #29425A", -"< c #2D4760", -" ", -" . ", -" .. ", -" .+. ", -" .+@....... ", -" .+#$%&%*@=. ", -" .+-;@>,,>'). ", -" !~>{]]->>>>^. ", -" ./((((((((_. ", -" ./((:::::<. ", -" ./(....... ", -" ./. ", -" .. ", -" . ", -" ", -" "}; +/* XPM */ +static char * stock_left_xpm[] = { +"16 16 26 1", +" c None", +". c #000000", +"+ c #C4D4E3", +"@ c #A3BCD4", +"# c #A6BED5", +"$ c #AAC1D7", +"% c #ABC2D8", +"& c #AFC5DA", +"* c #AEC4D9", +"= c #6892B9", +"- c #9CB7D1", +"; c #A4BDD5", +"> c #9FB9D2", +", c #9BB6D0", +"' c #9AB5CF", +") c #49759E", +"! c #1C2D3D", +"~ c #C5D5E4", +"{ c #A0BAD3", +"] c #9EB8D1", +"^ c #4B78A2", +"/ c #2A435B", +"( c #3F6588", +"_ c #34536F", +": c #29425A", +"< c #2D4760", +" ", +" . ", +" .. ", +" .+. ", +" .+@....... ", +" .+#$%&%*@=. ", +" .+-;@>,,>'). ", +" !~>{]]->>>>^. ", +" ./((((((((_. ", +" ./((:::::<. ", +" ./(....... ", +" ./. ", +" .. ", +" . ", +" ", +" "}; diff --git a/lib/matplotlib/mpl-data/images/stock_refresh.xpm b/lib/matplotlib/mpl-data/images/stock_refresh.xpm index d686de9f2920..1659cff3dd52 100644 --- a/lib/matplotlib/mpl-data/images/stock_refresh.xpm +++ b/lib/matplotlib/mpl-data/images/stock_refresh.xpm @@ -1,35 +1,35 @@ -/* XPM */ -static char * stock_refresh_xpm[] = { -"16 16 16 1", -" c None", -". c #000000", -"+ c #8FA8BE", -"@ c #D5DEE6", -"# c #BBCBD8", -"$ c #A6BACB", -"% c #A2B7C9", -"& c #83A0B8", -"* c #7393AE", -"= c #4F6F8A", -"- c #48667F", -"; c #92ABC0", -"> c #33485A", -", c #22303B", -"' c #7897B1", -") c #4B6A84", -" ", -" . ", -" ..+. ", -" .@#$%. ", -" .&*==-. ", -" .;>.,. ", -" .'. . . ", -" .). .. ", -" .. .@. ", -" . . .=. ", -" .@.>=. ", -" .@===>. ", -" .'=>>. ", -" .'.. ", -" . ", -" "}; +/* XPM */ +static char * stock_refresh_xpm[] = { +"16 16 16 1", +" c None", +". c #000000", +"+ c #8FA8BE", +"@ c #D5DEE6", +"# c #BBCBD8", +"$ c #A6BACB", +"% c #A2B7C9", +"& c #83A0B8", +"* c #7393AE", +"= c #4F6F8A", +"- c #48667F", +"; c #92ABC0", +"> c #33485A", +", c #22303B", +"' c #7897B1", +") c #4B6A84", +" ", +" . ", +" ..+. ", +" .@#$%. ", +" .&*==-. ", +" .;>.,. ", +" .'. . . ", +" .). .. ", +" .. .@. ", +" . . .=. ", +" .@.>=. ", +" .@===>. ", +" .'=>>. ", +" .'.. ", +" . ", +" "}; diff --git a/lib/matplotlib/mpl-data/images/stock_right.xpm b/lib/matplotlib/mpl-data/images/stock_right.xpm index 2f1607d67b3d..f63c1d34051b 100644 --- a/lib/matplotlib/mpl-data/images/stock_right.xpm +++ b/lib/matplotlib/mpl-data/images/stock_right.xpm @@ -1,44 +1,44 @@ -/* XPM */ -static char * stock_right_xpm[] = { -"16 16 25 1", -" c None", -". c #000000", -"+ c #5B88B2", -"@ c #9EB8D1", -"# c #5080AD", -"$ c #B5C9DC", -"% c #AFC5DA", -"& c #B2C7DB", -"* c #B6CADD", -"= c #A4BDD5", -"- c #9CB7D1", -"; c #080D11", -"> c #9BB6D0", -", c #A0BAD3", -"' c #9AB5CF", -") c #97B3CE", -"! c #5F8BB4", -"~ c #91B0CC", -"{ c #95B2CE", -"] c #4C79A3", -"^ c #49749C", -"/ c #3F6588", -"( c #2A435B", -"_ c #456F96", -": c #375978", -" ", -" . ", -" .. ", -" .+. ", -" .......@#. ", -" .$%&***=-#; ", -" .>,-->',-)!. ", -" .~@''>---,{]. ", -" .^////////(. ", -" ._::::://(. ", -" ......./(. ", -" .(. ", -" .. ", -" . ", -" ", -" "}; +/* XPM */ +static char * stock_right_xpm[] = { +"16 16 25 1", +" c None", +". c #000000", +"+ c #5B88B2", +"@ c #9EB8D1", +"# c #5080AD", +"$ c #B5C9DC", +"% c #AFC5DA", +"& c #B2C7DB", +"* c #B6CADD", +"= c #A4BDD5", +"- c #9CB7D1", +"; c #080D11", +"> c #9BB6D0", +", c #A0BAD3", +"' c #9AB5CF", +") c #97B3CE", +"! c #5F8BB4", +"~ c #91B0CC", +"{ c #95B2CE", +"] c #4C79A3", +"^ c #49749C", +"/ c #3F6588", +"( c #2A435B", +"_ c #456F96", +": c #375978", +" ", +" . ", +" .. ", +" .+. ", +" .......@#. ", +" .$%&***=-#; ", +" .>,-->',-)!. ", +" .~@''>---,{]. ", +" .^////////(. ", +" ._::::://(. ", +" ......./(. ", +" .(. ", +" .. ", +" . ", +" ", +" "}; diff --git a/lib/matplotlib/mpl-data/images/stock_save_as.xpm b/lib/matplotlib/mpl-data/images/stock_save_as.xpm index 63f65f797f63..0981c7c57c61 100644 --- a/lib/matplotlib/mpl-data/images/stock_save_as.xpm +++ b/lib/matplotlib/mpl-data/images/stock_save_as.xpm @@ -1,130 +1,130 @@ -/* XPM */ -static char * stock_save_as_xpm[] = { -"16 16 111 2", -" c None", -". c #000000", -"+ c #F7F8FA", -"@ c #CBDDEB", -"# c #C88A80", -"$ c #D18F84", -"% c #CF8D82", -"& c #A49626", -"* c #634A1E", -"= c #A8BBCC", -"- c #BFD5E8", -"; c #DBE7F1", -"> c #8DA9BE", -", c #B7877E", -"' c #C77568", -") c #C77467", -"! c #C57366", -"~ c #FCEB3D", -"{ c #F7B544", -"] c #61522E", -"^ c #72899A", -"/ c #54697C", -"( c #CFE0ED", -"_ c #D7D7D7", -": c #FEFEFE", -"< c #FCFCFC", -"[ c #F9DF39", -"} c #F7B545", -"| c #6C5F34", -"1 c #B4B4B4", -"2 c #84A0B5", -"3 c #4F6475", -"4 c #D6D6D6", -"5 c #F8D837", -"6 c #EFB44D", -"7 c #584D2B", -"8 c #8F8F8F", -"9 c #F1F1F1", -"0 c #819AAE", -"a c #496072", -"b c #FDFDFD", -"c c #F6D236", -"d c #EDA43E", -"e c #584E2B", -"f c #AAAAAA", -"g c #D3D3D3", -"h c #485F71", -"i c #D5D5D5", -"j c #D7AE74", -"k c #61562F", -"l c #737373", -"m c #C5C5C5", -"n c #B0B0B0", -"o c #7F98AC", -"p c #EDEDED", -"q c #4F4115", -"r c #8D8D8D", -"s c #EBEBEB", -"t c #ECECEC", -"u c #ACBDCB", -"v c #6F767D", -"w c #9AA3AC", -"x c #BFCBD6", -"y c #BDC9D4", -"z c #A1B6C4", -"A c #8BA7BC", -"B c #809CB0", -"C c #6C8394", -"D c #7D97AB", -"E c #7D97AC", -"F c #A4ACB8", -"G c #B9B9B9", -"H c #C7C7C7", -"I c #E1E1E1", -"J c #D4D4D4", -"K c #9C9D9D", -"L c #2F4656", -"M c #80868C", -"N c #183042", -"O c #33495A", -"P c #132D3C", -"Q c #586D80", -"R c #97A5B0", -"S c #86A4B9", -"T c #CDCDCD", -"U c #2E4353", -"V c #5A7082", -"W c #BFBFBF", -"X c #112835", -"Y c #9DA9B0", -"Z c #6B7882", -"` c #829DB1", -" . c #CBCBCB", -".. c #E5E5E5", -"+. c #213648", -"@. c #5F7989", -"#. c #C2C2C2", -"$. c #B2B2B2", -"%. c #112C3A", -"&. c #9FA9B0", -"*. c #59636D", -"=. c #A1A1A1", -"-. c #C0C0C0", -";. c #909090", -">. c #868686", -",. c #6E6E6E", -"'. c #7A7A7A", -"). c #2D3949", -"!. c #3E4F5C", -"~. c #80878F", -"{. c #1A3140", -" . . . . . . . . . . . . . . ", -". + @ # $ $ $ $ % . & * . = - . ", -". ; > , ' ) ) ! . ~ { ] . ^ / . ", -". ( > _ : : < . [ } | . 1 2 3 . ", -". ( > _ _ 4 . 5 6 7 . 8 9 0 a . ", -". ( > _ b . c d e . f g 9 0 h . ", -". ( > _ i . j k . l m n 9 o a . ", -". ( > p . q . . r g s s t 0 a . ", -". ( > u . . v w x x x y z 0 a . ", -". ( > A B C 0 0 0 0 D E 0 0 a . ", -". ( > A F G G H I J K L M 0 a . ", -". ( > 2 m m N O i m G P Q R a . ", -". ( S 0 m T U V m m W X V Y a . ", -". Z ` o ...+.@.m #.$.%.V &.a . ", -". . *.3 =.-.;.;.>.,.'.).!.~.{.. ", -" . . . . . . . . . . . . . . "}; +/* XPM */ +static char * stock_save_as_xpm[] = { +"16 16 111 2", +" c None", +". c #000000", +"+ c #F7F8FA", +"@ c #CBDDEB", +"# c #C88A80", +"$ c #D18F84", +"% c #CF8D82", +"& c #A49626", +"* c #634A1E", +"= c #A8BBCC", +"- c #BFD5E8", +"; c #DBE7F1", +"> c #8DA9BE", +", c #B7877E", +"' c #C77568", +") c #C77467", +"! c #C57366", +"~ c #FCEB3D", +"{ c #F7B544", +"] c #61522E", +"^ c #72899A", +"/ c #54697C", +"( c #CFE0ED", +"_ c #D7D7D7", +": c #FEFEFE", +"< c #FCFCFC", +"[ c #F9DF39", +"} c #F7B545", +"| c #6C5F34", +"1 c #B4B4B4", +"2 c #84A0B5", +"3 c #4F6475", +"4 c #D6D6D6", +"5 c #F8D837", +"6 c #EFB44D", +"7 c #584D2B", +"8 c #8F8F8F", +"9 c #F1F1F1", +"0 c #819AAE", +"a c #496072", +"b c #FDFDFD", +"c c #F6D236", +"d c #EDA43E", +"e c #584E2B", +"f c #AAAAAA", +"g c #D3D3D3", +"h c #485F71", +"i c #D5D5D5", +"j c #D7AE74", +"k c #61562F", +"l c #737373", +"m c #C5C5C5", +"n c #B0B0B0", +"o c #7F98AC", +"p c #EDEDED", +"q c #4F4115", +"r c #8D8D8D", +"s c #EBEBEB", +"t c #ECECEC", +"u c #ACBDCB", +"v c #6F767D", +"w c #9AA3AC", +"x c #BFCBD6", +"y c #BDC9D4", +"z c #A1B6C4", +"A c #8BA7BC", +"B c #809CB0", +"C c #6C8394", +"D c #7D97AB", +"E c #7D97AC", +"F c #A4ACB8", +"G c #B9B9B9", +"H c #C7C7C7", +"I c #E1E1E1", +"J c #D4D4D4", +"K c #9C9D9D", +"L c #2F4656", +"M c #80868C", +"N c #183042", +"O c #33495A", +"P c #132D3C", +"Q c #586D80", +"R c #97A5B0", +"S c #86A4B9", +"T c #CDCDCD", +"U c #2E4353", +"V c #5A7082", +"W c #BFBFBF", +"X c #112835", +"Y c #9DA9B0", +"Z c #6B7882", +"` c #829DB1", +" . c #CBCBCB", +".. c #E5E5E5", +"+. c #213648", +"@. c #5F7989", +"#. c #C2C2C2", +"$. c #B2B2B2", +"%. c #112C3A", +"&. c #9FA9B0", +"*. c #59636D", +"=. c #A1A1A1", +"-. c #C0C0C0", +";. c #909090", +">. c #868686", +",. c #6E6E6E", +"'. c #7A7A7A", +"). c #2D3949", +"!. c #3E4F5C", +"~. c #80878F", +"{. c #1A3140", +" . . . . . . . . . . . . . . ", +". + @ # $ $ $ $ % . & * . = - . ", +". ; > , ' ) ) ! . ~ { ] . ^ / . ", +". ( > _ : : < . [ } | . 1 2 3 . ", +". ( > _ _ 4 . 5 6 7 . 8 9 0 a . ", +". ( > _ b . c d e . f g 9 0 h . ", +". ( > _ i . j k . l m n 9 o a . ", +". ( > p . q . . r g s s t 0 a . ", +". ( > u . . v w x x x y z 0 a . ", +". ( > A B C 0 0 0 0 D E 0 0 a . ", +". ( > A F G G H I J K L M 0 a . ", +". ( > 2 m m N O i m G P Q R a . ", +". ( S 0 m T U V m m W X V Y a . ", +". Z ` o ...+.@.m #.$.%.V &.a . ", +". . *.3 =.-.;.;.>.,.'.).!.~.{.. ", +" . . . . . . . . . . . . . . "}; diff --git a/lib/matplotlib/mpl-data/images/stock_up.xpm b/lib/matplotlib/mpl-data/images/stock_up.xpm index 359aed160ad6..994623624c88 100644 --- a/lib/matplotlib/mpl-data/images/stock_up.xpm +++ b/lib/matplotlib/mpl-data/images/stock_up.xpm @@ -1,45 +1,45 @@ -/* XPM */ -static char * stock_up_xpm[] = { -"16 16 26 1", -" c None", -". c #1C2D3D", -"+ c #000000", -"@ c #C5D5E4", -"# c #C4D4E3", -"$ c #9FB9D2", -"% c #2A435B", -"& c #9CB7D1", -"* c #A0BAD3", -"= c #3F6588", -"- c #A6BED5", -"; c #A4BDD5", -"> c #9EB8D1", -", c #A3BCD4", -"' c #AAC1D7", -") c #ABC2D8", -"! c #29425A", -"~ c #AFC5DA", -"{ c #9BB6D0", -"] c #AEC4D9", -"^ c #9AB5CF", -"/ c #6892B9", -"( c #49759E", -"_ c #4B78A2", -": c #34536F", -"< c #2D4760", -" ", -" . ", -" +@+ ", -" +#$%+ ", -" +#&*=%+ ", -" +#-;>==%+ ", -" +#,',>===%+ ", -" ++++)$&=!++++ ", -" +~{$=!+ ", -" +){$=!+ ", -" +]$$=!+ ", -" +,^$=!+ ", -" +/(_:<+ ", -" +++++++ ", -" ", -" "}; +/* XPM */ +static char * stock_up_xpm[] = { +"16 16 26 1", +" c None", +". c #1C2D3D", +"+ c #000000", +"@ c #C5D5E4", +"# c #C4D4E3", +"$ c #9FB9D2", +"% c #2A435B", +"& c #9CB7D1", +"* c #A0BAD3", +"= c #3F6588", +"- c #A6BED5", +"; c #A4BDD5", +"> c #9EB8D1", +", c #A3BCD4", +"' c #AAC1D7", +") c #ABC2D8", +"! c #29425A", +"~ c #AFC5DA", +"{ c #9BB6D0", +"] c #AEC4D9", +"^ c #9AB5CF", +"/ c #6892B9", +"( c #49759E", +"_ c #4B78A2", +": c #34536F", +"< c #2D4760", +" ", +" . ", +" +@+ ", +" +#$%+ ", +" +#&*=%+ ", +" +#-;>==%+ ", +" +#,',>===%+ ", +" ++++)$&=!++++ ", +" +~{$=!+ ", +" +){$=!+ ", +" +]$$=!+ ", +" +,^$=!+ ", +" +/(_:<+ ", +" +++++++ ", +" ", +" "}; diff --git a/lib/matplotlib/mpl-data/images/stock_zoom-in.xpm b/lib/matplotlib/mpl-data/images/stock_zoom-in.xpm index 33b16b674a9b..349e87e73200 100644 --- a/lib/matplotlib/mpl-data/images/stock_zoom-in.xpm +++ b/lib/matplotlib/mpl-data/images/stock_zoom-in.xpm @@ -1,61 +1,61 @@ -/* XPM */ -static char * stock_zoom_in_xpm[] = { -"16 16 42 1", -" c None", -". c #000000", -"+ c #262626", -"@ c #C5C5C5", -"# c #EEEEEE", -"$ c #EDEDED", -"% c #ABABAB", -"& c #464646", -"* c #878787", -"= c #F1F1F1", -"- c #FEFEFE", -"; c #FDFDFD", -"> c #FCFCFC", -", c #EAEAEA", -"' c #707070", -") c #252525", -"! c #282828", -"~ c #FBFBFB", -"{ c #E8E8E8", -"] c #B0B0B0", -"^ c #FFFFFF", -"/ c #050505", -"( c #040404", -"_ c #FAFAFA", -": c #A4A4A4", -"< c #090909", -"[ c #242424", -"} c #E5E5E5", -"| c #E4E4E4", -"1 c #F9F9F9", -"2 c #BABABA", -"3 c #E7E7E7", -"4 c #858585", -"5 c #E3E3E3", -"6 c #6D6D6D", -"7 c #A1A1A1", -"8 c #202020", -"9 c #686868", -"0 c #343434", -"a c #797979", -"b c #3A3A3A", -"c c #1F1F1F", -" .... ", -" .+@#$%&. ", -" .*=--;>,'. ", -" &=--)!;~{& ", -".]--^/(;>_:. ", -".#-//<(([_}. ", -".$;[(../[_|. ", -".%>;;((~_12. ", -" &,~><)_13& ", -" .4{___156. ", -" .&:}|7&.... ", -" .... 88.. ", -" .90.. ", -" .ab..", -" .9c.", -" .. "}; +/* XPM */ +static char * stock_zoom_in_xpm[] = { +"16 16 42 1", +" c None", +". c #000000", +"+ c #262626", +"@ c #C5C5C5", +"# c #EEEEEE", +"$ c #EDEDED", +"% c #ABABAB", +"& c #464646", +"* c #878787", +"= c #F1F1F1", +"- c #FEFEFE", +"; c #FDFDFD", +"> c #FCFCFC", +", c #EAEAEA", +"' c #707070", +") c #252525", +"! c #282828", +"~ c #FBFBFB", +"{ c #E8E8E8", +"] c #B0B0B0", +"^ c #FFFFFF", +"/ c #050505", +"( c #040404", +"_ c #FAFAFA", +": c #A4A4A4", +"< c #090909", +"[ c #242424", +"} c #E5E5E5", +"| c #E4E4E4", +"1 c #F9F9F9", +"2 c #BABABA", +"3 c #E7E7E7", +"4 c #858585", +"5 c #E3E3E3", +"6 c #6D6D6D", +"7 c #A1A1A1", +"8 c #202020", +"9 c #686868", +"0 c #343434", +"a c #797979", +"b c #3A3A3A", +"c c #1F1F1F", +" .... ", +" .+@#$%&. ", +" .*=--;>,'. ", +" &=--)!;~{& ", +".]--^/(;>_:. ", +".#-//<(([_}. ", +".$;[(../[_|. ", +".%>;;((~_12. ", +" &,~><)_13& ", +" .4{___156. ", +" .&:}|7&.... ", +" .... 88.. ", +" .90.. ", +" .ab..", +" .9c.", +" .. "}; diff --git a/lib/matplotlib/mpl-data/images/stock_zoom-out.xpm b/lib/matplotlib/mpl-data/images/stock_zoom-out.xpm index 044355850404..a9d479124a67 100644 --- a/lib/matplotlib/mpl-data/images/stock_zoom-out.xpm +++ b/lib/matplotlib/mpl-data/images/stock_zoom-out.xpm @@ -1,59 +1,59 @@ -/* XPM */ -static char * stock_zoom_out_xpm[] = { -"16 16 40 1", -" c None", -". c #000000", -"+ c #262626", -"@ c #C5C5C5", -"# c #EEEEEE", -"$ c #EDEDED", -"% c #ABABAB", -"& c #464646", -"* c #878787", -"= c #F1F1F1", -"- c #FEFEFE", -"; c #FDFDFD", -"> c #FCFCFC", -", c #EAEAEA", -"' c #707070", -") c #FBFBFB", -"! c #E8E8E8", -"~ c #B0B0B0", -"{ c #FFFFFF", -"] c #FAFAFA", -"^ c #A4A4A4", -"/ c #050505", -"( c #090909", -"_ c #040404", -": c #242424", -"< c #E5E5E5", -"[ c #E4E4E4", -"} c #F9F9F9", -"| c #BABABA", -"1 c #E7E7E7", -"2 c #858585", -"3 c #E3E3E3", -"4 c #6D6D6D", -"5 c #A1A1A1", -"6 c #202020", -"7 c #686868", -"8 c #343434", -"9 c #797979", -"0 c #3A3A3A", -"a c #1F1F1F", -" .... ", -" .+@#$%&. ", -" .*=--;>,'. ", -" &=----;)!& ", -".~--{--;>]^. ", -".#-//(__:]<. ", -".$;:_../:][. ", -".%>;;;>)]}|. ", -" &,)>))]}1& ", -" .2!]]]}34. ", -" .&^<[5&.... ", -" .... 66.. ", -" .78.. ", -" .90..", -" .7a.", -" .. "}; +/* XPM */ +static char * stock_zoom_out_xpm[] = { +"16 16 40 1", +" c None", +". c #000000", +"+ c #262626", +"@ c #C5C5C5", +"# c #EEEEEE", +"$ c #EDEDED", +"% c #ABABAB", +"& c #464646", +"* c #878787", +"= c #F1F1F1", +"- c #FEFEFE", +"; c #FDFDFD", +"> c #FCFCFC", +", c #EAEAEA", +"' c #707070", +") c #FBFBFB", +"! c #E8E8E8", +"~ c #B0B0B0", +"{ c #FFFFFF", +"] c #FAFAFA", +"^ c #A4A4A4", +"/ c #050505", +"( c #090909", +"_ c #040404", +": c #242424", +"< c #E5E5E5", +"[ c #E4E4E4", +"} c #F9F9F9", +"| c #BABABA", +"1 c #E7E7E7", +"2 c #858585", +"3 c #E3E3E3", +"4 c #6D6D6D", +"5 c #A1A1A1", +"6 c #202020", +"7 c #686868", +"8 c #343434", +"9 c #797979", +"0 c #3A3A3A", +"a c #1F1F1F", +" .... ", +" .+@#$%&. ", +" .*=--;>,'. ", +" &=----;)!& ", +".~--{--;>]^. ", +".#-//(__:]<. ", +".$;:_../:][. ", +".%>;;;>)]}|. ", +" &,)>))]}1& ", +" .2!]]]}34. ", +" .&^<[5&.... ", +" .... 66.. ", +" .78.. ", +" .90..", +" .7a.", +" .. "}; diff --git a/release/win32/Makefile b/release/win32/Makefile index 7137143e3cd7..2257b33511b6 100644 --- a/release/win32/Makefile +++ b/release/win32/Makefile @@ -1,112 +1,112 @@ -PYDIR = C:/Python25 -PYTHON = ${PYDIR}/python.exe -SRCDIR = ${PWD} -WINSRCDIR = `${PWD}/data/mingw_path.sh ${PWD}` -ZLIBVERSION = 1.2.3 -PNGVERSION = 1.2.36 -FREETYPEVERSION = 2.3.9 -TCLTKVERSION = 8.5.7 -MPLVERSION = 0.99.0.rc1 - -## You shouldn't need to configure past this point - -CFLAGS = -Os -D_ftime=ftime64 -DPNG_NO_READ_tIME -DPNG_NO_WRITE_tIME - - -PY_INCLUDE = "${WINSRCDIR}\\zlib-${ZLIBVERSION};${WINSRCDIR}/libpng-${PNGVERSION};${WINSRCDIR}/freetype-${FREETYPEVERSION}/include;${WINSRCDIR}/tcl${TCLTKVERSION}/generic;${WINSRCDIR}/tcl${TCLTKVERSION}/win;${WINSRCDIR}/tk${TCLTKVERSION}/generic;${WINSRCDIR}/tk${TCLTKVERSION}/win;${WINSRCDIR}/tk${TCLTKVERSION}/xlib" - -PY_LINKER = "${WINSRCDIR}/zlib-${ZLIBVERSION};${WINSRCDIR}/libpng-${PNGVERSION};${WINSRCDIR}/freetype-${FREETYPEVERSION}" - -clean: - rm -rf zlib-${ZLIBVERSION}.tar.gz libpng-${PNGVERSION}.tar.bz2 \ - freetype-${FREETYPEVERSION}.tar.bz2 \ - tcl${TCLTKVERSION}-src.tar.gz tk${TCLTKVERSION}-src.tar.gz \ - zlib-${ZLIBVERSION} libpng-${PNGVERSION} freetype-${FREETYPEVERSION} \ - tcl${TCLTKVERSION} tk${TCLTKVERSION} \ - matplotlib-${MPLVERSION} *~ - -fetch_deps: - wget http://www.zlib.net/zlib-${ZLIBVERSION}.tar.gz - wget http://prdownloads.sourceforge.net/libpng/libpng-${PNGVERSION}.tar.bz2 - wget http://prdownloads.sourceforge.net/freetype/freetype-2.3.9.tar.bz2 - wget http://prdownloads.sourceforge.net/tcl/tcl${TCLTKVERSION}-src.tar.gz - wget http://prdownloads.sourceforge.net/tcl/tk${TCLTKVERSION}-src.tar.gz - -zlib: - rm -rf zlib-${ZLIBVERSION} - tar xvfz zlib-${ZLIBVERSION}.tar.gz - cd zlib-${ZLIBVERSION} &&\ - export CFLAGS="${CFLAGS}" &&\ - ./configure &&\ - make -j3 - -# for reasons not clear to me, part of png compilation was failing -# because it could not find zlib.h, even with the CFLAGS which point -# to it and even with tryting to pass --includedir to configure. So I -# manually copy the zlib *.h files into the png dir - JDH -png: zlib - rm -rf libpng-${PNGVERSION} - tar xvfj libpng-${PNGVERSION}.tar.bz2 - cd libpng-${PNGVERSION} &&\ - cp ${SRCDIR}/zlib-${ZLIBVERSION}/*.h . && \ - export CFLAGS="${CFLAGS} -I${SRCDIR}/zlib-${ZLIBVERSION}" &&\ - export LDFLAGS="-L${SRCDIR}/zlib-${ZLIBVERSION}" &&\ - ./configure --disable-shared &&\ - make -j3 &&\ - cp .libs/libpng.a . - -freetype: - rm -rf freetype-${FREETYPEVERSION} - tar xvfj freetype-${FREETYPEVERSION}.tar.bz2 - cd freetype-${FREETYPEVERSION} &&\ - GNUMAKE=mingw32-make ./configure --disable-shared &&\ - cp builds/win32/w32-mingw32.mk config.mk &&\ - mingw32-make -j3 &&\ - cp objs/libfreetype.a . - -freetype_hide: - rm -rf freetype-${FREETYPEVERSION} - tar xvfj freetype-${FREETYPEVERSION}.tar.bz2 - cd freetype-${FREETYPEVERSION} &&\ - export CFLAGS=${CFLAGS} &&\ - ./configure --disable-shared &&\ - cp builds/win32/w32-mingw32.mk config.mk &&\ - make -j3 &&\ - cp objs/libfreetype.a . - -tcltk: - rm -rf tcl${TCLTKVERSION} - rm -rf tk${TCLTKVERSION} - tar xvfz tcl${TCLTKVERSION}-src.tar.gz - tar xvfz tk${TCLTKVERSION}-src.tar.gz - -dependencies: png freetype tcltk - -installers: - rm -rf matplotlib-${MPLVERSION} - tar xvzf matplotlib-${MPLVERSION}.tar.gz - cd matplotlib-${MPLVERSION} &&\ - rm -rf build &&\ - cp ../data/setup*.* . &&\ - export CFLAGS="${CFLAGS}" &&\ - ${PYTHON} setupwin.py build_ext -c mingw32 -I ${PY_INCLUDE} -L ${PY_LINKER} bdist_wininst &&\ - ${PYTHON} setupwinegg.py build_ext -c mingw32 -I ${PY_INCLUDE} -L ${PY_LINKER} bdist_egg - - -inplace: - #rm -rf matplotlib-${MPLVERSION} - #tar xvzf matplotlib-${MPLVERSION}.tar.gz - cd matplotlib-${MPLVERSION} &&\ - rm -rf build lib/matplotlib/*.pyd lib/matplotlib/*.pyc lib/matplotlib/backends/*.pyd lib/matplotlib/backends/*.pyc &&\ - cp ../data/setup*.* . &&\ - ${PYTHON} setup.py build_ext -c mingw32 -I ${PY_INCLUDE} -L ${PY_LINKER} --inplace - cd matplotlib-${MPLVERSION}/lib &&\ - ${PYTHON} -c 'import matplotlib; matplotlib.use("Agg"); from pylab import *; print matplotlib.__file__; plot([1,2,3]); savefig("test.png")' - -test_png: - ${PYTHON} -c 'import matplotlib; matplotlib.use("Agg"); from pylab import *; print matplotlib.__file__; plot([1,2,3]); savefig("test.png")' - -test_plot: - ${PYTHON} -c 'import matplotlib; from pylab import *; print matplotlib.__file__; plot([1,2,3]); show()' - -all: fetch_deps dependencies installers +PYDIR = C:/Python25 +PYTHON = ${PYDIR}/python.exe +SRCDIR = ${PWD} +WINSRCDIR = `${PWD}/data/mingw_path.sh ${PWD}` +ZLIBVERSION = 1.2.3 +PNGVERSION = 1.2.36 +FREETYPEVERSION = 2.3.9 +TCLTKVERSION = 8.5.7 +MPLVERSION = 0.99.0.rc1 + +## You shouldn't need to configure past this point + +CFLAGS = -Os -D_ftime=ftime64 -DPNG_NO_READ_tIME -DPNG_NO_WRITE_tIME + + +PY_INCLUDE = "${WINSRCDIR}\\zlib-${ZLIBVERSION};${WINSRCDIR}/libpng-${PNGVERSION};${WINSRCDIR}/freetype-${FREETYPEVERSION}/include;${WINSRCDIR}/tcl${TCLTKVERSION}/generic;${WINSRCDIR}/tcl${TCLTKVERSION}/win;${WINSRCDIR}/tk${TCLTKVERSION}/generic;${WINSRCDIR}/tk${TCLTKVERSION}/win;${WINSRCDIR}/tk${TCLTKVERSION}/xlib" + +PY_LINKER = "${WINSRCDIR}/zlib-${ZLIBVERSION};${WINSRCDIR}/libpng-${PNGVERSION};${WINSRCDIR}/freetype-${FREETYPEVERSION}" + +clean: + rm -rf zlib-${ZLIBVERSION}.tar.gz libpng-${PNGVERSION}.tar.bz2 \ + freetype-${FREETYPEVERSION}.tar.bz2 \ + tcl${TCLTKVERSION}-src.tar.gz tk${TCLTKVERSION}-src.tar.gz \ + zlib-${ZLIBVERSION} libpng-${PNGVERSION} freetype-${FREETYPEVERSION} \ + tcl${TCLTKVERSION} tk${TCLTKVERSION} \ + matplotlib-${MPLVERSION} *~ + +fetch_deps: + wget http://www.zlib.net/zlib-${ZLIBVERSION}.tar.gz + wget http://prdownloads.sourceforge.net/libpng/libpng-${PNGVERSION}.tar.bz2 + wget http://prdownloads.sourceforge.net/freetype/freetype-2.3.9.tar.bz2 + wget http://prdownloads.sourceforge.net/tcl/tcl${TCLTKVERSION}-src.tar.gz + wget http://prdownloads.sourceforge.net/tcl/tk${TCLTKVERSION}-src.tar.gz + +zlib: + rm -rf zlib-${ZLIBVERSION} + tar xvfz zlib-${ZLIBVERSION}.tar.gz + cd zlib-${ZLIBVERSION} &&\ + export CFLAGS="${CFLAGS}" &&\ + ./configure &&\ + make -j3 + +# for reasons not clear to me, part of png compilation was failing +# because it could not find zlib.h, even with the CFLAGS which point +# to it and even with tryting to pass --includedir to configure. So I +# manually copy the zlib *.h files into the png dir - JDH +png: zlib + rm -rf libpng-${PNGVERSION} + tar xvfj libpng-${PNGVERSION}.tar.bz2 + cd libpng-${PNGVERSION} &&\ + cp ${SRCDIR}/zlib-${ZLIBVERSION}/*.h . && \ + export CFLAGS="${CFLAGS} -I${SRCDIR}/zlib-${ZLIBVERSION}" &&\ + export LDFLAGS="-L${SRCDIR}/zlib-${ZLIBVERSION}" &&\ + ./configure --disable-shared &&\ + make -j3 &&\ + cp .libs/libpng.a . + +freetype: + rm -rf freetype-${FREETYPEVERSION} + tar xvfj freetype-${FREETYPEVERSION}.tar.bz2 + cd freetype-${FREETYPEVERSION} &&\ + GNUMAKE=mingw32-make ./configure --disable-shared &&\ + cp builds/win32/w32-mingw32.mk config.mk &&\ + mingw32-make -j3 &&\ + cp objs/libfreetype.a . + +freetype_hide: + rm -rf freetype-${FREETYPEVERSION} + tar xvfj freetype-${FREETYPEVERSION}.tar.bz2 + cd freetype-${FREETYPEVERSION} &&\ + export CFLAGS=${CFLAGS} &&\ + ./configure --disable-shared &&\ + cp builds/win32/w32-mingw32.mk config.mk &&\ + make -j3 &&\ + cp objs/libfreetype.a . + +tcltk: + rm -rf tcl${TCLTKVERSION} + rm -rf tk${TCLTKVERSION} + tar xvfz tcl${TCLTKVERSION}-src.tar.gz + tar xvfz tk${TCLTKVERSION}-src.tar.gz + +dependencies: png freetype tcltk + +installers: + rm -rf matplotlib-${MPLVERSION} + tar xvzf matplotlib-${MPLVERSION}.tar.gz + cd matplotlib-${MPLVERSION} &&\ + rm -rf build &&\ + cp ../data/setup*.* . &&\ + export CFLAGS="${CFLAGS}" &&\ + ${PYTHON} setupwin.py build_ext -c mingw32 -I ${PY_INCLUDE} -L ${PY_LINKER} bdist_wininst &&\ + ${PYTHON} setupwinegg.py build_ext -c mingw32 -I ${PY_INCLUDE} -L ${PY_LINKER} bdist_egg + + +inplace: + #rm -rf matplotlib-${MPLVERSION} + #tar xvzf matplotlib-${MPLVERSION}.tar.gz + cd matplotlib-${MPLVERSION} &&\ + rm -rf build lib/matplotlib/*.pyd lib/matplotlib/*.pyc lib/matplotlib/backends/*.pyd lib/matplotlib/backends/*.pyc &&\ + cp ../data/setup*.* . &&\ + ${PYTHON} setup.py build_ext -c mingw32 -I ${PY_INCLUDE} -L ${PY_LINKER} --inplace + cd matplotlib-${MPLVERSION}/lib &&\ + ${PYTHON} -c 'import matplotlib; matplotlib.use("Agg"); from pylab import *; print matplotlib.__file__; plot([1,2,3]); savefig("test.png")' + +test_png: + ${PYTHON} -c 'import matplotlib; matplotlib.use("Agg"); from pylab import *; print matplotlib.__file__; plot([1,2,3]); savefig("test.png")' + +test_plot: + ${PYTHON} -c 'import matplotlib; from pylab import *; print matplotlib.__file__; plot([1,2,3]); show()' + +all: fetch_deps dependencies installers diff --git a/release/win32/data/setup.cfg b/release/win32/data/setup.cfg index 080d183c9d0c..3f2b860597de 100644 --- a/release/win32/data/setup.cfg +++ b/release/win32/data/setup.cfg @@ -1,79 +1,79 @@ -# Rename this file to setup.cfg to modify matplotlib's -# build options. - -[egg_info] -tag_svn_revision = 0 - -[status] -# To suppress display of the dependencies and their versions -# at the top of the build log, uncomment the following line: -#suppress = True -# -# Uncomment to insert lots of diagnostic prints in extension code -#verbose = True - -[provide_packages] -# By default, matplotlib checks for a few dependencies and -# installs them if missing. This feature can be turned off -# by uncommenting the following lines. Acceptible values are: -# True: install, overwrite an existing installation -# False: do not install -# auto: install only if the package is unavailable. This -# is the default behavior -# -## Date/timezone support: -pytz = True -dateutil = True - - -[gui_support] -# Matplotlib supports multiple GUI toolkits, including Cocoa, -# GTK, Fltk, MacOSX, Qt, Qt4, Tk, and WX. Support for many of -# these toolkits requires AGG, the Anti-Grain Geometry library, -# which is provided by matplotlib and built by default. -# -# Some backends are written in pure Python, and others require -# extension code to be compiled. By default, matplotlib checks -# for these GUI toolkits during installation and, if present, -# compiles the required extensions to support the toolkit. GTK -# support requires the GTK runtime environment and PyGTK. Wx -# support requires wxWidgets and wxPython. Tk support requires -# Tk and Tkinter. The other GUI toolkits do not require any -# extension code, and can be used as long as the libraries are -# installed on your system. -# -# You can uncomment any the following lines if you know you do -# not want to use the GUI toolkit. Acceptible values are: -# True: build the extension. Exits with a warning if the -# required dependencies are not available -# False: do not build the extension -# auto: build if the required dependencies are available, -# otherwise skip silently. This is the default -# behavior -# -gtk = False -gtkagg = False -tkagg = True -wxagg = False -macosx = False - -[rc_options] -# User-configurable options -# -# Default backend, one of: Agg, Cairo, CocoaAgg, GTK, GTKAgg, GTKCairo, -# FltkAgg, MacOSX, Pdf, Ps, QtAgg, Qt4Agg, SVG, TkAgg, WX, WXAgg. -# -# The Agg, Ps, Pdf and SVG backends do not require external -# dependencies. Do not choose GTK, GTKAgg, GTKCairo, MacOSX, TkAgg or WXAgg -# if you have disabled the relevent extension modules. Agg will be used -# by default. -# -backend = TkAgg -# -# The numerix module was historically used to provide -# compatibility between the Numeric, numarray, and NumPy array -# packages. Now that NumPy has emerge as the universal array -# package for python, numerix is not really necessary and is -# maintained to provide backward compatibility. Do not change -# this unless you have a compelling reason to do so. -#numerix = numpy +# Rename this file to setup.cfg to modify matplotlib's +# build options. + +[egg_info] +tag_svn_revision = 0 + +[status] +# To suppress display of the dependencies and their versions +# at the top of the build log, uncomment the following line: +#suppress = True +# +# Uncomment to insert lots of diagnostic prints in extension code +#verbose = True + +[provide_packages] +# By default, matplotlib checks for a few dependencies and +# installs them if missing. This feature can be turned off +# by uncommenting the following lines. Acceptible values are: +# True: install, overwrite an existing installation +# False: do not install +# auto: install only if the package is unavailable. This +# is the default behavior +# +## Date/timezone support: +pytz = True +dateutil = True + + +[gui_support] +# Matplotlib supports multiple GUI toolkits, including Cocoa, +# GTK, Fltk, MacOSX, Qt, Qt4, Tk, and WX. Support for many of +# these toolkits requires AGG, the Anti-Grain Geometry library, +# which is provided by matplotlib and built by default. +# +# Some backends are written in pure Python, and others require +# extension code to be compiled. By default, matplotlib checks +# for these GUI toolkits during installation and, if present, +# compiles the required extensions to support the toolkit. GTK +# support requires the GTK runtime environment and PyGTK. Wx +# support requires wxWidgets and wxPython. Tk support requires +# Tk and Tkinter. The other GUI toolkits do not require any +# extension code, and can be used as long as the libraries are +# installed on your system. +# +# You can uncomment any the following lines if you know you do +# not want to use the GUI toolkit. Acceptible values are: +# True: build the extension. Exits with a warning if the +# required dependencies are not available +# False: do not build the extension +# auto: build if the required dependencies are available, +# otherwise skip silently. This is the default +# behavior +# +gtk = False +gtkagg = False +tkagg = True +wxagg = False +macosx = False + +[rc_options] +# User-configurable options +# +# Default backend, one of: Agg, Cairo, CocoaAgg, GTK, GTKAgg, GTKCairo, +# FltkAgg, MacOSX, Pdf, Ps, QtAgg, Qt4Agg, SVG, TkAgg, WX, WXAgg. +# +# The Agg, Ps, Pdf and SVG backends do not require external +# dependencies. Do not choose GTK, GTKAgg, GTKCairo, MacOSX, TkAgg or WXAgg +# if you have disabled the relevent extension modules. Agg will be used +# by default. +# +backend = TkAgg +# +# The numerix module was historically used to provide +# compatibility between the Numeric, numarray, and NumPy array +# packages. Now that NumPy has emerge as the universal array +# package for python, numerix is not really necessary and is +# maintained to provide backward compatibility. Do not change +# this unless you have a compelling reason to do so. +#numerix = numpy diff --git a/release/win32/data/setupwin.py b/release/win32/data/setupwin.py index abd398503f57..01bffae2c4c5 100644 --- a/release/win32/data/setupwin.py +++ b/release/win32/data/setupwin.py @@ -1,12 +1,12 @@ -from distutils import cygwinccompiler - -try: - # Python 2.6 - # Replace the msvcr func to return an [] - cygwinccompiler.get_msvcr - cygwinccompiler.get_msvcr = lambda: [] - -except AttributeError: - pass - -execfile('setup.py') +from distutils import cygwinccompiler + +try: + # Python 2.6 + # Replace the msvcr func to return an [] + cygwinccompiler.get_msvcr + cygwinccompiler.get_msvcr = lambda: [] + +except AttributeError: + pass + +execfile('setup.py') diff --git a/release/win32/data/setupwinegg.py b/release/win32/data/setupwinegg.py index fefe2173315a..d12c9b3ff119 100644 --- a/release/win32/data/setupwinegg.py +++ b/release/win32/data/setupwinegg.py @@ -1,15 +1,15 @@ -from distutils import cygwinccompiler - -try: - # Python 2.6 - # Replace the msvcr func to return an empty list - cygwinccompiler.get_msvcr - cygwinccompiler.get_msvcr = lambda: [] - -except AttributeError: - pass - -from setuptools import setup -execfile('setup.py', - {'additional_params' : - {'namespace_packages' : ['mpl_toolkits']}}) +from distutils import cygwinccompiler + +try: + # Python 2.6 + # Replace the msvcr func to return an empty list + cygwinccompiler.get_msvcr + cygwinccompiler.get_msvcr = lambda: [] + +except AttributeError: + pass + +from setuptools import setup +execfile('setup.py', + {'additional_params' : + {'namespace_packages' : ['mpl_toolkits']}}) From ad96aec7f762110b7342de519d345bd21e3bf961 Mon Sep 17 00:00:00 2001 From: Darren Dale Date: Sun, 20 Feb 2011 00:41:29 +0800 Subject: [PATCH 15/15] update examples to use sample_data from github --- examples/misc/sample_data_demo.py | 2 +- examples/misc/sample_data_test.py | 6 +++--- lib/matplotlib/cbook.py | 29 ++++++++++++++++------------- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/examples/misc/sample_data_demo.py b/examples/misc/sample_data_demo.py index eb34a92ceb4e..1af97be752ac 100644 --- a/examples/misc/sample_data_demo.py +++ b/examples/misc/sample_data_demo.py @@ -1,6 +1,6 @@ """ Grab mpl data from the ~/.matplotlib/sample_data cache if it exists, else -fetch it from svn and cache it +fetch it from github and cache it """ import matplotlib.cbook as cbook import matplotlib.pyplot as plt diff --git a/examples/misc/sample_data_test.py b/examples/misc/sample_data_test.py index e59eaf0704e8..ba6a50eb580b 100644 --- a/examples/misc/sample_data_test.py +++ b/examples/misc/sample_data_test.py @@ -1,11 +1,11 @@ """ -Demonstrate how get_sample_data works with svn revisions in the data. +Demonstrate how get_sample_data works with git revisions in the data. - svn co https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/trunk/sample_data + git clone git@github.com/matplotlib/sample_data.git and edit testdata.csv to add a new row. After committing the changes, when you rerun this script you will get the updated data (and the new -svn version will be cached in ~/.matplotlib/sample_data) +git version will be cached in ~/.matplotlib/sample_data) """ import matplotlib.mlab as mlab diff --git a/lib/matplotlib/cbook.py b/lib/matplotlib/cbook.py index 5ffa48f5ed4e..f98b027796c9 100644 --- a/lib/matplotlib/cbook.py +++ b/lib/matplotlib/cbook.py @@ -448,12 +448,13 @@ def to_filehandle(fname, flag='rU', return_opened=False): def is_scalar_or_string(val): return is_string_like(val) or not iterable(val) -class ViewVCCachedServer(urllib2.BaseHandler): +class ViewVCCachedServer(urllib2.HTTPSHandler): """ Urllib2 handler that takes care of caching files. The file cache.pck holds the directory of files that have been cached. """ def __init__(self, cache_dir, baseurl): + urllib2.HTTPSHandler.__init__(self) self.cache_dir = cache_dir self.baseurl = baseurl self.read_cache() @@ -544,7 +545,7 @@ def cache_file(self, url, data, headers): # http_error_304 for handling 304 Not Modified responses # http_response for postprocessing requests - def http_request(self, req): + def https_request(self, req): """ Make the request conditional if we have a cached file. """ @@ -555,20 +556,21 @@ def http_request(self, req): req.add_header("If-Modified-Since", lastmod) return req - def http_error_304(self, req, fp, code, msg, hdrs): + def https_error_304(self, req, fp, code, msg, hdrs): """ Read the file from the cache since the server has no newer version. """ url = req.get_full_url() fn, _, _ = self.cache[url] - matplotlib.verbose.report('ViewVCCachedServer: reading data file from cache file "%s"' - %fn, 'debug') + matplotlib.verbose.report( + 'ViewVCCachedServer: reading data file from cache file "%s"' %fn, + 'debug') file = open(fn, 'rb') handle = urllib2.addinfourl(file, hdrs, url) handle.code = 304 return handle - def http_response(self, req, response): + def https_response(self, req, response): """ Update the cache with the returned file. """ @@ -589,7 +591,7 @@ def http_response(self, req, response): def get_sample_data(self, fname, asfileobj=True): """ Check the cachedirectory for a sample_data file. If it does - not exist, fetch it with urllib from the svn repo and + not exist, fetch it with urllib from the git repo and store it in the cachedir. If asfileobj is True, a file object will be returned. Else the @@ -637,9 +639,9 @@ def get_sample_data(self, fname, asfileobj=True): def get_sample_data(fname, asfileobj=True): """ Check the cachedirectory ~/.matplotlib/sample_data for a sample_data - file. If it does not exist, fetch it with urllib from the mpl svn repo + file. If it does not exist, fetch it with urllib from the mpl git repo - http://matplotlib.svn.sourceforge.net/svnroot/matplotlib/trunk/sample_data/ + https://github.com/matplotlib/sample_data/raw/master and store it in the cachedir. @@ -647,11 +649,11 @@ def get_sample_data(fname, asfileobj=True): path to the file as a string will be returned To add a datafile to this directory, you need to check out - sample_data from matplotlib svn:: + sample_data from matplotlib git:: - svn co https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/trunk/sample_data + git clone git@github.com:matplotlib/sample_data - and svn add the data file you want to support. This is primarily + and git add the data file you want to support. This is primarily intended for use in mpl examples that need custom data. To bypass all downloading, set the rc parameter examples.download to False @@ -670,12 +672,13 @@ def get_sample_data(fname, asfileobj=True): if myserver is None: configdir = matplotlib.get_configdir() cachedir = os.path.join(configdir, 'sample_data') - baseurl = 'http://matplotlib.svn.sourceforge.net/svnroot/matplotlib/trunk/sample_data/' + baseurl = 'https://github.com/matplotlib/sample_data/raw/master/' myserver = get_sample_data.myserver = ViewVCCachedServer(cachedir, baseurl) return myserver.get_sample_data(fname, asfileobj=asfileobj) get_sample_data.myserver = None + def flatten(seq, scalarp=is_scalar_or_string): """ this generator flattens nested containers such as