mpl-probscale icon indicating copy to clipboard operation
mpl-probscale copied to clipboard

Issue with PP-plot and different distributions

Open erykml opened this issue 6 years ago • 1 comments

  • Python version: Python 3.6.8
  • numpy version: 1.14.3
  • matplotlib version: 2.0.2
  • mpl-probscale version: 0.2.3
  • Operating System: MacOS Mojave 10.14.3

Description

I tried modifying the examples from the documentation and created two PP-plots: one using Standard Normal Distribution as the theoretical distribution, another one using N(100, 5). And both plots look exactly the same (this is not true for QQ-plots). Am I missing something?

What I Did

import warnings
warnings.simplefilter('ignore')

import numpy
from matplotlib import pyplot
import seaborn
from scipy import stats
import probscale
clear_bkgd = {'axes.facecolor':'none', 'figure.facecolor':'none'}
seaborn.set(style='ticks', context='talk', color_codes=True, rc=clear_bkgd)

# load up some example data from the seaborn package
tips = seaborn.load_dataset("tips")

%matplotlib inline
%config InlineBackend.figure_format ='retina'

common_opts = dict(
    plottype='pp',
    probax='x',
    datascale='log',
    datalabel='Total Bill (USD)',
    scatter_kws=dict(marker='+', linestyle='none', mew=1)
)

norm = stats.norm(100, 5)

fig, (ax1, ax2) = pyplot.subplots(figsize=(10, 6), ncols=2, sharex=True)
fig = probscale.probplot(tips['total_bill'], ax=ax1, dist=norm,
                         problabel='N(100, 5) Probabilities', **common_opts)

fig = probscale.probplot(tips['total_bill'], ax=ax2, dist=None,
                         problabel='Standard Normal Probabilities', **common_opts)

seaborn.despine()

erykml avatar Apr 09 '19 22:04 erykml

Thanks for the precisely described and demonstrated issue.

I think this stems from a gap in the documentation. A PP plot doesn't actually use the distribution of the data. It's displaying the percentiles of the data, which are unaffected by any inferred or provided distribution.

phobson avatar Apr 13 '19 00:04 phobson