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/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/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/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/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/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/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/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 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 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 diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index 57ab2c4328c3..99fd09fed4d4 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -312,24 +312,24 @@ 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: + # 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) 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: + 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): 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/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], diff --git a/make.osx b/make.osx index d3093a731244..aa8ebef8ffe8 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 @@ -25,17 +24,18 @@ 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} \ + bdist_mpkg-${BDISTMPKGVERSION} setupext.pyc \ + lib/matplotlib/mpl-data/matplotlib.conf lib/matplotlib/mpl-data/matplotlibrc \ zlib-${ZLIBVERSION} libpng-${PNGVERSION} freetype-${FREETYPEVERSION} \ build 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/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")' @@ -96,7 +96,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 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']}})