From 259483a52db535caf0cc27dcc73a42760f8cb46e Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Sat, 5 Mar 2016 20:09:24 -0500 Subject: [PATCH 01/11] FIX: always normalize dpi The string 'figure' is a valid value for dpi. Always check if this is the input, not just if we look it up from the rcparams. closes #6113 --- lib/matplotlib/animation.py | 4 ++-- lib/matplotlib/backend_bases.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/animation.py b/lib/matplotlib/animation.py index dc6082f222a0..423a714d021a 100644 --- a/lib/matplotlib/animation.py +++ b/lib/matplotlib/animation.py @@ -755,8 +755,8 @@ def save(self, filename, writer=None, fps=None, dpi=None, codec=None, # Re-use the savefig DPI for ours if none is given if dpi is None: dpi = rcParams['savefig.dpi'] - if dpi == 'figure': - dpi = self._fig.dpi + if dpi == 'figure': + dpi = self._fig.dpi if codec is None: codec = rcParams['animation.codec'] diff --git a/lib/matplotlib/backend_bases.py b/lib/matplotlib/backend_bases.py index 62277f73ddc3..31e47a495760 100644 --- a/lib/matplotlib/backend_bases.py +++ b/lib/matplotlib/backend_bases.py @@ -2141,8 +2141,8 @@ def print_figure(self, filename, dpi=None, facecolor='w', edgecolor='w', if dpi is None: dpi = rcParams['savefig.dpi'] - if dpi == 'figure': - dpi = self.figure.dpi + if dpi == 'figure': + dpi = self.figure.dpi origDPI = self.figure.dpi origfacecolor = self.figure.get_facecolor() From a175e958a6bb953a788cd88d7a6865a37b4337b8 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Sat, 5 Mar 2016 20:21:57 -0500 Subject: [PATCH 02/11] MNT: remove redundant normalization This is now taken care of in `canvas.print_figure`. --- lib/matplotlib/figure.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index dd18a94293c3..284a509fc9c1 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -1538,8 +1538,6 @@ def savefig(self, *args, **kwargs): """ kwargs.setdefault('dpi', rcParams['savefig.dpi']) - if kwargs['dpi'] == 'figure': - kwargs['dpi'] = self.get_dpi() frameon = kwargs.pop('frameon', rcParams['savefig.frameon']) transparent = kwargs.pop('transparent', rcParams['savefig.transparent']) From eadeb1a3311dae4217dc28374cc9590b516388ad Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Thu, 10 Mar 2016 14:18:08 -0500 Subject: [PATCH 03/11] Merge pull request #6140 from kylerbrown/scatter-doc2 DOC: clarified color argument in scatter --- lib/matplotlib/axes/_axes.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index b80e36c89845..3d2ea0faa10e 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -3718,7 +3718,7 @@ def scatter(self, x, y, s=20, c=None, marker='o', cmap=None, norm=None, **kwargs): """ Make a scatter plot of x vs y, where x and y are sequence like objects - of the same lengths. + of the same length. Parameters ---------- @@ -3728,7 +3728,7 @@ def scatter(self, x, y, s=20, c=None, marker='o', cmap=None, norm=None, s : scalar or array_like, shape (n, ), optional, default: 20 size in points^2. - c : color or sequence of color, optional, default : 'b' + c : color, sequence, or sequence of color, optional, default: 'b' `c` can be a single color format string, or a sequence of color specifications of length `N`, or a sequence of `N` numbers to be mapped to colors using the `cmap` and `norm` specified via kwargs From 1d7f0d9600b53d6bb891e8d926d36f06fd5682fc Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Sat, 12 Mar 2016 17:21:22 -0500 Subject: [PATCH 04/11] Merge pull request #6148 from has2k1/fix-pandas-indexing Fix: Pandas indexing Error in collections --- lib/matplotlib/collections.py | 4 ++-- lib/matplotlib/tests/test_collections.py | 22 +++++++++++++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/lib/matplotlib/collections.py b/lib/matplotlib/collections.py index 6790b7275c59..6a3f0c735d44 100644 --- a/lib/matplotlib/collections.py +++ b/lib/matplotlib/collections.py @@ -146,7 +146,7 @@ def _get_value(val): except TypeError: if cbook.iterable(val) and len(val): try: - float(val[0]) + float(cbook.safe_first_element(val)) except (TypeError, ValueError): pass # raise below else: @@ -159,7 +159,7 @@ def _get_bool(val): if not cbook.iterable(val): val = (val,) try: - bool(val[0]) + bool(cbook.safe_first_element(val)) except (TypeError, IndexError): raise TypeError('val must be a bool or nonzero sequence of them') return val diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py index 3001147b1841..23cc507d0447 100644 --- a/lib/matplotlib/tests/test_collections.py +++ b/lib/matplotlib/tests/test_collections.py @@ -11,11 +11,12 @@ from nose.tools import assert_equal import numpy as np from numpy.testing import assert_array_equal, assert_array_almost_equal +from nose.plugins.skip import SkipTest import matplotlib.pyplot as plt import matplotlib.collections as mcollections import matplotlib.transforms as mtransforms -from matplotlib.collections import EventCollection +from matplotlib.collections import Collection, EventCollection from matplotlib.testing.decorators import cleanup, image_comparison @@ -617,6 +618,25 @@ def test_size_in_xy(): ax.set_ylim(0, 30) +def test_pandas_indexing(): + try: + import pandas as pd + except ImportError: + raise SkipTest("Pandas not installed") + + # Should not fail break when faced with a + # non-zero indexed series + index = [11, 12, 13] + ec = fc = pd.Series(['red', 'blue', 'green'], index=index) + lw = pd.Series([1, 2, 3], index=index) + aa = pd.Series([True, False, True], index=index) + + Collection(edgecolors=ec) + Collection(facecolors=fc) + Collection(linewidths=lw) + Collection(antialiaseds=aa) + + if __name__ == '__main__': import nose nose.runmodule(argv=['-s', '--with-doctest'], exit=False) From 44afc736ce8f88422bb7157fba0fc764c6d64f10 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Sun, 13 Mar 2016 16:51:46 -0400 Subject: [PATCH 05/11] Merge pull request #6091 from KyleBsingh/master FIX: plot_date ignores timezone Closes #5575 Conflicts: lib/matplotlib/tests/test_axes.py multiple PRs added tests at same location in file keep all. --- lib/matplotlib/axes/_axes.py | 4 +- .../test_axes/date_timezone_x.png | Bin 0 -> 41983 bytes .../test_axes/date_timezone_x_and_y.png | Bin 0 -> 92003 bytes .../test_axes/date_timezone_y.png | Bin 0 -> 87659 bytes lib/matplotlib/tests/test_axes.py | 55 ++++++++++++++++++ 5 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 lib/matplotlib/tests/baseline_images/test_axes/date_timezone_x.png create mode 100644 lib/matplotlib/tests/baseline_images/test_axes/date_timezone_x_and_y.png create mode 100644 lib/matplotlib/tests/baseline_images/test_axes/date_timezone_y.png diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 3d2ea0faa10e..0ac4b7633c09 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -1491,13 +1491,13 @@ def plot_date(self, x, y, fmt='o', tz=None, xdate=True, ydate=False, if not self._hold: self.cla() - ret = self.plot(x, y, fmt, **kwargs) - if xdate: self.xaxis_date(tz) if ydate: self.yaxis_date(tz) + ret = self.plot(x, y, fmt, **kwargs) + self.autoscale_view() return ret diff --git a/lib/matplotlib/tests/baseline_images/test_axes/date_timezone_x.png b/lib/matplotlib/tests/baseline_images/test_axes/date_timezone_x.png new file mode 100644 index 0000000000000000000000000000000000000000..aee04d0554219deb939456179ffeaf9a6bb5ad8b GIT binary patch literal 41983 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�Ks)~z+khgk3O)?X*aj5XrIvv_bD+^(bv$P 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

OqCg@lc@&sm;LCY<PvU$6*c;lbvB`} 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_axes/date_timezone_y.png b/lib/matplotlib/tests/baseline_images/test_axes/date_timezone_y.png new file mode 100644 index 0000000000000000000000000000000000000000..be77b5d0c8bc6bcf121f51151dcc934a0e1441d2 GIT binary patch literal 87659 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%0AMOm9X>o-%DDj5qUH$$cU}5+`Y)*& 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�^ODz=9gRz)x4Q*lATvh36;5JYI_HmW8ua`* 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 x0_^+!UrHzV`vZ}u@cUwrr|>^ Date: Sun, 13 Mar 2016 23:14:25 -0400 Subject: [PATCH 06/11] FIX: deal with negative canvas dimension in Qt In some cases Qt may report having a negative height (and presumably width) in the case of minimizing windows / widgets. This causes issues at the Agg layer when the re-size triggers a re-draw which tries to get a renderer with a negative dimension (segfaults or OutOfMemory errors). --- lib/matplotlib/backends/backend_qt5agg.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/matplotlib/backends/backend_qt5agg.py b/lib/matplotlib/backends/backend_qt5agg.py index 656c837e5e65..5920ab09c7cf 100644 --- a/lib/matplotlib/backends/backend_qt5agg.py +++ b/lib/matplotlib/backends/backend_qt5agg.py @@ -172,6 +172,9 @@ def draw_idle(self): QtCore.QTimer.singleShot(0, self.__draw_idle_agg) def __draw_idle_agg(self, *args): + if self.height() < 0 or self.width() < 0: + self._agg_draw_pending = False + return try: FigureCanvasAgg.draw(self) self.update() From 54ec43faa01205e1cff24c3a13a815df67b3f78b Mon Sep 17 00:00:00 2001 From: Jens Hedegaard Nielsen Date: Mon, 14 Mar 2016 09:49:12 +0100 Subject: [PATCH 07/11] Merge pull request #5343 from phobson/bxp-equal-quartiles Boxplot stats w/ equal quartiles --- doc/api/api_changes/2016-03-13-PMH.rst | 10 + lib/matplotlib/axes/_axes.py | 271 ++++++------ lib/matplotlib/cbook.py | 69 ++-- .../boxplot_autorange_false_whiskers.png | Bin 0 -> 6516 bytes ...ng => boxplot_autorange_true_whiskers.png} | Bin .../test_axes/boxplot_autorange_whiskers.pdf | Bin 4809 -> 0 bytes .../test_axes/boxplot_autorange_whiskers.svg | 384 ------------------ lib/matplotlib/tests/test_axes.py | 18 +- lib/matplotlib/tests/test_cbook.py | 14 + 9 files changed, 214 insertions(+), 552 deletions(-) create mode 100644 doc/api/api_changes/2016-03-13-PMH.rst create mode 100644 lib/matplotlib/tests/baseline_images/test_axes/boxplot_autorange_false_whiskers.png rename lib/matplotlib/tests/baseline_images/test_axes/{boxplot_autorange_whiskers.png => boxplot_autorange_true_whiskers.png} (100%) delete mode 100644 lib/matplotlib/tests/baseline_images/test_axes/boxplot_autorange_whiskers.pdf delete mode 100644 lib/matplotlib/tests/baseline_images/test_axes/boxplot_autorange_whiskers.svg diff --git a/doc/api/api_changes/2016-03-13-PMH.rst b/doc/api/api_changes/2016-03-13-PMH.rst new file mode 100644 index 000000000000..209df726cd0e --- /dev/null +++ b/doc/api/api_changes/2016-03-13-PMH.rst @@ -0,0 +1,10 @@ +Changed default ``autorange`` behavior in boxplots +`````````````````````````````````````````````````` + +Prior to v1.5.2, the whiskers of boxplots would extend to the mininum +and maximum values if the quartiles were all equal (i.e., Q1 = median += Q3). This behavior has been disabled by default to restore consistency +with other plotting packages. + +To restore the old behavior, simply set ``autorange=True`` when +calling ``plt.boxplot``. diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 0ac4b7633c09..5ee0db23b0e8 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -3043,9 +3043,10 @@ def boxplot(self, x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None, usermedians=None, conf_intervals=None, meanline=None, showmeans=None, showcaps=None, - showbox=None, showfliers=None, boxprops=None, labels=None, - flierprops=None, medianprops=None, meanprops=None, - capprops=None, whiskerprops=None, manage_xticks=True): + showbox=None, showfliers=None, boxprops=None, + labels=None, flierprops=None, medianprops=None, + meanprops=None, capprops=None, whiskerprops=None, + manage_xticks=True, autorange=False): """ Make a box and whisker plot. @@ -3055,12 +3056,13 @@ def boxplot(self, x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=False, bootstrap=None, usermedians=None, conf_intervals=None, meanline=False, showmeans=False, showcaps=True, - showbox=True, showfliers=True, boxprops=None, labels=None, - flierprops=None, medianprops=None, meanprops=None, - capprops=None, whiskerprops=None, manage_xticks=True): + showbox=True, showfliers=True, boxprops=None, + labels=None, flierprops=None, medianprops=None, + meanprops=None, capprops=None, whiskerprops=None, + manage_xticks=True, autorange=False): - Make a box and whisker plot for each column of *x* or each - vector in sequence *x*. The box extends from the lower to + Make a box and whisker plot for each column of ``x`` or each + vector in sequence ``x``. The box extends from the lower to upper quartile values of the data, with a line at the median. The whiskers extend from the box to show the range of the data. Flier points are those past the end of the whiskers. @@ -3068,140 +3070,145 @@ def boxplot(self, x, notch=None, sym=None, vert=None, whis=None, Parameters ---------- x : Array or a sequence of vectors. - The input data. - - notch : bool, default = False - If False, produces a rectangular box plot. - If True, will produce a notched box plot - - sym : str or None, default = None - The default symbol for flier points. - Enter an empty string ('') if you don't want to show fliers. - If `None`, then the fliers default to 'b+' If you want more - control use the flierprops kwarg. - - vert : bool, default = True - If True (default), makes the boxes vertical. - If False, makes horizontal boxes. - - whis : float, sequence (default = 1.5) or string - As a float, determines the reach of the whiskers past the first - and third quartiles (e.g., Q3 + whis*IQR, IQR = interquartile - range, Q3-Q1). Beyond the whiskers, data are considered outliers - and are plotted as individual points. Set this to an unreasonably - high value to force the whiskers to show the min and max values. - Alternatively, set this to an ascending sequence of percentile - (e.g., [5, 95]) to set the whiskers at specific percentiles of - the data. Finally, *whis* can be the string 'range' to force the - whiskers to the min and max of the data. In the edge case that - the 25th and 75th percentiles are equivalent, *whis* will be - automatically set to 'range'. - - bootstrap : None (default) or integer - Specifies whether to bootstrap the confidence intervals - around the median for notched boxplots. If bootstrap==None, - no bootstrapping is performed, and notches are calculated - using a Gaussian-based asymptotic approximation (see McGill, R., - Tukey, J.W., and Larsen, W.A., 1978, and Kendall and Stuart, - 1967). Otherwise, bootstrap specifies the number of times to - bootstrap the median to determine it's 95% confidence intervals. - Values between 1000 and 10000 are recommended. - - usermedians : array-like or None (default) - An array or sequence whose first dimension (or length) is - compatible with *x*. This overrides the medians computed by - matplotlib for each element of *usermedians* that is not None. - When an element of *usermedians* == None, the median will be - computed by matplotlib as normal. - - conf_intervals : array-like or None (default) - Array or sequence whose first dimension (or length) is compatible - with *x* and whose second dimension is 2. When the current element - of *conf_intervals* is not None, the notch locations computed by - matplotlib are overridden (assuming notch is True). When an - element of *conf_intervals* is None, boxplot compute notches the - method specified by the other kwargs (e.g., *bootstrap*). - - positions : array-like, default = [1, 2, ..., n] - Sets the positions of the boxes. The ticks and limits - are automatically set to match the positions. - - widths : array-like, default = 0.5 - Either a scalar or a vector and sets the width of each box. The - default is 0.5, or ``0.15*(distance between extreme positions)`` - if that is smaller. - - labels : sequence or None (default) - Labels for each dataset. Length must be compatible with - dimensions of *x* - - patch_artist : bool, default = False - If False produces boxes with the Line2D artist - If True produces boxes with the Patch artist - - showmeans : bool, default = False - If True, will toggle on the rendering of the means - - showcaps : bool, default = True - If True, will toggle on the rendering of the caps - - showbox : bool, default = True - If True, will toggle on the rendering of the box - - showfliers : bool, default = True - If True, will toggle on the rendering of the fliers - - boxprops : dict or None (default) - If provided, will set the plotting style of the boxes - - whiskerprops : dict or None (default) - If provided, will set the plotting style of the whiskers + The input data. + + notch : bool, optional (False) + If `True`, will produce a notched box plot. Otherwise, a + rectangular boxplot is produced. + + sym : str, optional + The default symbol for flier points. Enter an empty string + ('') if you don't want to show fliers. If `None`, then the + fliers default to 'b+' If you want more control use the + flierprops kwarg. + + vert : bool, optional (True) + If `True` (default), makes the boxes vertical. If `False`, + everything is drawn horizontally. + + whis : float, sequence, or string (default = 1.5) + As a float, determines the reach of the whiskers past the + first and third quartiles (e.g., Q3 + whis*IQR, + IQR = interquartile range, Q3-Q1). Beyond the whiskers, data + are considered outliers and are plotted as individual + points. Set this to an unreasonably high value to force the + whiskers to show the min and max values. Alternatively, set + this to an ascending sequence of percentile (e.g., [5, 95]) + to set the whiskers at specific percentiles of the data. + Finally, ``whis`` can be the string ``'range'`` to force the + whiskers to the min and max of the data. + + bootstrap : int, optional + Specifies whether to bootstrap the confidence intervals + around the median for notched boxplots. If `bootstrap` is None, + no bootstrapping is performed, and notches are calculated + using a Gaussian-based asymptotic approximation (see McGill, + R., Tukey, J.W., and Larsen, W.A., 1978, and Kendall and + Stuart, 1967). Otherwise, bootstrap specifies the number of + times to bootstrap the median to determine its 95% + confidence intervals. Values between 1000 and 10000 are + recommended. + + usermedians : array-like, optional + An array or sequence whose first dimension (or length) is + compatible with ``x``. This overrides the medians computed + by matplotlib for each element of ``usermedians`` that is not + `None`. When an element of ``usermedians`` is None, the median + will be computed by matplotlib as normal. + + conf_intervals : array-like, optional + Array or sequence whose first dimension (or length) is + compatible with ``x`` and whose second dimension is 2. When + the an element of ``conf_intervals`` is not None, the + notch locations computed by matplotlib are overridden + (provided ``notch`` is `True`). When an element of + ``conf_intervals`` is `None`, the notches are computed by the + method specified by the other kwargs (e.g., ``bootstrap``). + + positions : array-like, optional + Sets the positions of the boxes. The ticks and limits are + automatically set to match the positions. Defaults to + `range(1, N+1)` where N is the number of boxes to be drawn. + + widths : scalar or array-like + Sets the width of each box either with a scalar or a + sequence. The default is 0.5, or ``0.15*(distance between + extreme positions)``, if that is smaller. + + patch_artist : bool, optional (False) + If `False` produces boxes with the Line2D artist. Otherwise, + boxes and drawn with Patch artists. + + labels : sequence, optional + Labels for each dataset. Length must be compatible with + dimensions of ``x``. + + manage_xticks : bool, optional (True) + If the function should adjust the xlim and xtick locations. - capprops : dict or None (default) - If provided, will set the plotting style of the caps + autorange : bool, optional (False) + When `True` and the data are distributed such that the 25th and + 75th percentiles are equal, ``whis`` is set to ``'range'`` such + that the whisker ends are at the minimum and maximum of the + data. + + meanline : bool, optional (False) + If `True` (and ``showmeans`` is `True`), will try to render + the mean as a line spanning the full width of the box + according to ``meanprops`` (see below). Not recommended if + ``shownotches`` is also True. Otherwise, means will be shown + as points. + + Additional Options + --------------------- + The following boolean options toggle the drawing of individual + components of the boxplots: + - showcaps: the caps on the ends of whiskers + (default is True) + - showbox: the central box (default is True) + - showfliers: the outliers beyond the caps (default is True) + - showmeans: the arithmetic means (default is False) + + The remaining options can accept dictionaries that specify the + style of the individual artists: + - capprops + - boxprops + - whiskerprops + - flierprops + - medianprops + - meanprops - flierprops : dict or None (default) - If provided, will set the plotting style of the fliers + Returns + ------- + result : dict + A dictionary mapping each component of the boxplot to a list + of the :class:`matplotlib.lines.Line2D` instances + created. That dictionary has the following keys (assuming + vertical boxplots): - medianprops : dict or None (default) - If provided, will set the plotting style of the medians + - ``boxes``: the main body of the boxplot showing the + quartiles and the median's confidence intervals if + enabled. - meanprops : dict or None (default) - If provided, will set the plotting style of the means + - ``medians``: horizontal lines at the median of each box. - meanline : bool, default = False - If True (and *showmeans* is True), will try to render the mean - as a line spanning the full width of the box according to - *meanprops*. Not recommended if *shownotches* is also True. - Otherwise, means will be shown as points. + - ``whiskers``: the vertical lines extending to the most + extreme, non-outlier data points. - manage_xticks : bool, default = True - If the function should adjust the xlim and xtick locations. + - ``caps``: the horizontal lines at the ends of the + whiskers. - Returns - ------- + - ``fliers``: points representing data that extend beyond + the whiskers (fliers). - result : dict - A dictionary mapping each component of the boxplot - to a list of the :class:`matplotlib.lines.Line2D` - instances created. That dictionary has the following keys - (assuming vertical boxplots): - - - boxes: the main body of the boxplot showing the quartiles - and the median's confidence intervals if enabled. - - medians: horizonal lines at the median of each box. - - whiskers: the vertical lines extending to the most extreme, - n-outlier data points. - - caps: the horizontal lines at the ends of the whiskers. - - fliers: points representing data that extend beyond the - whiskers (outliers). - - means: points or lines representing the means. + - ``means``: points or lines representing the means. Examples -------- - .. plot:: mpl_examples/statistics/boxplot_demo.py + """ + # If defined in matplotlibrc, apply the value from rc file # Overridden if argument is passed if whis is None: @@ -3209,7 +3216,7 @@ def boxplot(self, x, notch=None, sym=None, vert=None, whis=None, if bootstrap is None: bootstrap = rcParams['boxplot.bootstrap'] bxpstats = cbook.boxplot_stats(x, whis=whis, bootstrap=bootstrap, - labels=labels) + labels=labels, autorange=autorange) if notch is None: notch = rcParams['boxplot.notch'] if vert is None: @@ -3455,10 +3462,10 @@ def bxp(self, bxpstats, positions=None, widths=None, vert=True, quartiles and the median's confidence intervals if enabled. - - ``medians``: horizonal lines at the median of each box. + - ``medians``: horizontal lines at the median of each box. - ``whiskers``: the vertical lines extending to the most - extreme, n-outlier data points. + extreme, non-outlier data points. - ``caps``: the horizontal lines at the ends of the whiskers. diff --git a/lib/matplotlib/cbook.py b/lib/matplotlib/cbook.py index 428f0374ec07..a0c2223bd04b 100644 --- a/lib/matplotlib/cbook.py +++ b/lib/matplotlib/cbook.py @@ -1876,39 +1876,46 @@ def delete_masked_points(*args): return margs -def boxplot_stats(X, whis=1.5, bootstrap=None, labels=None): - ''' - Returns list of dictionaries of staticists to be use to draw a series of - box and whisker plots. See the `Returns` section below to the required - keys of the dictionary. Users can skip this function and pass a user- - defined set of dictionaries to the new `axes.bxp` method instead of - relying on MPL to do the calcs. +def boxplot_stats(X, whis=1.5, bootstrap=None, labels=None, + autorange=False): + """ + Returns list of dictionaries of statistics used to draw a series + of box and whisker plots. The `Returns` section enumerates the + required keys of the dictionary. Users can skip this function and + pass a user-defined set of dictionaries to the new `axes.bxp` method + instead of relying on MPL to do the calculations. Parameters ---------- X : array-like - Data that will be represented in the boxplots. Should have 2 or fewer - dimensions. + Data that will be represented in the boxplots. Should have 2 or + fewer dimensions. whis : float, string, or sequence (default = 1.5) - As a float, determines the reach of the whiskers past the first and - third quartiles (e.g., Q3 + whis*IQR, QR = interquartile range, Q3-Q1). - Beyond the whiskers, data are considered outliers and are plotted as - individual points. Set this to an unreasonably high value to force the - whiskers to show the min and max data. Alternatively, set this to an - ascending sequence of percentile (e.g., [5, 95]) to set the whiskers - at specific percentiles of the data. Finally, can `whis` be the - string 'range' to force the whiskers to the min and max of the data. - In the edge case that the 25th and 75th percentiles are equivalent, - `whis` will be automatically set to 'range' - - bootstrap : int or None (default) - Number of times the confidence intervals around the median should - be bootstrapped (percentile method). - - labels : sequence - Labels for each dataset. Length must be compatible with dimensions - of `X` + As a float, determines the reach of the whiskers past the first + and third quartiles (e.g., Q3 + whis*IQR, QR = interquartile + range, Q3-Q1). Beyond the whiskers, data are considered outliers + and are plotted as individual points. This can be set this to an + ascending sequence of percentile (e.g., [5, 95]) to set the + whiskers at specific percentiles of the data. Finally, `whis` + can be the string ``'range'`` to force the whiskers to the + minimum and maximum of the data. In the edge case that the 25th + and 75th percentiles are equivalent, `whis` can be automatically + set to ``'range'`` via the `autorange` option. + + bootstrap : int, optional + Number of times the confidence intervals around the median + should be bootstrapped (percentile method). + + labels : array-like, optional + Labels for each dataset. Length must be compatible with + dimensions of `X`. + + autorange : bool, optional (False) + When `True` and the data are distributed such that the 25th and + 75th percentiles are equal, ``whis`` is set to ``'range'`` such + that the whisker ends are at the minimum and maximum of the + data. Returns ------- @@ -1933,8 +1940,8 @@ def boxplot_stats(X, whis=1.5, bootstrap=None, labels=None): Notes ----- - Non-bootstrapping approach to confidence interval uses Gaussian-based - asymptotic approximation: + Non-bootstrapping approach to confidence interval uses Gaussian- + based asymptotic approximation: .. math:: @@ -1944,7 +1951,7 @@ def boxplot_stats(X, whis=1.5, bootstrap=None, labels=None): McGill, R., Tukey, J.W., and Larsen, W.A. (1978) "Variations of Boxplots", The American Statistician, 32:12-16. - ''' + """ def _bootstrap_median(data, N=5000): # determine 95% confidence intervals of the median @@ -2024,7 +2031,7 @@ def _compute_conf_interval(data, med, iqr, bootstrap): # interquartile range stats['iqr'] = q3 - q1 - if stats['iqr'] == 0: + if stats['iqr'] == 0 and autorange: whis = 'range' # conf. interval around median diff --git a/lib/matplotlib/tests/baseline_images/test_axes/boxplot_autorange_false_whiskers.png b/lib/matplotlib/tests/baseline_images/test_axes/boxplot_autorange_false_whiskers.png new file mode 100644 index 0000000000000000000000000000000000000000..788c38e8effa13844ffa41e93c6e4543322c695e GIT binary patch literal 6516 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 U1YZh(JB1+YGj`^s-+5mDH>^(KB>(^b literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_axes/boxplot_autorange_whiskers.png b/lib/matplotlib/tests/baseline_images/test_axes/boxplot_autorange_true_whiskers.png similarity index 100% rename from lib/matplotlib/tests/baseline_images/test_axes/boxplot_autorange_whiskers.png rename to lib/matplotlib/tests/baseline_images/test_axes/boxplot_autorange_true_whiskers.png diff --git a/lib/matplotlib/tests/baseline_images/test_axes/boxplot_autorange_whiskers.pdf b/lib/matplotlib/tests/baseline_images/test_axes/boxplot_autorange_whiskers.pdf deleted file mode 100644 index 933a067b2d06dde01c8e096bf08e4887318fcf32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4809 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py index 46e576986989..110a0b9db43a 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -1782,14 +1782,22 @@ def test_boxplot_sym(): ax.set_ylim((-30, 30)) -@image_comparison(baseline_images=['boxplot_autorange_whiskers']) +@image_comparison( + baseline_images=['boxplot_autorange_false_whiskers', + 'boxplot_autorange_true_whiskers'], + extensions=['png'], +) def test_boxplot_autorange_whiskers(): x = np.ones(140) x = np.hstack([0, x, 2]) - fig, ax = plt.subplots() - - ax.boxplot([x, x], bootstrap=10000, notch=1) - ax.set_ylim((-5, 5)) + + fig1, ax1 = plt.subplots() + ax1.boxplot([x, x], bootstrap=10000, notch=1) + ax1.set_ylim((-5, 5)) + + fig2, ax2 = plt.subplots() + ax2.boxplot([x, x], bootstrap=10000, notch=1, autorange=True) + ax2.set_ylim((-5, 5)) def _rc_test_bxp_helper(ax, rc_dict): x = np.linspace(-7, 7, 140) diff --git a/lib/matplotlib/tests/test_cbook.py b/lib/matplotlib/tests/test_cbook.py index b7d2e62f1aa5..f80af5906231 100644 --- a/lib/matplotlib/tests/test_cbook.py +++ b/lib/matplotlib/tests/test_cbook.py @@ -265,6 +265,20 @@ def test_bad_dims(self): data = np.random.normal(size=(34, 34, 34)) results = cbook.boxplot_stats(data) + def test_boxplot_stats_autorange_false(self): + x = np.zeros(shape=140) + x = np.hstack([-25, x, 25]) + bstats_false = cbook.boxplot_stats(x, autorange=False) + bstats_true = cbook.boxplot_stats(x, autorange=True) + + assert_equal(bstats_false[0]['whislo'], 0) + assert_equal(bstats_false[0]['whishi'], 0) + assert_array_almost_equal(bstats_false[0]['fliers'], [-25, 25]) + + assert_equal(bstats_true[0]['whislo'], -25) + assert_equal(bstats_true[0]['whishi'], 25) + assert_array_almost_equal(bstats_true[0]['fliers'], []) + class Test_callback_registry(object): def setup(self): From c78ca184658096d741a7e4da8f8df6815721f116 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Wed, 16 Mar 2016 15:02:45 -0400 Subject: [PATCH 08/11] Merge pull request #6158 from has2k1/fix-pandas-iterables Fix: pandas series of strings Conflicts: lib/matplotlib/collections.py Manually merged changes --- lib/matplotlib/cbook.py | 11 +++++++++++ lib/matplotlib/collections.py | 2 +- lib/matplotlib/colors.py | 3 ++- lib/matplotlib/tests/test_cbook.py | 8 ++++++++ lib/matplotlib/tests/test_collections.py | 2 ++ lib/matplotlib/tests/test_colors.py | 18 ++++++++++++++++++ 6 files changed, 42 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/cbook.py b/lib/matplotlib/cbook.py index a0c2223bd04b..c57d7a1f0214 100644 --- a/lib/matplotlib/cbook.py +++ b/lib/matplotlib/cbook.py @@ -728,6 +728,17 @@ def is_sequence_of_strings(obj): return True +def is_hashable(obj): + """ + Returns true if *obj* can be hashed + """ + try: + hash(obj) + except TypeError: + return False + return True + + def is_writable_file_like(obj): 'return true if *obj* looks like a file object with a *write* method' return hasattr(obj, 'write') and six.callable(obj.write) diff --git a/lib/matplotlib/collections.py b/lib/matplotlib/collections.py index 6a3f0c735d44..ecc231a9f98e 100644 --- a/lib/matplotlib/collections.py +++ b/lib/matplotlib/collections.py @@ -520,7 +520,7 @@ def set_linestyle(self, ls): """ try: dashd = backend_bases.GraphicsContextBase.dashd - if cbook.is_string_like(ls): + if cbook.is_string_like(ls) and cbook.is_hashable(ls): ls = cbook.ls_mapper.get(ls, ls) if ls in dashd: dashes = [dashd[ls]] diff --git a/lib/matplotlib/colors.py b/lib/matplotlib/colors.py index c0ae2454085f..e2dfeb6059e8 100644 --- a/lib/matplotlib/colors.py +++ b/lib/matplotlib/colors.py @@ -821,7 +821,8 @@ def __init__(self, colors, name='from_list', N=None): if N is None: N = len(self.colors) else: - if cbook.is_string_like(self.colors): + if (cbook.is_string_like(self.colors) and + cbook.is_hashable(self.colors)): self.colors = [self.colors] * N self.monochrome = True elif cbook.iterable(self.colors): diff --git a/lib/matplotlib/tests/test_cbook.py b/lib/matplotlib/tests/test_cbook.py index f80af5906231..26d96e6dc97c 100644 --- a/lib/matplotlib/tests/test_cbook.py +++ b/lib/matplotlib/tests/test_cbook.py @@ -48,6 +48,14 @@ def test_is_sequence_of_strings(): assert cbook.is_sequence_of_strings(y) +def test_is_hashable(): + s = 'string' + assert cbook.is_hashable(s) + + lst = ['list', 'of', 'stings'] + assert not cbook.is_hashable(lst) + + def test_restrict_dict(): d = {'foo': 'bar', 1: 2} d1 = cbook.restrict_dict(d, ['foo', 1]) diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py index 23cc507d0447..5bffd9172ff9 100644 --- a/lib/matplotlib/tests/test_collections.py +++ b/lib/matplotlib/tests/test_collections.py @@ -629,11 +629,13 @@ def test_pandas_indexing(): index = [11, 12, 13] ec = fc = pd.Series(['red', 'blue', 'green'], index=index) lw = pd.Series([1, 2, 3], index=index) + ls = pd.Series(['solid', 'dashed', 'dashdot'], index=index) aa = pd.Series([True, False, True], index=index) Collection(edgecolors=ec) Collection(facecolors=fc) Collection(linewidths=lw) + Collection(linestyles=ls) Collection(antialiaseds=aa) diff --git a/lib/matplotlib/tests/test_colors.py b/lib/matplotlib/tests/test_colors.py index b2b7b60658af..1f91179a0145 100644 --- a/lib/matplotlib/tests/test_colors.py +++ b/lib/matplotlib/tests/test_colors.py @@ -6,9 +6,11 @@ from distutils.version import LooseVersion as V from nose.tools import assert_raises, assert_equal, assert_true +from nose.tools import assert_sequence_equal import numpy as np from numpy.testing.utils import assert_array_equal, assert_array_almost_equal +from nose.plugins.skip import SkipTest import matplotlib.colors as mcolors import matplotlib.cm as cm @@ -558,6 +560,22 @@ def _azimuth2math(azimuth, elevation): return theta, phi +def test_pandas_iterable(): + try: + import pandas as pd + except ImportError: + raise SkipTest("Pandas not installed") + + # Using a list or series yields equivalent + # color maps, i.e the series isn't seen as + # a single color + lst = ['red', 'blue', 'green'] + s = pd.Series(lst) + cm1 = mcolors.ListedColormap(lst, N=5) + cm2 = mcolors.ListedColormap(s, N=5) + assert_sequence_equal(cm1.colors, cm2.colors) + + if __name__ == '__main__': import nose nose.runmodule(argv=['-s', '--with-doctest'], exit=False) From 7f5ae1faeba471ebeadfab7700a949354cd9e19b Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Thu, 17 Mar 2016 13:00:14 -0400 Subject: [PATCH 09/11] MNT: check PySide, PyQt4, or PyQt5 are imported If PySide, PyQt4, or PyQt5 are imported do not consult rcparams or ENV variable to decide which backend to use. This is a case where ignoring user input is sensible because the Qt bindings are mutually exclusive and attempting to import a second binding will fail. This can result in stand-alone scripts / mpl embeddings which are dependent on the rcparams to function correctly. Importing a specific Qt binding is stronger signal of user intent that either of the other two configuration options and should take precedence. closes #6164 --- lib/matplotlib/backends/qt_compat.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/backends/qt_compat.py b/lib/matplotlib/backends/qt_compat.py index 67d0687a7ca7..2ac002b868a8 100644 --- a/lib/matplotlib/backends/qt_compat.py +++ b/lib/matplotlib/backends/qt_compat.py @@ -42,7 +42,23 @@ QT_API = None -if (QT_API_ENV is not None): +# check if any binding is already imported, if so silently ignore the +# rcparams/ENV settings and use what ever is already imported. +if 'PySide' in sys.modules: + # user has imported PySide before importing mpl + QT_API = QT_API_PYSIDE + +if 'PyQt4' in sys.modules: + # user has imported PyQt4 before importing mpl + # this case also handles the PyQt4v2 case as once sip is imported + # the API versions can not be changed so do not try + QT_API = QT_API_PYQT + +if 'PyQt5' in sys.modules: + # the user has imported PyQt5 before importing mpl + QT_API = QT_API_PYQT5 + +if (QT_API_ENV is not None) and QT_API is None: try: QT_ENV_MAJOR_VERSION = ETS[QT_API_ENV][1] except KeyError: From f43a30df48a4df09ef331fb0978a220d321c8a59 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Thu, 17 Mar 2016 13:40:22 -0400 Subject: [PATCH 10/11] MNT: simplify fallback Qt behavior A check was added change the fall-back behavior if the backend was not set to PyQt{4,5}, but mpl was being embedded in a larger Qt application. The previous commit handles the cases where Qt bindings are already imported earlier in the module so the check here can be removed. --- lib/matplotlib/backends/qt_compat.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/lib/matplotlib/backends/qt_compat.py b/lib/matplotlib/backends/qt_compat.py index 2ac002b868a8..0546bdc7b1e1 100644 --- a/lib/matplotlib/backends/qt_compat.py +++ b/lib/matplotlib/backends/qt_compat.py @@ -77,15 +77,12 @@ elif rcParams['backend'] == 'Qt4Agg': QT_API = rcParams['backend.qt4'] else: - # A different backend was specified, but we still got here because a Qt - # related file was imported. This is allowed, so lets try and guess - # what we should be using. - if "PyQt4" in sys.modules or "PySide" in sys.modules: - # PyQt4 or PySide is actually used. - QT_API = rcParams['backend.qt4'] - else: - # This is a fallback: PyQt5 - QT_API = rcParams['backend.qt5'] + # A non-Qt backend was specified, no version of the Qt + # bindings is imported, but we still got here because a Qt + # related file was imported. This is allowed, fall back to Qt5 + # using which ever binding the rparams ask for. + + QT_API = rcParams['backend.qt5'] # We will define an appropriate wrapper for the differing versions # of file dialog. From a0c975924461c8fda629e04205b18a8ed18c5b65 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Thu, 17 Mar 2016 15:45:51 -0400 Subject: [PATCH 11/11] TST: conditionally import assert_sequence_equal This is not available in the version of nose available for py2.6. --- lib/matplotlib/tests/test_colors.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/tests/test_colors.py b/lib/matplotlib/tests/test_colors.py index 1f91179a0145..94cf63d5fdcc 100644 --- a/lib/matplotlib/tests/test_colors.py +++ b/lib/matplotlib/tests/test_colors.py @@ -6,7 +6,12 @@ from distutils.version import LooseVersion as V from nose.tools import assert_raises, assert_equal, assert_true -from nose.tools import assert_sequence_equal + +try: + # this is not available in nose + py2.6 + from nose.tools import assert_sequence_equal +except ImportError: + assert_sequence_equal = None import numpy as np from numpy.testing.utils import assert_array_equal, assert_array_almost_equal @@ -565,7 +570,8 @@ def test_pandas_iterable(): import pandas as pd except ImportError: raise SkipTest("Pandas not installed") - + if assert_sequence_equal is None: + raise SkipTest("nose lacks required function") # Using a list or series yields equivalent # color maps, i.e the series isn't seen as # a single color