generates a normal probability plot of the samples xi.


generates a probability plot scaled for the distribution "dist".


generates several scaled probability plots for data1, data2, .

Details and Options

  • ProbabilityScalePlot[data,"dist"] uses distribution-specific scales so that if data follows the given distribution, the plot will lie on a straight line.
  • The following distribution-specific scales are supported:
  • "Normal"normal plot
    "Weibull"Weibull plot
    "Exponential"exponential plot
    "LogNormal"lognormal plot
    "Rayleigh"Rayleigh plot
    "Frechet"Fréchet plot
    "Gumbel"Gumbel plot
  • The positions plotted correspond to {xi,yi} where yi are uniform order statistics medians given by Quantile[{x1,x2,},].
  • The data is scaled by distribution-specific transformations and given by:
  • "Exponential"
  • Datasets can be given in the following forms:
  • {x1,x2,}list of samples
    {Quantity[x1,unit],Quantity[x2,unit],}samples with units
    <|k1e1,k2e2,|>association of keys and samples
    WeightedData[],EventData[]augmented datasets
    TimeSeries[],EventSeries[],TemporalData[]time series, event series, and temporal data
    w[{e1,e2,},]wrapper applied to a whole dataset
    w[{data1,data2,}]wrapper applied to all datasets
  • The form w[data] provides a wrapper w to be applied to the resulting graphics primitives.
  • The following wrappers can be used:
  • Annotation[e,label]provide an annotation
    Button[e,action]define an action to execute when the element is clicked
    EventHandler[e,]define a general event handler for the element
    Hyperlink[e,uri]make the element act as a hyperlink
    PopupWindow[e,cont]attach a popup window to the element
    StatusArea[e,label]display in the status area when the element is moused over
    Style[e,opts]show the element using the specified styles
    Tooltip[e,label]attach an arbitrary tooltip to the element
  • ProbabilityScalePlot has the same options as Graphics, with the following additions and changes:
  • AspectRatio1/GoldenRatioratio of height to width
    ClippingStyle Automaticwhat to draw where curves are clipped
    ColorFunction Automatichow to determine the coloring of curves
    ColorFunctionScaling Truewhether to scale arguments to ColorFunction
    Filling Nonefilling to insert under each curve
    FillingStyle Automaticstyle to use for filling
    Joined Automaticwhether to join points
    Mesh Nonehow many mesh points to draw on each curve
    MeshFunctions {#1&}how to determine the placement of mesh points
    MeshShading Nonehow to shade regions between mesh points
    MeshStyle Automaticthe style for mesh points
    Method Automaticmethods to use
    PerformanceGoal$PerformanceGoalaspects of performance to try to optimize
    PlotLegends Nonelegends for data points
    PlotMarkers Nonemarkers to use to indicate each point for datasets
    PlotRange Automaticrange of values to include
    PlotRangeClippingTruewhether to clip at the plot range
    PlotStyle Automaticgraphics directives to specify the style for each object
    PlotTheme $PlotThemeoverall theme for the plot
    ReferenceLineStyle Automaticstyle for the reference line
    ScalingFunctions Nonehow to scale individual coordinates
    WorkingPrecisionMachinePrecisionthe precision used in internal computations for symbolic distributions
  • With Filling->Automatic, the region between a dataset and reference line will be filled. By default "stems" are used for datasets and "solid" filling is used for symbolic distributions. The setting Joined->True will force "solid" filling for datasets.
  • The arguments supplied to functions in MeshFunctions and RegionFunction are , . Functions in ColorFunction are by default supplied with scaled versions of these arguments.
  • The setting PlotStyle->Automatic uses a sequence of different plot styles for different lines.
  • With the ReferenceLineStyle->None, no reference line will be drawn.
  • Typical settings for PlotLegends include:
  • Noneno legend
    Automaticautomatically determine legend
    {lbl1,lbl2,}use lbl1, lbl2, as legend labels
    Placed[lspec,]specify placement for legend
  • Possible settings for ScalingFunctions include:
  • syscale the y axis
    {sx,sy}scale x and y axes
  • Common built-in scaling functions s include:
  • "Reverse"reverse the coordinate direction


open allclose all

Basic Examples  (3)

A normal probability plot compared to an estimated normal distribution:

A Weibull probability plot:

Normal probability plot of several datasets with a legend:

Scope  (27)

Data  (13)

ProbabilityScalePlot works with numeric data:

ProbabilityScalePlot with multiple datasets:

Normal probability plot:

A Weibull probability plot:

An exponential probability plot:

Lognormal probability plot:

Rayleigh probability plot:

Fréchet probability plot:

Gumbel probability plot:

Plot values with units:

Plot the values from an association:

Plot data with weights:

Plot data from time series:

Presentation  (14)

Multiple datasets are automatically colored to be distinct:

Provide explicit styling to different sets:

Include legends for each dataset:

Use Legended to provide a legend for a specific dataset:

Add labels:

Use specific styles for the reference line:

Turn off the reference line:

Draw grid lines:

Provide an interactive Tooltip for the data:

Create filled plots:

Use shapes to distinguish different datasets:

Use Joined to connect datasets with lines:

Use a theme to create a black-and-white plot:

Reverse the direction of the x axis:

Options  (69)

ClippingStyle  (4)

Omit clipped regions of the plot:

Show the clipped regions like the rest of the curve:

Show the clipped regions with red lines:

Show the clipped regions as red and thick:

ColorFunction  (6)

ColorFunction requires at least one dataset to be Joined:

Color by scaled and coordinates:

Color with a named color scheme:

Fill to the reference line with the color used for the curve:

ColorFunction has higher priority than PlotStyle for coloring the curve:

Use Automatic in MeshShading to use ColorFunction:

ColorFunctionScaling  (2)

Color the line based on scaled value:

Color the line based on unscaled value:

Filling  (7)

Fill from data to the reference line:

Use symbolic or explicit values for filling:

Points fill with stems:

Curves fill with solid regions:

Fill from the third dataset to the bottom:

Fill between datasets using a particular style:

Use different styles above and below the filling level:

Filling only applies where the datasets overlap:

FillingStyle  (2)

Use different fill colors:

Fill with transparent orange regions:

GridLines  (1)

Use automatically computed grid lines:

GridLinesStyle  (1)

Use light gray grid lines:

Joined  (1)

Datasets are not joined by default:

Join the points:

Mesh  (4)

Use 20 mesh levels evenly spaced in the direction:

Use the mesh to divide the curve into deciles:

Use an explicit list of values for the mesh:

Specify mesh positions and styles:

MeshFunctions  (2)

Use a mesh evenly spaced in the and directions:

Show five mesh levels in the direction (red) and 10 in the direction (blue):

MeshShading  (6)

Alternate red and blue segments of equal width in the direction:

Use None to remove segments:

MeshShading can be used with PlotStyle:

MeshShading has higher priority than PlotStyle for styling the curve:

Use the PlotStyle for some segments by setting MeshShading to Automatic:

MeshShading can be used with ColorFunction:

MeshStyle  (4)

Color the mesh the same color as the plot:

Use a red mesh in the direction:

Use a red mesh in the direction and a blue mesh in the direction:

Use big red mesh points in the direction:

Method  (3)

By default a reference line is drawn through the first and third quartiles of data:

Draw the best-fit line through data:

The reference line represents the reference distribution:

PlotLegends  (7)

By default, no legends are used:

Generate a legend using labels:

Generate a legend using placeholders:

Legends use the same styles as the plot:

Use Placed to specify the legend placement:

Place the legend inside the plot:

Use LineLegend to change the legend appearance:

PlotMarkers  (7)

QuantilePlot normally uses distinct colors to distinguish different sets of data:

Automatically use colors and shapes to distinguish sets of data:

Use shapes only:

Change the size of the default plot markers:

Use arbitrary text for plot markers:

Use explicit graphics for plot markers:

Use the same symbol for all the sets of data:

Use plot markers:

PlotRange  (3)

PlotRange is automatically calculated:

Show the whole dataset:

Show the distribution for between 1 and 3 and between 90 and 99:

PlotStyle  (3)

Use different style directives:

By default different styles are chosen for multiple curves:

Explicitly specify the style for different curves:

PlotTheme  (1)

Use a theme to create a black-and-white plot:

Use a solid, light gray reference line:

ReferenceLineStyle  (3)

ReferenceLineStyle by default uses a Dotted form of PlotStyle:

Draw a red dotted reference line:

Draw a solid red reference line:

Use None to turn off the reference line:

ScalingFunctions  (2)

By default ProbabilityScalePlot uses an automatic scale on both of the axes:

Reverse the direction of the x axis:

Applications  (2)

A group of ecologists surveyed an island's bird species populations. For each species on the island, the number of individuals observed was recorded. Often LogNormalDistribution is used to model abundance of species:

It appears that a lognormal model is a reasonable choice:

Find the best-fitting LogNormalDistribution using a maximum likelihood estimation:

Normal probability plot for a time slice of a random process:

Properties & Relations  (8)

Compare data with different reference distributions:

Compare the quantiles of data with quantiles of a normal distribution:

Compare the CDF of the data with the CDF of a normal distribution:

BoxWhiskerChart and DistributionChart can be used to visualize the distribution of data:

SmoothHistogram and Histogram can be used to visualize the distribution of data:

DiscretePlot can be used to visualize discrete distributions:

Use ListPlot to see the data:

ProbabilityScalePlot ignores time stamps when input is a TimeSeries:

Wolfram Research (2010), ProbabilityScalePlot, Wolfram Language function, (updated 2022).


Wolfram Research (2010), ProbabilityScalePlot, Wolfram Language function, (updated 2022).


Wolfram Language. 2010. "ProbabilityScalePlot." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022.


Wolfram Language. (2010). ProbabilityScalePlot. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2022_probabilityscaleplot, author="Wolfram Research", title="{ProbabilityScalePlot}", year="2022", howpublished="\url{}", note=[Accessed: 31-May-2023 ]}


@online{reference.wolfram_2022_probabilityscaleplot, organization={Wolfram Research}, title={ProbabilityScalePlot}, year={2022}, url={}, note=[Accessed: 31-May-2023 ]}