From e903a0c98fcde55ba6ee6432a57d3069a29dbc92 Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 13:09:41 -0700 Subject: [PATCH 01/15] new function for plotting positions --- .../test_viz/test_probplot_pp_bestfit.png | Bin 20528 -> 20977 bytes .../test_viz/test_probplot_prob.png | Bin 16964 -> 17882 bytes .../test_viz/test_probplot_prob_bestfit.png | Bin 24919 -> 26483 bytes .../test_probplot_prob_bestfit_probax_y.png | Bin 30535 -> 30683 bytes .../test_viz/test_probplot_prob_probax_y.png | Bin 22915 -> 22609 bytes probscale/viz.py | 38 ++++++++++++++++-- 6 files changed, 35 insertions(+), 3 deletions(-) diff --git a/probscale/tests/baseline_images/test_viz/test_probplot_pp_bestfit.png b/probscale/tests/baseline_images/test_viz/test_probplot_pp_bestfit.png index e4f424eeda6ad94567bab7d2c46628b5ca2e1efd..fc82a2c206bcaa6cafe81e32622757caca28c697 100644 GIT binary patch literal 20977 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

0-|&ysfZ|2-lPH|0s;oz9Rdo{AQI9@ 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 H?8*NDcA3_g diff --git a/probscale/tests/baseline_images/test_viz/test_probplot_prob.png b/probscale/tests/baseline_images/test_viz/test_probplot_prob.png index cef8ac7c9efdd425c90195c568df00059b4ae7da..73286501368f6b5c6fb8c94d58de4f4f1ec6e570 100644 GIT binary patch literal 17882 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 (y;=KT)$#i;+V&1%giBZJP6m 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

OJ`}|l5#=I+_si|LFHh`~i{HO?yMjf=dYqgyQ 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 BEy4f* diff --git a/probscale/tests/baseline_images/test_viz/test_probplot_prob_bestfit_probax_y.png b/probscale/tests/baseline_images/test_viz/test_probplot_prob_bestfit_probax_y.png index 246f6e901eb7e7d91873a9782c0764c9d8cd9be7..3cee1227c825d74d66200e9595839ee3fe32b52f 100644 GIT binary patch literal 30683 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 LZ^_)e@8o|0=m5!> literal 30535 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

0eoQMwJ225k^bt1l)ZaTH3$$tTF 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

1>hTSDk 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

EPF(vv?9-2G^(dh0kq==e9 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 F{SSk{xfuWe diff --git a/probscale/viz.py b/probscale/viz.py index 1da5b93..2047868 100644 --- a/probscale/viz.py +++ b/probscale/viz.py @@ -1,6 +1,5 @@ import numpy from matplotlib import pyplot -from scipy import stats from .probscale import _minimal_norm from . import validate @@ -67,13 +66,14 @@ def probplot(data, ax=None, axtype='prob', probax='x', axtype = validate.axis_type(axtype) # compute the plotting positions and sort the data - qntls, datavals = stats.probplot(data, fit=False) + probs, datavals = _plot_pos(data) + qntls = _minimal_norm.ppf(probs) # determine how the probability values should be expressed if axtype == 'qq': probvals = qntls else: - probvals = stats.norm.cdf(qntls) * 100 + probvals = probs * 100 # set up x, y, Axes for probabilities on the x if probax == 'x': @@ -130,6 +130,38 @@ def probplot(data, ax=None, axtype='prob', probax='x', return fig +def _plot_pos(data, postype='cunnane', alpha=None, beta=None): + pos_params = { + 'type 4': (0, 1), + 'type 5': (0.5, 0.5), + 'type 6': (0, 0), + 'type 7': (1, 1), + 'type 8': (1/3., 1/3.), + 'type 9': (3/8., 3/8.), + 'weibull': (0, 0), + 'median': (0.3175, 0.3175), + 'apl': (0.35, 0.35), + 'pwm': (0.35, 0.35), + 'blom': (0.375, 0.375), + 'hazen': (0.5, 0.5), + 'cunnane': (0.4, 0.4), + 'gringorten': (0.44, 0.44), # Gumble + } + + if alpha is None and beta is None: + alpha, beta = pos_params.get(postype.lower(), pos_params['cunnane']) + + data = numpy.asarray(data, dtype=float).flatten() + n = data.shape[0] + pos = numpy.empty_like(data) + pos[n:] = 0 + + sorted_index = data.argsort() + pos[sorted_index[:n]] = (numpy.arange(1, n+1) - alpha) / (n + 1.0 - alpha - beta) + + return pos[sorted_index], data[sorted_index] + + def _fit_line(x, y, xhat=None, fitprobs=None, fitlogs=None, dist=None): """ Fits a line to x-y data in various forms (linear, log, prob scales). From 1269c5bd9e62d9abef5edb3871ef579efa028b19 Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 13:13:51 -0700 Subject: [PATCH 02/15] remove scipy dependency --- .travis.yml | 2 +- conda.recipe/meta.yaml | 3 +- probscale/tests/test_probscale.py | 7 ++- probscale/tests/test_viz.py | 83 +++++++++++++++++-------------- probscale/viz.py | 11 ++-- requirements.txt | 1 - setup.py | 2 +- 7 files changed, 60 insertions(+), 49 deletions(-) diff --git a/.travis.yml b/.travis.yml index dd6bafe..7ba725a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,7 +29,7 @@ install: - conda create --yes -n test python=$TRAVIS_PYTHON_VERSION - source activate test - - conda install --yes numpy nose scipy matplotlib coverage docopt requests pyyaml + - conda install --yes numpy nose matplotlib coverage docopt requests pyyaml - pip install coveralls - pip install . diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml index 6e54fcc..d5495fd 100644 --- a/conda.recipe/meta.yaml +++ b/conda.recipe/meta.yaml @@ -17,13 +17,11 @@ requirements: - python - numpy - matplotlib - - scipy run: - python - numpy - matplotlib - - scipy test: imports: @@ -34,6 +32,7 @@ test: requires: - nose + - scipy about: home: http://phobson.github.io/mpl-probscale/ diff --git a/probscale/tests/test_probscale.py b/probscale/tests/test_probscale.py index b5184ac..e70d0e8 100644 --- a/probscale/tests/test_probscale.py +++ b/probscale/tests/test_probscale.py @@ -3,7 +3,11 @@ import numpy as np import matplotlib.pyplot as plt -from scipy import stats + +try: + from scipy import stats +except: + stats = None from matplotlib.testing.decorators import image_comparison, cleanup import nose.tools as nt @@ -91,6 +95,7 @@ def test_the_scale_not_as_pct(): @image_comparison(baseline_images=['test_the_scale_beta'], extensions=['png']) +@nptest.dec.skipif(stats is None) def test_the_scale_beta(): fig, ax = plt.subplots(figsize=(4, 8)) ax.set_yscale('prob', as_pct=True, dist=stats.beta(3, 2)) diff --git a/probscale/tests/test_viz.py b/probscale/tests/test_viz.py index a15184d..226b2cc 100644 --- a/probscale/tests/test_viz.py +++ b/probscale/tests/test_viz.py @@ -1,20 +1,18 @@ -import matplotlib +import numpy +import matplotlib matplotlib.use('agg') - -import numpy as np import matplotlib.pyplot as plt -from scipy import stats import nose.tools as nt import numpy.testing as nptest from matplotlib.testing.decorators import image_comparison, cleanup from probscale import viz - +from probscale.probscale import _minimal_norm @nt.nottest def setup_plot_data(): - data = np.array([ + data = numpy.array([ 3.113, 3.606, 4.046, 4.046, 4.710, 6.140, 6.978, 2.000, 4.200, 4.620, 5.570, 5.660, 5.860, 6.650, 6.780, 6.790, 7.500, 7.500, 7.500, 8.630, 8.710, @@ -26,7 +24,7 @@ def setup_plot_data(): class Test__fit_line(object): def setup(self): - self.data = np.array([ + self.data = numpy.array([ 2.00, 4.0 , 4.62, 5.00, 5.00, 5.50, 5.57, 5.66, 5.75, 5.86, 6.65, 6.78, 6.79, 7.50, 7.50, 7.50, 8.63, 8.71, 8.99, 9.50, 9.50, 9.85, 10.82, 11.00, @@ -34,7 +32,7 @@ def setup(self): 19.64, 20.18, 22.97 ]) - self.zscores = np.array([ + self.zscores = numpy.array([ -2.06188401, -1.66883254, -1.4335397 , -1.25837339, -1.11509471, -0.99166098, -0.8817426 , -0.78156696, -0.68868392, -0.60139747, -0.51847288, -0.4389725 , -0.36215721, -0.28742406, -0.21426459, @@ -44,9 +42,9 @@ def setup(self): 1.11509471, 1.25837339, 1.43353970, 1.66883254, 2.06188401 ]) - self.probs = stats.norm.cdf(self.zscores) * 100. + self.probs = _minimal_norm.cdf(self.zscores) * 100. - self.y = np.array([ + self.y = numpy.array([ 0.07323274, 0.12319301, 0.16771455, 0.1779695 , 0.21840761, 0.25757016, 0.2740265 , 0.40868106, 0.44872637, 0.5367353 , 0.55169933, 0.56211726, 0.62375442, 0.66631353, 0.68454978, @@ -56,18 +54,18 @@ def setup(self): 3.23039631, 4.23953492, 4.25892247, 4.5834766 , 6.53100725 ]) - self.known_y_linlin = np.array([-0.896506, 21.12622]) - self.known_y_linlog = np.array([2.801908, 27.649589]) - self.known_y_linprob = np.array([8.491444, 98.528266]) - self.known_y_loglin = np.array([-2.57620461, 1.66767934]) - self.known_y_loglog = np.array([ 0.0468154, 5.73261406]) - self.known_y_logprob = np.array([0.492579, 95.233708]) - self.known_y_problin = np.array([-0.887084, 21.116798]) - self.known_y_problog = np.array([2.804758, 27.621489]) - self.known_y_probprob = np.array([1.96093902, 98.03906098]) + self.known_y_linlin = numpy.array([-0.896506, 21.12622]) + self.known_y_linlog = numpy.array([2.801908, 27.649589]) + self.known_y_linprob = numpy.array([8.47617988, 98.53407669]) + self.known_y_loglin = numpy.array([-2.57620461, 1.66767934]) + self.known_y_loglog = numpy.array([0.0468154, 5.73261406]) + self.known_y_logprob = numpy.array([0.489822, 95.246099]) + self.known_y_problin = numpy.array([-0.896506, 21.12622]) + self.known_y_problog = numpy.array([2.801908, 27.649589]) + self.known_y_probprob = numpy.array([1.944938, 98.055062]) self.custom_xhat = [-2, -1, 0, 1, 2] - self.known_custom_yhat = np.array([-0.56601826, 4.77441944, 10.11485714, + self.known_custom_yhat = numpy.array([-0.56601826, 4.77441944, 10.11485714, 15.45529485, 20.79573255]) def test_xlinear_ylinear(self): @@ -75,66 +73,75 @@ def test_xlinear_ylinear(self): x, y = self.zscores, self.data x_, y_, res = viz._fit_line(x, y, **scales) nptest.assert_array_almost_equal(y_, self.known_y_linlin) - nt.assert_true(isinstance(res, np.ndarray)) + nt.assert_true(isinstance(res, numpy.ndarray)) def test_xlinear_ylog(self): scales = {'fitlogs': 'y', 'fitprobs': None} x, y = self.zscores, self.data x_, y_, res = viz._fit_line(x, y, **scales) nptest.assert_array_almost_equal(y_, self.known_y_linlog) - nt.assert_true(isinstance(res, np.ndarray)) + nt.assert_true(isinstance(res, numpy.ndarray)) def test_xlinear_yprob(self): scales = {'fitlogs': None, 'fitprobs': 'y'} x, y = self.data, self.probs x_, y_, res = viz._fit_line(x, y, **scales) nptest.assert_array_almost_equal(y_, self.known_y_linprob) - nt.assert_true(isinstance(res, np.ndarray)) + nt.assert_true(isinstance(res, numpy.ndarray)) def test_xlog_ylinear(self): scales = {'fitlogs': 'x', 'fitprobs': None} x, y = self.data, self.zscores x_, y_, res = viz._fit_line(x, y, **scales) nptest.assert_array_almost_equal(y_, self.known_y_loglin) - nt.assert_true(isinstance(res, np.ndarray)) + nt.assert_true(isinstance(res, numpy.ndarray)) def test_xlog_ylog(self): scales = {'fitlogs': 'both', 'fitprobs': None} x, y = self.data, self.y x_, y_, res = viz._fit_line(x, y, **scales) nptest.assert_array_almost_equal(y_, self.known_y_loglog) - nt.assert_true(isinstance(res, np.ndarray)) + nt.assert_true(isinstance(res, numpy.ndarray)) def test_xlog_yprob(self): scales = {'fitlogs': 'x', 'fitprobs': 'y'} x, y = self.data, self.probs x_, y_, res = viz._fit_line(x, y, **scales) nptest.assert_array_almost_equal(y_, self.known_y_logprob) - nt.assert_true(isinstance(res, np.ndarray)) + nt.assert_true(isinstance(res, numpy.ndarray)) def test_xprob_ylinear(self): scales = {'fitlogs': None, 'fitprobs': 'x'} x, y = self.probs, self.data x_, y_, res = viz._fit_line(x, y, **scales) nptest.assert_array_almost_equal(y_, self.known_y_problin) - nt.assert_true(isinstance(res, np.ndarray)) + nt.assert_true(isinstance(res, numpy.ndarray)) def test_xprob_ylog(self): scales = {'fitlogs': 'y', 'fitprobs': 'x'} x, y = self.probs, self.data x_, y_, res = viz._fit_line(x, y, **scales) nptest.assert_array_almost_equal(y_, self.known_y_problog) - nt.assert_true(isinstance(res, np.ndarray)) + nt.assert_true(isinstance(res, numpy.ndarray)) def test_xprob_yprob(self): - z2, _y = stats.probplot(self.y, fit=False) - p2 = stats.norm.cdf(z2) * 100 + p2 = numpy.array([ + 1.94493789, 4.7424475 , 7.57359631, 10.40452018, + 13.23476893, 16.06435006, 18.89337556, 21.72197005, + 24.55024455, 27.37829018, 30.20617837, 33.03396313, + 35.86168383, 38.68936789, 41.51703325, 44.34469064, + 47.17234553, 50. , 52.82765447, 55.65530936, + 58.48296675, 61.31063211, 64.13831617, 66.96603687, + 69.79382163, 72.62170982, 75.44975545, 78.27802995, + 81.10662444, 83.93564994, 86.76523107, 89.59547982, + 92.42640369, 95.2575525 , 98.05506211 + ]) scales = {'fitlogs': None, 'fitprobs': 'both'} x, y = self.probs, p2, x_, y_, res = viz._fit_line(x, y, **scales) nptest.assert_array_almost_equal(y_, self.known_y_probprob) - nt.assert_true(isinstance(res, np.ndarray)) + nt.assert_true(isinstance(res, numpy.ndarray)) @nt.raises(ValueError) def test_bad_fitlogs(self): @@ -154,25 +161,25 @@ def test_custom_xhat(self): class Test__estimate_from_fit(object): def setup(self): - self.x = np.arange(1, 11, 0.5) + self.x = numpy.arange(1, 11, 0.5) self.slope = 2 self.intercept = 3.5 - self.known_ylinlin = np.array([ + self.known_ylinlin = numpy.array([ 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5 ]) - self.known_yloglin = np.array([ + self.known_yloglin = numpy.array([ 3.5 , 4.31093022, 4.88629436, 5.33258146, 5.69722458, 6.00552594, 6.27258872, 6.50815479, 6.71887582, 6.90949618, 7.08351894, 7.24360435, 7.3918203 , 7.52980604, 7.65888308, 7.78013233, 7.89444915, 8.0025836 , 8.10517019, 8.20275051 ]) - self.known_yloglog = np.array([ + self.known_yloglog = numpy.array([ 33.11545196, 74.50976691, 132.46180783, 206.97157474, 298.03906763, 405.66428649, 529.84723134, 670.58790216, 827.88629897, 1001.74242175, 1192.15627051, 1399.12784525, @@ -180,7 +187,7 @@ def setup(self): 2682.35160865, 2988.66953927, 3311.54519587, 3650.97857845 ]) - self.known_ylinlog = np.array([ + self.known_ylinlog = numpy.array([ 2.44691932e+02, 6.65141633e+02, 1.80804241e+03, 4.91476884e+03, 1.33597268e+04, 3.63155027e+04, 9.87157710e+04, 2.68337287e+05, 7.29416370e+05, @@ -208,10 +215,10 @@ def test_loglog(self): def test_linlog(self): ylinlog = viz._estimate_from_fit(self.x, self.slope, self.intercept, xlog=False, ylog=True) - percent_diff = np.abs(ylinlog - self.known_ylinlog) / self.known_ylinlog + percent_diff = numpy.abs(ylinlog - self.known_ylinlog) / self.known_ylinlog nptest.assert_array_almost_equal( percent_diff, - np.zeros(self.x.shape[0]), + numpy.zeros(self.x.shape[0]), decimal=5 ) diff --git a/probscale/viz.py b/probscale/viz.py index 2047868..6e082f3 100644 --- a/probscale/viz.py +++ b/probscale/viz.py @@ -181,17 +181,18 @@ def _fit_line(x, y, xhat=None, fitprobs=None, fitlogs=None, dist=None): Log transform = lambda x: numpy.log(x). Take care to not pass the same value to both ``fitlogs`` and ``figprobs`` as both transforms will be applied. - dist : scipy.stats distribution, optional - A fully-spec'd scipy.stats distribution such that ``dist.ppf`` - and ``dist.cdf`` can be called. If not provided, defaults to a - minimal implementation of scipt.stats.norm. + dist : distribution, optional + A fully-spec'd scipy.stats distribution-like object + such that ``dist.ppf`` and ``dist.cdf`` can be called. If not + provided, defaults to a minimal implementation of + scipt.stats.norm. Returns ------- xhat, yhat : numpy arrays Linear model estimates of ``x`` and ``y``. results : a statmodels result object - The object returned by statsmodels.OLS.fit() + The object returned by numpy.polyfit """ diff --git a/requirements.txt b/requirements.txt index 59149ac..aa094d9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,2 @@ -scipy numpy matplotlib diff --git a/setup.py b/setup.py index 814e1f8..893ceb9 100644 --- a/setup.py +++ b/setup.py @@ -28,7 +28,7 @@ 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', ] -INSTALL_REQUIRES = ['numpy', 'scipy', 'matplotlib'] +INSTALL_REQUIRES = ['numpy', 'matplotlib'] PACKAGE_DATA = { 'probscale.tests.test_probscale.baseline_images.test_probscale.test_viz': ['*png'], } From 7a09a785b8f9fdda9d740cbd40b6ecc212356b53 Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 13:33:40 -0700 Subject: [PATCH 03/15] add a travis build with scipy --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 7ba725a..fed3b72 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,9 @@ matrix: - python: 3.4 env: - COVERAGE=false + - python: 3.5 + env: + - COVERAGE=false - python: 3.5 env: - COVERAGE=true @@ -30,6 +33,7 @@ install: - conda create --yes -n test python=$TRAVIS_PYTHON_VERSION - source activate test - conda install --yes numpy nose matplotlib coverage docopt requests pyyaml + - if [ ${COVERAGE} = true ]; then conda install scipy --yes; fi - pip install coveralls - pip install . From 17237b109077bb10474b9a9c5f887404a4c0d8c8 Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 13:50:08 -0700 Subject: [PATCH 04/15] fix up some custom attrs of transforms --- .../test_probscale/test_the_scale_default.png | Bin 26372 -> 27065 bytes probscale/tests/test_transforms.py | 12 ++++++++++++ probscale/transforms.py | 8 +++++--- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/probscale/tests/baseline_images/test_probscale/test_the_scale_default.png b/probscale/tests/baseline_images/test_probscale/test_the_scale_default.png index ec1ab50b185c54439243cec19f1d57819db01073..fa22bfc1638a62a72f7856e525769034226fabcc 100644 GIT binary patch literal 27065 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 E0EYK_HUIzs literal 26372 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 diff --git a/probscale/tests/test_transforms.py b/probscale/tests/test_transforms.py index 7231f86..2067e2e 100644 --- a/probscale/tests/test_transforms.py +++ b/probscale/tests/test_transforms.py @@ -46,8 +46,20 @@ def setup(self): self.trans = transforms.ProbTransform(_minimal_norm) self.known_tras_na = -2.569150498 + def test_inverted(self): + inv_trans = self.trans.inverted() + nt.assert_equal(self.trans.dist, inv_trans.dist) + nt.assert_equal(self.trans.factor, inv_trans.factor) + nt.assert_equal(self.trans.nonpos, inv_trans.nonpos) + class Test_QuantileTransform(Mixin_Transform): def setup(self): self.trans = transforms.QuantileTransform(_minimal_norm) self.known_tras_na = 69.1464492 + + def test_inverted(self): + inv_trans = self.trans.inverted() + nt.assert_equal(self.trans.dist, inv_trans.dist) + nt.assert_equal(self.trans.factor, inv_trans.factor) + nt.assert_equal(self.trans.nonpos, inv_trans.nonpos) diff --git a/probscale/transforms.py b/probscale/transforms.py index ce90cf3..95f5e12 100644 --- a/probscale/transforms.py +++ b/probscale/transforms.py @@ -35,14 +35,16 @@ class _ProbTransformMixin(Transform): def __init__(self, dist, as_pct=True, nonpos='mask'): Transform.__init__(self) self.dist = dist - if as_pct: + self.as_pct = as_pct + self.nonpos = nonpos + if self.as_pct: self.factor = 100.0 else: self.factor = 1.0 - if nonpos == 'mask': + if self.nonpos == 'mask': self._handle_nonpos = _mask_non_positives - elif nonpos == 'clip': + elif self.nonpos == 'clip': self._handle_nonpos = _clip_non_positives else: raise ValueError("`nonpos` muse be either 'mask' or 'clip'") From 1908737c6ed21a0d0384f69ba348c2e84ff8749a Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 17:09:43 -0700 Subject: [PATCH 05/15] rename, test out-of-bounds handlers --- probscale/tests/test_transforms.py | 34 +++++++++++++++++++++++++++--- probscale/transforms.py | 12 ++++++----- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/probscale/tests/test_transforms.py b/probscale/tests/test_transforms.py index 2067e2e..0961b1b 100644 --- a/probscale/tests/test_transforms.py +++ b/probscale/tests/test_transforms.py @@ -1,12 +1,28 @@ +import numpy import matplotlib matplotlib.use('agg') import nose.tools as nt +import numpy.testing as nptest from probscale.probscale import _minimal_norm from probscale import transforms +def test__mask_out_of_bounds(): + x = [-0.1, 0, 0.1, 0.5, 0.9, 1.0, 1.1] + known = numpy.array([numpy.nan, numpy.nan, 0.1, 0.5, 0.9, numpy.nan, numpy.nan]) + result = transforms._mask_out_of_bounds(x) + nptest.assert_array_almost_equal(result, known) + + +def test__clip_out_of_bounds(): + x = [-0.1, 0, 0.1, 0.5, 0.9, 1.0, 1.1] + known = numpy.array([0.0, 0.0, 0.1, 0.5, 0.9, 1.0, 1.0]) + result = transforms._clip_out_of_bounds(x) + nptest.assert_array_almost_equal(result, known) + + class Mixin_Transform(object): known_input_dims = 1 known_output_dims = 1 @@ -35,16 +51,27 @@ def test_dist(self): def test_transform_non_affine(self): nt.assert_true(hasattr(self.trans, 'transform_non_affine')) - nt.assert_almost_equal(self.trans.transform_non_affine(0.5), self.known_tras_na) + nptest.assert_almost_equal(self.trans.transform_non_affine([0.5]), self.known_tras_na) def test_inverted(self): nt.assert_true(hasattr(self.trans, 'inverted')) + @nt.raises(ValueError) + def test_bad_non_pos(self): + self._trans(_minimal_norm, nonpos='junk') + + # def test_non_pos_default(self): + # x = [-0.1, 0, 0.1, 0.5, 0.99, 1, 1.1] + + def test_non_pos_clip(self): + self._trans(_minimal_norm, nonpos='clip') + class Test_ProbTransform(Mixin_Transform): def setup(self): + self._trans = transforms.ProbTransform self.trans = transforms.ProbTransform(_minimal_norm) - self.known_tras_na = -2.569150498 + self.known_tras_na = [-2.569150498] def test_inverted(self): inv_trans = self.trans.inverted() @@ -55,8 +82,9 @@ def test_inverted(self): class Test_QuantileTransform(Mixin_Transform): def setup(self): + self._trans = transforms.QuantileTransform self.trans = transforms.QuantileTransform(_minimal_norm) - self.known_tras_na = 69.1464492 + self.known_tras_na = [69.1464492] def test_inverted(self): inv_trans = self.trans.inverted() diff --git a/probscale/transforms.py b/probscale/transforms.py index 95f5e12..82868e5 100644 --- a/probscale/transforms.py +++ b/probscale/transforms.py @@ -2,19 +2,20 @@ from matplotlib.transforms import Transform -def _mask_non_positives(a): +def _mask_out_of_bounds(a): """ Return a Numpy array where all values outside ]0, 1[ are replaced with NaNs. If all values are inside ]0, 1[, the original array is returned. """ + a = numpy.array(a, float) mask = (a <= 0.0) | (a >= 1.0) if mask.any(): return numpy.where(mask, numpy.nan, a) return a -def _clip_non_positives(a): +def _clip_out_of_bounds(a): """ Return a Numpy array where all values outside ]0, 1[ are replaced with eps or 1 - eps. If all values are inside ]0, 1[ @@ -43,16 +44,17 @@ def __init__(self, dist, as_pct=True, nonpos='mask'): self.factor = 1.0 if self.nonpos == 'mask': - self._handle_nonpos = _mask_non_positives + self._handle_out_of_bounds = _mask_out_of_bounds elif self.nonpos == 'clip': - self._handle_nonpos = _clip_non_positives + self._handle_out_of_bounds = _clip_out_of_bounds else: raise ValueError("`nonpos` muse be either 'mask' or 'clip'") class ProbTransform(_ProbTransformMixin): def transform_non_affine(self, prob): - q = self.dist.ppf(prob / self.factor) + prob = self._handle_out_of_bounds(numpy.asarray(prob) / self.factor) + q = self.dist.ppf(prob) return q def inverted(self): From 062bdcc104265db1122ee3a85e65fa6ee28d68f9 Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 17:35:12 -0700 Subject: [PATCH 06/15] add tests for _plot_pos function --- probscale/tests/test_viz.py | 144 ++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) diff --git a/probscale/tests/test_viz.py b/probscale/tests/test_viz.py index 226b2cc..7400720 100644 --- a/probscale/tests/test_viz.py +++ b/probscale/tests/test_viz.py @@ -223,6 +223,150 @@ def test_linlog(self): ) +class Test_plotpos(object): + def setup(self): + self.data = numpy.arange(16) + + self.known_type4 = numpy.array([ + 0.0625, 0.125 , 0.1875, 0.25 , 0.3125, 0.375 , 0.4375, + 0.5 , 0.5625, 0.625 , 0.6875, 0.75 , 0.8125, 0.875 , + 0.9375, 1. + ]) + + self.known_type5 = numpy.array([ + 0.03125, 0.09375, 0.15625, 0.21875, 0.28125, 0.34375, + 0.40625, 0.46875, 0.53125, 0.59375, 0.65625, 0.71875, + 0.78125, 0.84375, 0.90625, 0.96875 + ]) + + self.known_type6 = numpy.array([ + 0.05882353, 0.11764706, 0.17647059, 0.23529412, 0.29411765, + 0.35294118, 0.41176471, 0.47058824, 0.52941176, 0.58823529, + 0.64705882, 0.70588235, 0.76470588, 0.82352941, 0.88235294, + 0.94117647 + ]) + + self.known_type7 = numpy.array([ + 0. , 0.06666667, 0.13333333, 0.2 , 0.26666667, + 0.33333333, 0.4 , 0.46666667, 0.53333333, 0.6 , + 0.66666667, 0.73333333, 0.8 , 0.86666667, 0.93333333, + 1. + ]) + + self.known_type8 = numpy.array([ + 0.04081633, 0.10204082, 0.16326531, 0.2244898 , 0.28571429, + 0.34693878, 0.40816327, 0.46938776, 0.53061224, 0.59183673, + 0.65306122, 0.71428571, 0.7755102 , 0.83673469, 0.89795918, + 0.95918367 + ]) + + self.known_type9 = numpy.array([ + 0.03846154, 0.1 , 0.16153846, 0.22307692, 0.28461538, + 0.34615385, 0.40769231, 0.46923077, 0.53076923, 0.59230769, + 0.65384615, 0.71538462, 0.77692308, 0.83846154, 0.9 , + 0.96153846 + ]) + + self.known_weibull = self.known_type6 + + self.known_median = numpy.array([ + 0.04170486, 0.10281088, 0.1639169 , 0.22502291, 0.28612893, + 0.34723495, 0.40834097, 0.46944699, 0.53055301, 0.59165903, + 0.65276505, 0.71387107, 0.77497709, 0.8360831 , 0.89718912, + 0.95829514 + ]) + + self.known_apl = numpy.array([ + 0.0398773 , 0.10122699, 0.16257669, 0.22392638, 0.28527607, + 0.34662577, 0.40797546, 0.46932515, 0.53067485, 0.59202454, + 0.65337423, 0.71472393, 0.77607362, 0.83742331, 0.89877301, + 0.9601227 + ]) + + self.known_pwm = self.known_apl + + self.known_blom = numpy.array([ + 0.03846154, 0.1 , 0.16153846, 0.22307692, 0.28461538, + 0.34615385, 0.40769231, 0.46923077, 0.53076923, 0.59230769, + 0.65384615, 0.71538462, 0.77692308, 0.83846154, 0.9 , + 0.96153846 + ]) + + self.known_hazen = self.known_type5 + + self.known_cunnane = numpy.array([ + 0.03703704, 0.09876543, 0.16049383, 0.22222222, 0.28395062, + 0.34567901, 0.40740741, 0.4691358 , 0.5308642 , 0.59259259, + 0.65432099, 0.71604938, 0.77777778, 0.83950617, 0.90123457, + 0.96296296 + ]) + + self.known_gringorten = numpy.array([ + 0.03473945, 0.09677419, 0.15880893, 0.22084367, 0.28287841, + 0.34491315, 0.40694789, 0.46898263, 0.53101737, 0.59305211, + 0.65508685, 0.71712159, 0.77915633, 0.84119107, 0.90322581, + 0.96526055 + ]) + + + def test_type4(self): + pp, yy = viz._plot_pos(self.data, postype='type 4') + nptest.assert_array_almost_equal(pp, self.known_type4) + + def test_type5(self): + pp, yy = viz._plot_pos(self.data, postype='type 5') + nptest.assert_array_almost_equal(pp, self.known_type5) + + def test_type6(self): + pp, yy = viz._plot_pos(self.data, postype='type 6') + nptest.assert_array_almost_equal(pp, self.known_type6) + + def test_type7(self): + pp, yy = viz._plot_pos(self.data, postype='type 7') + nptest.assert_array_almost_equal(pp, self.known_type7) + + def test_type8(self): + pp, yy = viz._plot_pos(self.data, postype='type 8') + nptest.assert_array_almost_equal(pp, self.known_type8) + + def test_type9(self): + pp, yy = viz._plot_pos(self.data, postype='type 9') + nptest.assert_array_almost_equal(pp, self.known_type9) + + def test_weibull(self): + pp, yy = viz._plot_pos(self.data, postype='weibull') + nptest.assert_array_almost_equal(pp, self.known_weibull) + + def test_median(self): + pp, yy = viz._plot_pos(self.data, postype='median') + nptest.assert_array_almost_equal(pp, self.known_median) + + def test_apl(self): + pp, yy = viz._plot_pos(self.data, postype='apl') + nptest.assert_array_almost_equal(pp, self.known_apl) + + def test_pwm(self): + pp, yy = viz._plot_pos(self.data, postype='pwm') + nptest.assert_array_almost_equal(pp, self.known_pwm) + + def test_blom(self): + pp, yy = viz._plot_pos(self.data, postype='blom') + nptest.assert_array_almost_equal(pp, self.known_blom) + + def test_hazen(self): + pp, yy = viz._plot_pos(self.data, postype='hazen') + nptest.assert_array_almost_equal(pp, self.known_hazen) + + def test_cunnane(self): + pp, yy = viz._plot_pos(self.data, postype='cunnane') + nptest.assert_array_almost_equal(pp, self.known_cunnane) + + def test_gringorten(self): + pp, yy = viz._plot_pos(self.data, postype='gringorten') + nptest.assert_array_almost_equal(pp, self.known_gringorten) + + + @image_comparison(baseline_images=['test_probplot_prob'], extensions=['png']) def test_probplot_prob(): fig, ax = plt.subplots() From 8b7295f0f23c22ac6ae9fa19aeb6a75a9c6fff9f Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 21:49:58 -0700 Subject: [PATCH 07/15] add function to validate extra kwarg dictionaries --- probscale/tests/test_validate.py | 8 ++++++++ probscale/validate.py | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/probscale/tests/test_validate.py b/probscale/tests/test_validate.py index 19d7fcf..7b91d38 100644 --- a/probscale/tests/test_validate.py +++ b/probscale/tests/test_validate.py @@ -70,3 +70,11 @@ def test_upper(self): nt.assert_equal('pp', validate.axis_type('PP')) nt.assert_equal('qq', validate.axis_type('QQ')) nt.assert_equal('prob', validate.axis_type('ProB')) + +class Test_other_options(object): + def test_None(self): + nt.assert_dict_equal(validate.other_options(None), {}) + + def test_dict(self): + x = {'a': 1, 'b': 'test'} + nt.assert_dict_equal(validate.other_options(x), x) \ No newline at end of file diff --git a/probscale/validate.py b/probscale/validate.py index 26e57d0..003611f 100644 --- a/probscale/validate.py +++ b/probscale/validate.py @@ -39,3 +39,7 @@ def axis_type(axtype): if axtype.lower() not in ['pp', 'qq', 'prob']: raise ValueError("invalid axtype: {}".format(axtype)) return axtype.lower() + + +def other_options(options): + return dict() if options is None else options.copy() \ No newline at end of file From d0e15ddef2f06d0b8e3abed9d3bb94d7fe68565b Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 21:50:45 -0700 Subject: [PATCH 08/15] finish tests and docs for plot_pos --- probscale/tests/test_validate.py | 1 + probscale/tests/test_viz.py | 41 ++++++----- probscale/viz.py | 112 ++++++++++++++++++++++++------- 3 files changed, 106 insertions(+), 48 deletions(-) diff --git a/probscale/tests/test_validate.py b/probscale/tests/test_validate.py index 7b91d38..ec7d1b5 100644 --- a/probscale/tests/test_validate.py +++ b/probscale/tests/test_validate.py @@ -71,6 +71,7 @@ def test_upper(self): nt.assert_equal('qq', validate.axis_type('QQ')) nt.assert_equal('prob', validate.axis_type('ProB')) + class Test_other_options(object): def test_None(self): nt.assert_dict_equal(validate.other_options(None), {}) diff --git a/probscale/tests/test_viz.py b/probscale/tests/test_viz.py index 7400720..ce7b755 100644 --- a/probscale/tests/test_viz.py +++ b/probscale/tests/test_viz.py @@ -223,7 +223,7 @@ def test_linlog(self): ) -class Test_plotpos(object): +class Test_plot_pos(object): def setup(self): self.data = numpy.arange(16) @@ -285,12 +285,7 @@ def setup(self): self.known_pwm = self.known_apl - self.known_blom = numpy.array([ - 0.03846154, 0.1 , 0.16153846, 0.22307692, 0.28461538, - 0.34615385, 0.40769231, 0.46923077, 0.53076923, 0.59230769, - 0.65384615, 0.71538462, 0.77692308, 0.83846154, 0.9 , - 0.96153846 - ]) + self.known_blom = self.known_type9 self.known_hazen = self.known_type5 @@ -308,63 +303,65 @@ def setup(self): 0.96526055 ]) - def test_type4(self): - pp, yy = viz._plot_pos(self.data, postype='type 4') + pp, yy = viz.plot_pos(self.data, postype='type 4') nptest.assert_array_almost_equal(pp, self.known_type4) def test_type5(self): - pp, yy = viz._plot_pos(self.data, postype='type 5') + pp, yy = viz.plot_pos(self.data, postype='type 5') nptest.assert_array_almost_equal(pp, self.known_type5) def test_type6(self): - pp, yy = viz._plot_pos(self.data, postype='type 6') + pp, yy = viz.plot_pos(self.data, postype='type 6') nptest.assert_array_almost_equal(pp, self.known_type6) def test_type7(self): - pp, yy = viz._plot_pos(self.data, postype='type 7') + pp, yy = viz.plot_pos(self.data, postype='type 7') nptest.assert_array_almost_equal(pp, self.known_type7) def test_type8(self): - pp, yy = viz._plot_pos(self.data, postype='type 8') + pp, yy = viz.plot_pos(self.data, postype='type 8') nptest.assert_array_almost_equal(pp, self.known_type8) def test_type9(self): - pp, yy = viz._plot_pos(self.data, postype='type 9') + pp, yy = viz.plot_pos(self.data, postype='type 9') nptest.assert_array_almost_equal(pp, self.known_type9) def test_weibull(self): - pp, yy = viz._plot_pos(self.data, postype='weibull') + pp, yy = viz.plot_pos(self.data, postype='weibull') nptest.assert_array_almost_equal(pp, self.known_weibull) def test_median(self): - pp, yy = viz._plot_pos(self.data, postype='median') + pp, yy = viz.plot_pos(self.data, postype='median') nptest.assert_array_almost_equal(pp, self.known_median) def test_apl(self): - pp, yy = viz._plot_pos(self.data, postype='apl') + pp, yy = viz.plot_pos(self.data, postype='apl') nptest.assert_array_almost_equal(pp, self.known_apl) def test_pwm(self): - pp, yy = viz._plot_pos(self.data, postype='pwm') + pp, yy = viz.plot_pos(self.data, postype='pwm') nptest.assert_array_almost_equal(pp, self.known_pwm) def test_blom(self): - pp, yy = viz._plot_pos(self.data, postype='blom') + pp, yy = viz.plot_pos(self.data, postype='blom') nptest.assert_array_almost_equal(pp, self.known_blom) def test_hazen(self): - pp, yy = viz._plot_pos(self.data, postype='hazen') + pp, yy = viz.plot_pos(self.data, postype='hazen') nptest.assert_array_almost_equal(pp, self.known_hazen) def test_cunnane(self): - pp, yy = viz._plot_pos(self.data, postype='cunnane') + pp, yy = viz.plot_pos(self.data, postype='cunnane') nptest.assert_array_almost_equal(pp, self.known_cunnane) def test_gringorten(self): - pp, yy = viz._plot_pos(self.data, postype='gringorten') + pp, yy = viz.plot_pos(self.data, postype='gringorten') nptest.assert_array_almost_equal(pp, self.known_gringorten) + @nt.raises(KeyError) + def test_bad_postype(self): + viz.plot_pos(self.data, postype='junk') @image_comparison(baseline_images=['test_probplot_prob'], extensions=['png']) diff --git a/probscale/viz.py b/probscale/viz.py index 6e082f3..08c6b86 100644 --- a/probscale/viz.py +++ b/probscale/viz.py @@ -8,7 +8,7 @@ def probplot(data, ax=None, axtype='prob', probax='x', otherscale='linear', xlabel=None, ylabel=None, bestfit=False, return_results=False, - scatter_kws=None, line_kws=None): + scatter_kws=None, line_kws=None, pp_kws=None): """ Probability, percentile, and quantile plots. Parameters @@ -46,11 +46,17 @@ def probplot(data, ax=None, axtype='prob', probax='x', The figure on which the plot was drawn. result : dictionary of linear fit results, optional Keys are: - - q: array of quantiles - - x, y: arrays of data passed to function - - xhat, yhat: arrays of modeled data plotted in best-fit line - - res: array of coeffcients of the best-fit line. - + - q : array of quantiles + - x, y : arrays of data passed to function + - xhat, yhat : arrays of modeled data plotted in best-fit line + - res : array of coeffcients of the best-fit line. + + See also + -------- + viz.plot_plos + numpy.polyfit + scipy.stats.probplot + scipy.stats.mstats.plotting_positions """ @@ -59,14 +65,15 @@ def probplot(data, ax=None, axtype='prob', probax='x', probax = validate.axis_name(probax, 'x') # default values for plotting options - scatter_kws = {} if scatter_kws is None else scatter_kws.copy() - line_kws = {} if line_kws is None else line_kws.copy() + scatter_kws = validate.other_options(scatter_kws) + line_kws = validate.other_options(line_kws) + pp_kws = validate.other_options(pp_kws) # check axtype axtype = validate.axis_type(axtype) # compute the plotting positions and sort the data - probs, datavals = _plot_pos(data) + probs, datavals = plot_pos(data, **pp_kws) qntls = _minimal_norm.ppf(probs) # determine how the probability values should be expressed @@ -125,31 +132,84 @@ def probplot(data, ax=None, axtype='prob', probax='x', # return the figure and maybe results of the best-fit if return_results: - return fig, dict(q=qntls, x=x, y=y, xhat=xhat, yhat=yhat, res=modelres) + results = dict(q=qntls, x=x, y=y, xhat=xhat, yhat=yhat, res=modelres) + return fig, results else: return fig -def _plot_pos(data, postype='cunnane', alpha=None, beta=None): +def plot_pos(data, postype=None, alpha=None, beta=None): + """ + Compute the plotting positions for a dataset. Heavily borrows from + ``scipy.stats.mstats.plotting_positions``. + + A plottiting position is defined as: ``i-alpha)/(n+1-alpha-beta)`` + where: + + - ``i`` is the rank order + - ``n`` is the size of the dataset + - ``alpha`` and ``beta`` are parameters used to adjust the + positions. + + The values of ``alpha`` and ``beta`` can be explicitly set. Typical + values can also be access via the ``postype`` parameter. Available + ``postype`` values are: + + - "type 4" : (0, 1), linear interpolation of the empirical CDF + - "type 5" pr "hazen": (0.5, 0.5), piece-wise linear + interpolation. + - "type 6" or "weibull" : (0, 0) Weibull plotting positions, + Unbiased exceedance probability for all distributions. This is + the default value. + - "type 7" : (1, 1), the default values in R + - "type 8" : (1/3, 1/3) + - "type 9" or "blom" : approximately unbiased positions if the + data are normall distributed. + - "median" : (0.3175, 0.3175), Median exceedance probabilities + for all distributions (used in ``scipy.stats.probplot``) + - "apl" or "pwm" : (0.35, 0.35), used with probability-weighted + moments. + - "cunnane" : (0.4, 0.4), nearly unbiased quantiles for normally + distributed data. + - "gringorten" : (0.44, 0.44), used for Gumble distributions. + + Parameters + ---------- + data : array-like + The values whose plotting positions need to be computed. + postype : string, optional (default: "cunnane") + alpha, beta : float, optional + Custom plotting position parameters is the options available + through the `postype` parameter are insufficient. + + References + ---------- + http://artax.karlin.mff.cuni.cz/r-help/library/lmomco/html/pp.html + http://astrostatistics.psu.edu/su07/R/html/stats/html/quantile.html + http://docs.scipy.org/doc/scipy-0.17.0/reference/generated/scipy.stats.probplot.html + http://docs.scipy.org/doc/scipy-0.17.0/reference/generated/scipy.stats.mstats.plotting_positions.html + + """ + pos_params = { - 'type 4': (0, 1), - 'type 5': (0.5, 0.5), - 'type 6': (0, 0), - 'type 7': (1, 1), - 'type 8': (1/3., 1/3.), - 'type 9': (3/8., 3/8.), + 'type 4': (0, 1), + 'type 5': (0.5, 0.5), + 'type 6': (0, 0), + 'type 7': (1, 1), + 'type 8': (1/3., 1/3.), + 'type 9': (0.375, 0.375), 'weibull': (0, 0), - 'median': (0.3175, 0.3175), - 'apl': (0.35, 0.35), - 'pwm': (0.35, 0.35), - 'blom': (0.375, 0.375), - 'hazen': (0.5, 0.5), - 'cunnane': (0.4, 0.4), - 'gringorten': (0.44, 0.44), # Gumble + 'median': (0.3175, 0.3175), + 'apl': (0.35, 0.35), + 'pwm': (0.35, 0.35), + 'blom': (0.375, 0.375), + 'hazen': (0.5, 0.5), + 'cunnane': (0.4, 0.4), + 'gringorten': (0.44, 0.44), # Gumble } - + postype = 'cunnane' if postype is None else postype if alpha is None and beta is None: - alpha, beta = pos_params.get(postype.lower(), pos_params['cunnane']) + alpha, beta = pos_params[postype.lower()] data = numpy.asarray(data, dtype=float).flatten() n = data.shape[0] From 9883323f759b8c426ee0f4b35d76cb397acaab21 Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 22:55:26 -0700 Subject: [PATCH 09/15] change axes validation to use the current axes --- probscale/validate.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/probscale/validate.py b/probscale/validate.py index 003611f..8518774 100644 --- a/probscale/validate.py +++ b/probscale/validate.py @@ -7,7 +7,8 @@ def axes_object(ax): """ if ax is None: - fig, ax = pyplot.subplots() + ax = pyplot.gca() + fig = ax.figure elif isinstance(ax, pyplot.Axes): fig = ax.figure else: From 15b010a68e9fcad3171442cb35f2273d2bd92922 Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 22:56:06 -0700 Subject: [PATCH 10/15] clean up docstring and minor changes to work with FacetGrids --- probscale/viz.py | 74 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 24 deletions(-) diff --git a/probscale/viz.py b/probscale/viz.py index 08c6b86..744d1ba 100644 --- a/probscale/viz.py +++ b/probscale/viz.py @@ -5,10 +5,10 @@ from . import validate -def probplot(data, ax=None, axtype='prob', probax='x', - otherscale='linear', xlabel=None, ylabel=None, - bestfit=False, return_results=False, - scatter_kws=None, line_kws=None, pp_kws=None): +def probplot(data, ax=None, color=None, label=None, axtype='prob', + probax='x', otherscale='linear', xlabel=None, ylabel=None, + bestfit=False, return_results=False, scatter_kws=None, + line_kws=None, pp_kws=None): """ Probability, percentile, and quantile plots. Parameters @@ -18,6 +18,12 @@ def probplot(data, ax=None, axtype='prob', probax='x', ax : matplotlib axes, optional The Axes on which to plot. If one is not provided, a new Axes will be created. + color : valid matplotlib color specification, optional + If provided, this value will be added to the ``scatter_kws`` + and ``line_kws`` dictionary under the "color" key. + label : string, optional + If provided, this legend label is applied to the scatter series + of the probability plot. axtype : string (default = 'prob') Type of plot to be created. Options are: - 'prob': probabilty plot @@ -69,6 +75,13 @@ def probplot(data, ax=None, axtype='prob', probax='x', line_kws = validate.other_options(line_kws) pp_kws = validate.other_options(pp_kws) + if color is not None: + scatter_kws['color'] = color + line_kws['color'] = color + + if label is not None: + scatter_kws['label'] = label + # check axtype axtype = validate.axis_type(axtype) @@ -143,7 +156,7 @@ def plot_pos(data, postype=None, alpha=None, beta=None): Compute the plotting positions for a dataset. Heavily borrows from ``scipy.stats.mstats.plotting_positions``. - A plottiting position is defined as: ``i-alpha)/(n+1-alpha-beta)`` + A plottiting position is defined as: ``(i-alpha)/(n+1-alpha-beta)`` where: - ``i`` is the rank order @@ -153,25 +166,31 @@ def plot_pos(data, postype=None, alpha=None, beta=None): The values of ``alpha`` and ``beta`` can be explicitly set. Typical values can also be access via the ``postype`` parameter. Available - ``postype`` values are: - - - "type 4" : (0, 1), linear interpolation of the empirical CDF - - "type 5" pr "hazen": (0.5, 0.5), piece-wise linear - interpolation. - - "type 6" or "weibull" : (0, 0) Weibull plotting positions, - Unbiased exceedance probability for all distributions. This is - the default value. - - "type 7" : (1, 1), the default values in R - - "type 8" : (1/3, 1/3) - - "type 9" or "blom" : approximately unbiased positions if the - data are normall distributed. - - "median" : (0.3175, 0.3175), Median exceedance probabilities - for all distributions (used in ``scipy.stats.probplot``) - - "apl" or "pwm" : (0.35, 0.35), used with probability-weighted - moments. - - "cunnane" : (0.4, 0.4), nearly unbiased quantiles for normally - distributed data. - - "gringorten" : (0.44, 0.44), used for Gumble distributions. + ``postype`` values (alpha, beta) are: + + "type 4" : (0, 1) + Linear interpolation of the empirical CDF. + "type 5" or "hazen" : (0.5, 0.5) + Piecewise linear interpolation. + "type 6" or "weibull" : (0, 0) + Weibull plotting positions. Unbiased exceedance probability + for all distributions. This is will be the default value. + "type 7" : (1, 1) + The default values in R. + "type 8" : (1/3, 1/3) + Approximately median-unbiased. + "type 9" or "blom" : (0.375, 0.375) + Approximately unbiased positions if the data are normally + distributed. + "median" : (0.3175, 0.3175) + Median exceedance probabilities for all distributions + (used in ``scipy.stats.probplot``). + "apl" or "pwm" : (0.35, 0.35) + Used with probability-weighted moments. + "cunnane" : (0.4, 0.4) + Nearly unbiased quantiles for normally distributed data. + "gringorten" : (0.44, 0.44) + Used for Gumble distributions. Parameters ---------- @@ -182,6 +201,13 @@ def plot_pos(data, postype=None, alpha=None, beta=None): Custom plotting position parameters is the options available through the `postype` parameter are insufficient. + Returns + ------- + plot_pos : numpy.array + The computed plotting positions, sorted. + data_sorted : numpy.array + The original data values, sorted. + References ---------- http://artax.karlin.mff.cuni.cz/r-help/library/lmomco/html/pp.html From 97f09d7c5510b7e296dc3cccb17e70c97573785a Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 22:56:20 -0700 Subject: [PATCH 11/15] minor typos and FacetGrid example --- docs/tutorial/getting_started.ipynb | 66 +++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 17 deletions(-) diff --git a/docs/tutorial/getting_started.ipynb b/docs/tutorial/getting_started.ipynb index 96988b1..dbfb462 100644 --- a/docs/tutorial/getting_started.ipynb +++ b/docs/tutorial/getting_started.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Getting started with `mpl-probscale`.\n", + "# Getting started with `mpl-probscale`\n", "\n", "## Installation\n", "\n", @@ -21,7 +21,7 @@ "pip install .\n", "```\n", "\n", - "I recommend `pip install .` over `python setup.py install` for [reasons I don't fully understand](https://github.com/numpy/numpy/issues/6551)." + "I recommend `pip install .` over `python setup.py install` for [reasons I don't fully understand](https://github.com/numpy/numpy/issues/6551#issuecomment-150392865cd)." ] }, { @@ -118,7 +118,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "`mpl-probscale` let's you use probability scales. All you need to do is import it.\n", + "`mpl-probscale` lets you use probability scales. All you need to do is import it.\n", "\n", "Before importing:" ] @@ -143,7 +143,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "To access probability scales, simply import :py:mod:`probscale`." + "To access probability scales, simply import :mod:`probscale`." ] }, { @@ -167,11 +167,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Probability scales default to the standard normal distribution (ote that the formatting is a percentage-based probability)\n", + "Probability scales default to the standard normal distribution (note that the formatting is a percentage-based probability)\n", "\n", - "You can even use different probability distributions, though it can be tricky. You have to pass a frozen distribution to the `dist` kwarg in `ax.set_[x|y]scale`.\n", + "You can even use different probability distributions, though it can be tricky. You have to pass a frozen distribution from either [scipy.stats](http://docs.scipy.org/doc/scipy/reference/stats.html#continuous-distributions) or [paramnormal](http://phobson.github.io/paramnormal/) to the `dist` kwarg in `ax.set_[x|y]scale`.\n", "\n", - "Here's a standard normal scale right next to two different beta scales for comparison" + "Here's a standard normal scale right next to a different normal scale and two beta scales for comparison" ] }, { @@ -182,23 +182,20 @@ }, "outputs": [], "source": [ - "import paramnormal\n", - "seaborn.set(style='ticks', context='notebook', rc=clear_bkgd)\n", - "\n", - "fig, (ax1, ax2, ax3, ax4) = pyplot.subplots(figsize=(8, 6), nrows=4)\n", + "fig, (ax1, ax2, ax3, ax4) = pyplot.subplots(figsize=(8, 4), nrows=4)\n", "\n", "ax1.set_xscale('prob')\n", "ax1.set_xlim(left=2, right=98)\n", "ax1.set_xlabel('Normal probability scale, as percents')\n", "ax1.set_yticks([])\n", "\n", - "beta1 = paramnormal.beta(α=3, β=2)\n", + "beta1 = stats.beta(a=3, b=2)\n", "ax2.set_xscale('prob', dist=beta1)\n", "ax2.set_xlim(left=2, right=98)\n", "ax2.set_xlabel('Beta probability scale (α=3, β=2)')\n", "ax2.set_yticks([])\n", "\n", - "beta2 = paramnormal.beta(α=2, β=7)\n", + "beta2 = stats.beta(a=2, b=7)\n", "ax3.set_xscale('prob', dist=beta2)\n", "ax3.set_xlim(left=2, right=98)\n", "ax3.set_xlabel('Beta probability scale (α=2, β=7)')\n", @@ -231,7 +228,7 @@ "outputs": [], "source": [ "numpy.random.seed(0)\n", - "sample = paramnormal.normal(μ=4, σ=2).rvs(size=37)\n", + "sample = numpy.random.normal(loc=4, scale=2, size=37)\n", "\n", "fig = probscale.probplot(sample)\n", "seaborn.despine(fig=fig)" @@ -281,7 +278,7 @@ "fig, ax = pyplot.subplots(figsize=(3, 7))\n", "\n", "numpy.random.seed(0)\n", - "new_sample = paramnormal.lognormal(μ=2.0, σ=0.75).rvs(size=37)\n", + "new_sample = numpy.random.lognormal(mean=2.0, sigma=0.75, size=37)\n", "\n", "probscale.probplot(\n", " new_sample,\n", @@ -325,11 +322,46 @@ }, "outputs": [], "source": [ - "fig, (ax1, ax2) = pyplot.subplots(ncols=2, figsize=(7, 2))\n", + "fig, (ax1, ax2, ax3) = pyplot.subplots(nrows=3, figsize=(5.5, 7))\n", + "\n", "probscale.probplot(sample, ax=ax1, axtype='pp', xlabel='Percentiles')\n", "probscale.probplot(sample, ax=ax2, axtype='qq', xlabel='Quantiles')\n", + "probscale.probplot(sample, ax=ax3, axtype='prob', xlabel='Probabilities')\n", + "\n", + "ax2.set_xlim(left=-2.5, right=2.5)\n", + "ax3.set_xlim(left=0.5, right=99.5)\n", + "fig.tight_layout()\n", "seaborn.despine(fig=fig)" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Working with seaborn `FacetGrids`\n", + "\n", + "Good news, everyone. The ``probplot`` function generally works as expected with [FacetGrids](http://stanford.edu/~mwaskom/software/seaborn/tutorial/axis_grids.html#subsetting-data-with-facetgrid)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [], + "source": [ + "plot = (\n", + " seaborn.load_dataset(\"tips\")\n", + " .assign(pct=lambda df: 100 * df['tip'] / df['total_bill'])\n", + " .pipe(seaborn.FacetGrid, hue='time', col='sex', row='smoker', margin_titles=True, aspect=1.75)\n", + " .map(probscale.probplot, 'pct', bestfit=True, otherscale='log', scatter_kws=dict(alpha=0.75))\n", + " .add_legend()\n", + " .set_xlabels('Non-Exceedance Probabilty')\n", + " .set_ylabels('Tips as percent of total bill')\n", + ")" + ] } ], "metadata": { @@ -353,4 +385,4 @@ }, "nbformat": 4, "nbformat_minor": 0 -} +} \ No newline at end of file From 0a587f3a8a7090c6e5c181f91159fa9c929363a8 Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 23:04:39 -0700 Subject: [PATCH 12/15] bump version number [ci skip] --- conda.recipe/meta.yaml | 4 ++-- docs/conf.py | 4 ++-- setup.py | 9 +++++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml index d5495fd..cba2995 100644 --- a/conda.recipe/meta.yaml +++ b/conda.recipe/meta.yaml @@ -1,10 +1,10 @@ package: name: mpl-probscale - version: v0.1.0 + version: 0.1.1 source: git_url: https://github.com/phobson/mpl-probscale.git - git_tag: v0.1.0 + git_tag: v0.1.1 # patches: # List any patch files here # - fix.patch diff --git a/docs/conf.py b/docs/conf.py index 82efd0c..5f85920 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -76,9 +76,9 @@ # built documents. # # The short X.Y version. -version = '0.1.0' +version = '0.1.1' # The full version, including alpha/beta/rc tags. -release = '0.1.0' +release = '0.1.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/setup.py b/setup.py index 893ceb9..6744cf2 100644 --- a/setup.py +++ b/setup.py @@ -10,14 +10,14 @@ DESCRIPTION = "mpl-probscale: Probabily scales for matplotlib" LONG_DESCRIPTION = DESCRIPTION NAME = "probscale" -VERSION = "0.1.0" +VERSION = "0.1.1" AUTHOR = "Paul Hobson (Geosyntec Consultants)" AUTHOR_EMAIL = "phobson@geosyntec.com" URL = "https://github.com/phobson/mpl-probscale" DOWNLOAD_URL = "https://github.com/phobson/mpl-probscale/archive/master.zip" LICENSE = "BSD 3-clause" PACKAGES = find_packages() -PLATFORMS = "Python 2.7, 3.3 and later." +PLATFORMS = "Python 2.7, 3.4 and later." CLASSIFIERS = [ "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", @@ -25,12 +25,13 @@ "Intended Audience :: Science/Research", "Topic :: Software Development :: Libraries :: Python Modules", 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', + 'Programming Language :: Python :: 3.5', ] INSTALL_REQUIRES = ['numpy', 'matplotlib'] PACKAGE_DATA = { - 'probscale.tests.test_probscale.baseline_images.test_probscale.test_viz': ['*png'], + 'probscale.tests.baseline_images.test_viz': ['*png'], + 'probscale.tests.baseline_images.test_probscale': ['*png'], } setup( From 15facaa25a3a712aefe655989274c0b4d1360db5 Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 23:13:11 -0700 Subject: [PATCH 13/15] add numpy/nose tester --- README.md | 12 ++++++++++++ docs/index.rst | 19 ++++++++++++++----- probscale/__init__.py | 3 +++ 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 22a1c9b..dcc0ec0 100644 --- a/README.md +++ b/README.md @@ -32,3 +32,15 @@ seaborn.despine(fig=fig) ``` ![Alt text](docs/img/example.png "Example axes") + +## Testing + +Testing is generally done via the ``nose`` and ``numpy.testing`` modules. +The best way to run the tests is in an interactive python session: + +```python +import matplotlib +matplotib.use('agg') +import probscale +probscale.test() +``` diff --git a/docs/index.rst b/docs/index.rst index ac09dcf..46177e7 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -54,17 +54,27 @@ Tutorial tutorial/getting_started.rst +Testing +------- + +It's easiest to run the tests from an interactive python session: + +.. code-block:: python + + import matplotlib + matplotlib.use('agg') + import probscale + probscale.test() + + API References -------------- .. toctree:: :maxdepth: 2 - probscale.rst viz.rst - - - + probscale.rst Indices and tables ================== @@ -72,4 +82,3 @@ Indices and tables * :ref:`genindex` * :ref:`modindex` * :ref:`search` - diff --git a/probscale/__init__.py b/probscale/__init__.py index 0a89b41..8d86d23 100644 --- a/probscale/__init__.py +++ b/probscale/__init__.py @@ -4,3 +4,6 @@ from .probscale import ProbScale scale.register_scale(ProbScale) + +from numpy.testing import Tester +test = Tester().test \ No newline at end of file From 9dd884e5d0cffbf84493c288b35cbfe781eeed98 Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 23:20:37 -0700 Subject: [PATCH 14/15] refined the recipe and setup.py --- conda.recipe/{ => dev}/bld.bat | 0 conda.recipe/{ => dev}/build.sh | 0 conda.recipe/dev/meta.yaml | 44 ++++++++++++++++++++++++++++ conda.recipe/release/bld.bat | 8 +++++ conda.recipe/release/build.sh | 9 ++++++ conda.recipe/{ => release}/meta.yaml | 7 ++--- setup.py | 1 + 7 files changed, 64 insertions(+), 5 deletions(-) rename conda.recipe/{ => dev}/bld.bat (100%) rename conda.recipe/{ => dev}/build.sh (100%) create mode 100644 conda.recipe/dev/meta.yaml create mode 100644 conda.recipe/release/bld.bat create mode 100644 conda.recipe/release/build.sh rename conda.recipe/{ => release}/meta.yaml (86%) diff --git a/conda.recipe/bld.bat b/conda.recipe/dev/bld.bat similarity index 100% rename from conda.recipe/bld.bat rename to conda.recipe/dev/bld.bat diff --git a/conda.recipe/build.sh b/conda.recipe/dev/build.sh similarity index 100% rename from conda.recipe/build.sh rename to conda.recipe/dev/build.sh diff --git a/conda.recipe/dev/meta.yaml b/conda.recipe/dev/meta.yaml new file mode 100644 index 0000000..b3474e1 --- /dev/null +++ b/conda.recipe/dev/meta.yaml @@ -0,0 +1,44 @@ +package: + name: mpl-probscale + version: 0.1.1 + +source: + path: ../../ +# patches: + # List any patch files here + # - fix.patch + +build: + number: 1 + +requirements: + build: + - python + - numpy + - matplotlib + + run: + - python + - numpy + - matplotlib + - nose + +test: + imports: + - probscale + + commands: + - python -c "import matplotlib; matplotlib.use('agg'); import probscale; probscale.test()" + + requires: + - nose + - scipy + +about: + home: http://phobson.github.io/mpl-probscale/ + license: BSD License + summary: 'Probability scales for matplotlib.' + +# See +# http://docs.continuum.io/conda/build.html for +# more information about meta.yaml/configure diff --git a/conda.recipe/release/bld.bat b/conda.recipe/release/bld.bat new file mode 100644 index 0000000..87b1481 --- /dev/null +++ b/conda.recipe/release/bld.bat @@ -0,0 +1,8 @@ +"%PYTHON%" setup.py install +if errorlevel 1 exit 1 + +:: Add more build steps here, if they are necessary. + +:: See +:: http://docs.continuum.io/conda/build.html +:: for a list of environment variables that are set during the build process. diff --git a/conda.recipe/release/build.sh b/conda.recipe/release/build.sh new file mode 100644 index 0000000..4d7fc03 --- /dev/null +++ b/conda.recipe/release/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +$PYTHON setup.py install + +# Add more build steps here, if they are necessary. + +# See +# http://docs.continuum.io/conda/build.html +# for a list of environment variables that are set during the build process. diff --git a/conda.recipe/meta.yaml b/conda.recipe/release/meta.yaml similarity index 86% rename from conda.recipe/meta.yaml rename to conda.recipe/release/meta.yaml index cba2995..4b716fb 100644 --- a/conda.recipe/meta.yaml +++ b/conda.recipe/release/meta.yaml @@ -22,17 +22,14 @@ requirements: - python - numpy - matplotlib + - nose test: imports: - probscale commands: - - nosetests - - requires: - - nose - - scipy + - python -c "import matplotlib; matplotlib.use('agg'); import probscale; probscale.test()" about: home: http://phobson.github.io/mpl-probscale/ diff --git a/setup.py b/setup.py index 6744cf2..7df68ca 100644 --- a/setup.py +++ b/setup.py @@ -50,4 +50,5 @@ platforms=PLATFORMS, classifiers=CLASSIFIERS, install_requires=INSTALL_REQUIRES, + zip_safe=False, ) From 078b87b628ef8bae20c3d4bb453527ca542cec3b Mon Sep 17 00:00:00 2001 From: Paul Hobson Date: Tue, 19 Apr 2016 23:33:02 -0700 Subject: [PATCH 15/15] minor doc typos and ommissions --- docs/tutorial/getting_started.ipynb | 4 ++-- probscale/viz.py | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/tutorial/getting_started.ipynb b/docs/tutorial/getting_started.ipynb index dbfb462..995b9a1 100644 --- a/docs/tutorial/getting_started.ipynb +++ b/docs/tutorial/getting_started.ipynb @@ -143,7 +143,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "To access probability scales, simply import :mod:`probscale`." + "To access probability scales, simply import `probscale`." ] }, { @@ -171,7 +171,7 @@ "\n", "You can even use different probability distributions, though it can be tricky. You have to pass a frozen distribution from either [scipy.stats](http://docs.scipy.org/doc/scipy/reference/stats.html#continuous-distributions) or [paramnormal](http://phobson.github.io/paramnormal/) to the `dist` kwarg in `ax.set_[x|y]scale`.\n", "\n", - "Here's a standard normal scale right next to a different normal scale and two beta scales for comparison" + "Here's a standard normal scale with two different beta scales and a linear scale for comparison." ] }, { diff --git a/probscale/viz.py b/probscale/viz.py index 744d1ba..418a385 100644 --- a/probscale/viz.py +++ b/probscale/viz.py @@ -42,6 +42,9 @@ def probplot(data, ax=None, color=None, label=None, axtype='prob', scatter_kws, line_kws : dictionary, optional Dictionary of keyword arguments passed directly to ``ax.plot`` when drawing the scatter points and best-fit line, respectively. + pp_kws : dictionary, optional + Dictionary of keyword arguments passed directly to + ``viz.plot_pos``. return_results : bool (default = False) If True a dictionary of results of is returned along with the figure. @@ -59,7 +62,7 @@ def probplot(data, ax=None, color=None, label=None, axtype='prob', See also -------- - viz.plot_plos + viz.plot_pos numpy.polyfit scipy.stats.probplot scipy.stats.mstats.plotting_positions