qq_plot#
- qq_plot(data=None, sample=None, *, x=None, y=None, distribution=None, dparams=None, quantiles=None, group=None, show_legend=None, marginal=None, color=None, fill=None, alpha=None, size=None, shape=None, line_color=None, line_size=None, linetype=None) PlotSpec #
Produce a Q-Q plot (quantile-quantile plot).
Supply the
sample
parameter to compare distribution of observations with a theoretical distribution (‘normal’ or as otherwise specified by thedistribution
parameter).Alternatively, supply
x
andy
parameters to compare the distribution ofx
with the distribution ofy
.- Parameters:
- datadict or Pandas or Polars
DataFrame
The data to be displayed.
- samplestr
Name of variable specifying a vector of observations used for computing of “sample quantiles”. Use this parameter to produce a “sample vs. theoretical” Q-Q plot.
- x, ystr
Names of variables specifying two vectors of observations used for computing of x and y “sample quantiles”. Use these two parameters to produce a “sample X vs. sample Y” Q-Q plot.
- distribution{‘norm’, ‘uniform’, ‘t’, ‘gamma’, ‘exp’, ‘chi2’}, default=’norm’
Distribution function to use. Could be specified if
sample
is.- dparamslist
Additional parameters (of float type) passed on to distribution function. Could be specified if
sample
is. Ifdistribution
is'norm'
thendparams
is a pair [mean, std] (=[0.0, 1.0] by default). Ifdistribution
is'uniform'
thendparams
is a pair [a, b] (=[0.0, 1.0] by default). Ifdistribution
is't'
thendparams
is an integer number [d] (=[1] by default). Ifdistribution
is'gamma'
thendparams
is a pair [alpha, beta] (=[1.0, 1.0] by default). Ifdistribution
is'exp'
thendparams
is a float number [lambda] (=[1.0] by default). Ifdistribution
is'chi2'
thendparams
is an integer number [k] (=[1] by default).- quantileslist, default=[0.25, 0.75]
Pair of quantiles to use when fitting the Q-Q line.
- groupstr
Grouping parameter. If it is specified and color-parameters isn’t then different groups will has different colors.
- show_legendbool, default=True
False - do not show legend.
- marginalstr, default=’dens:tr’
Description of marginal layers packed to string value. Different marginals are separated by the ‘,’ char. Parameters of a marginal are separated by the ‘:’ char. First parameter of a marginal is a geometry name. Possible values: ‘dens’/’density’, ‘hist’/’histogram’, ‘box’/’boxplot’. Second parameter is a string specifying which sides of the plot the marginal layer will appear on. Possible values: ‘t’ (top), ‘b’ (bottom), ‘l’ (left), ‘r’ (right). Third parameter (optional) is size of marginal. To suppress marginals use
marginal='none'
. Examples: “hist:tr:0.3”, “dens:tr,hist:bl”, “box : tr : .05, dens : bl”.- colorstr
Color of a points. For more info see Color and Fill.
- fillstr
Color to paint shape’s inner points. Is applied only to the points of shapes having inner points. For more info see Color and Fill.
- alphafloat, default=0.5
Transparency level of points. Accept values between 0 and 1.
- sizefloat, default=3.0
Size of the points.
- shapeint
Shape of the points, an integer from 0 to 25. For more info see Point Shapes.
- line_colorstr, default=’#FF0000’
Color of the fitting line. For more info see Color and Fill.
- line_sizefloat, default=0.75
Width of the fitting line.
- linetypeint or str or list
Type of the fitting line. Accept codes or names (0 = ‘blank’, 1 = ‘solid’, 2 = ‘dashed’, 3 = ‘dotted’, 4 = ‘dotdash’, 5 = ‘longdash’, 6 = ‘twodash’), a hex string (up to 8 digits for dash-gap lengths), or a list pattern [offset, [dash, gap, …]] / [dash, gap, …]. For more info see Line Types.
- datadict or Pandas or Polars
- Returns:
PlotSpec
Plot object specification.
Notes
The Q-Q plot is used for comparing two probability distributions (sample and theoretical or two sample) by plotting their quantiles against each other.
If the two distributions being compared are similar, the points in the Q-Q plot will approximately lie on the straight line.
To hide axis tooltips, set ‘blank’ or the result of element_blank() to the
axis_tooltip
,axis_tooltip_x
oraxis_tooltip_y
parameter of the theme().Examples
1import numpy as np 2from lets_plot.bistro.qq import qq_plot 3from lets_plot import * 4LetsPlot.setup_html() 5n = 100 6np.random.seed(42) 7x = np.random.normal(0, 1, n) 8qq_plot(data={'x': x}, sample='x')
1import numpy as np 2from lets_plot.bistro.qq import qq_plot 3from lets_plot import * 4LetsPlot.setup_html() 5n = 100 6np.random.seed(42) 7x = np.random.exponential(1, n) 8qq_plot({'x': x}, 'x', \ 9 distribution='exp', quantiles=[0, .9], \ 10 color='black', line_size=.25)
1import numpy as np 2from lets_plot.bistro.qq import qq_plot 3from lets_plot import * 4LetsPlot.setup_html() 5n = 100 6np.random.seed(42) 7data = { 8 'x': np.random.normal(0, 1, n), 9 'y': np.random.normal(1, 2, n), 10 'g': np.random.choice(['a', 'b'], n), 11} 12qq_plot(data, x='x', y='y', group='g', \ 13 shape=21, alpha=.2, size=5, linetype=5)
1import numpy as np 2from lets_plot.bistro.qq import qq_plot 3from lets_plot import * 4LetsPlot.setup_html() 5n = 150 6np.random.seed(42) 7data = { 8 'x': np.random.normal(0, 5, n), 9 'g': np.random.choice(['a', 'b', 'c'], n), 10} 11qq_plot(data, 'x', dparams=[0, 5], group='g', \ 12 line_color='black', line_size=.5) + \ 13 scale_color_brewer(type='qual', palette='Set1') + \ 14 facet_grid(x='g') + \ 15 coord_fixed() + \ 16 xlab("Norm distribution quantiles") + \ 17 ggtitle("Interaction of the qq_plot() with other layers") + \ 18 theme_classic()