, data2, xlabel=None, ylabel=None, line=None, ax=None)[source]

Q-Q Plot of two samples’ quantiles.

Can take either two ProbPlot instances or two array-like objects. In the case of the latter, both inputs will be converted to ProbPlot instances using only the default values - so use ProbPlot instances if finer-grained control of the quantile computations is required.

  • data2 (data1,) –
  • ylabel (xlabel,) – User-provided labels for the x-axis and y-axis. If None (default), other values are used.
  • line (str {'45', 's', 'r', q'} or None) –

    Options for the reference line to which the data is compared:

    • ‘45’ - 45-degree line
    • ’s‘ - standardized line, the expected order statistics are scaled by the standard deviation of the given sample and have the mean added to them
    • ’r’ - A regression line is fit
    • ’q’ - A line is fit through the quartiles.
    • None - by default no reference line is added to the plot.
  • ax (Matplotlib AxesSubplot instance, optional) – If given, this subplot is used to plot in instead of a new figure being created.

fig – If ax is None, the created figure. Otherwise the figure to which ax is connected.

Return type:

Matplotlib figure instance

See also



>>> x = np.random.normal(loc=8.5, scale=2.5, size=37)
>>> y = np.random.normal(loc=8.0, scale=3.0, size=37)
>>> pp_x = sm.ProbPlot(x)
>>> pp_y = sm.ProbPlot(y)
>>> qqplot_2samples(pp_x, pp_y)


  1. Depends on matplotlib.
  2. If data1 and data2 are not ProbPlot instances, instances will be created using the default parameters. Therefore, it is recommended to use ProbPlot instance if fine-grained control is needed in the computation of the quantiles.