ProbabilityPlot
✖
ProbabilityPlot
generates a plot of the CDF of list against the CDF of a normal distribution.
generates a plot of the CDF of the distribution dist against the CDF of a normal distribution.
generates a plot of the CDF of data against the CDF of symbolic distribution rdist.
generates a plot of the CDF of datai against the CDF of a reference distribution ref.
Details and Options




- ProbabilityPlot is also known as normal probability plot in the one-argument form and probability-probability (P-P) plot in the two-argument form.
- ProbabilityPlot[data1,data2] works with datai being either a dataset of real values or a symbolic univariate distribution.
- For datasets list, empirical CDFs are used, and for symbolic distributions dist, exact CDFs are used.
- ProbabilityPlot[data,dist[θ1,…]] with symbolic parameters θi is equivalent to ProbabilityPlot[data,EstimatedDistribution[data,dist[θ1,…]]].
- 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] or w[dist] provides a wrapper w to be applied to the resulting graphics primitives.
- ProbabilityPlot[Tabular[…]cspec] extracts and plots values from the tabular object using the column specification cspec.
- The following forms of column specifications cspec are allowed for plotting tabular data:
-
colx plot the values from column x {colx1,colx2,…} plot columns x1, x2, … - 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 Highlighted[fi,effect] dynamically highlight fi with an effect Highlighted[fi,Placed[effect,pos]] statically highlight fi with an effect at position pos 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 - ProbabilityPlot has the same options as Graphics, with the following additions and changes: [List of all options]
-
AspectRatio 1/GoldenRatio ratio of width to height ClippingStyle Automatic what to draw where curves are clipped ColorFunction Automatic how to determine the coloring of curves ColorFunctionScaling True whether to scale arguments to ColorFunction Filling None filling to insert under each curve FillingStyle Automatic style to use for filling Joined Automatic whether to join points Mesh None how many mesh points to draw on each curve MeshFunctions {#1&} how to determine the placement of mesh points MeshShading None how to shade regions between mesh points MeshStyle Automatic the style for mesh points Method Automatic methods to use PerformanceGoal $PerformanceGoal aspects of performance to try to optimize PlotHighlighting Automatic highlighting effect for data PlotLegends None legends for data points PlotMarkers None markers to use to indicate each point for datasets PlotRange Automatic range of values to include PlotRangeClipping True whether to clip at the plot range PlotStyle Automatic graphics directives to specify the style for each object PlotTheme $PlotTheme overall theme for the plot ReferenceLineStyle Automatic style for the reference line ScalingFunctions None how to scale individual coordinates WorkingPrecision MachinePrecision the 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 Joined->Automatic is equivalent to Joined->True when comparing two distributions and Joined->False otherwise.
- The setting PlotStyle->Automatic uses a sequence of different plot styles for different lines.
- With the ReferenceLineStyle->None, no reference line will be drawn.
- Possible highlighting effects for Highlighted and PlotHighlighting include:
-
style highlight the indicated curve "Ball" highlight and label the indicated point in a curve "Dropline" highlight and label the indicated point in a curve with droplines to the axes "XSlice" highlight and label all points along a vertical slice "YSlice" highlight and label all points along a horizontal slice Placed[effect,pos] statically highlight the given position pos - Highlight position specifications pos include:
-
x, {x} effect at {x,y} with y chosen automatically {x,y} effect at {x,y} {pos1,pos2,…} multiple positions posi - Typical settings for PlotLegends include:
-
None no legend Automatic automatically determine legend {lbl1,lbl2,…} use lbl1, lbl2, … as legend labels Placed[lspec,…] specify placement for legend - With ScalingFunctions->{sx,sy}, the
coordinate is scaled using sx and the
coordinate is scaled using sy.
-
AlignmentPoint Center the default point in the graphic to align with AspectRatio 1/GoldenRatio ratio of width to height Axes False whether to draw axes AxesLabel None axes labels AxesOrigin Automatic where axes should cross AxesStyle {} style specifications for the axes Background None background color for the plot BaselinePosition Automatic how to align with a surrounding text baseline BaseStyle {} base style specifications for the graphic ClippingStyle Automatic what to draw where curves are clipped ColorFunction Automatic how to determine the coloring of curves ColorFunctionScaling True whether to scale arguments to ColorFunction ContentSelectable Automatic whether to allow contents to be selected CoordinatesToolOptions Automatic detailed behavior of the coordinates tool Epilog {} primitives rendered after the main plot Filling None filling to insert under each curve FillingStyle Automatic style to use for filling FormatType TraditionalForm the default format type for text Frame False whether to put a frame around the plot FrameLabel None frame labels FrameStyle {} style specifications for the frame FrameTicks Automatic frame ticks FrameTicksStyle {} style specifications for frame ticks GridLines None grid lines to draw GridLinesStyle {} style specifications for grid lines ImageMargins 0. the margins to leave around the graphic ImagePadding All what extra padding to allow for labels etc. ImageSize Automatic the absolute size at which to render the graphic Joined Automatic whether to join points LabelStyle {} style specifications for labels Mesh None how many mesh points to draw on each curve MeshFunctions {#1&} how to determine the placement of mesh points MeshShading None how to shade regions between mesh points MeshStyle Automatic the style for mesh points Method Automatic methods to use PerformanceGoal $PerformanceGoal aspects of performance to try to optimize PlotHighlighting Automatic highlighting effect for data PlotLabel None an overall label for the plot PlotLegends None legends for data points PlotMarkers None markers to use to indicate each point for datasets PlotRange Automatic range of values to include PlotRangeClipping True whether to clip at the plot range PlotRangePadding Automatic how much to pad the range of values PlotRegion Automatic the final display region to be filled PlotStyle Automatic graphics directives to specify the style for each object PlotTheme $PlotTheme overall theme for the plot PreserveImageOptions Automatic whether to preserve image options when displaying new versions of the same graphic Prolog {} primitives rendered before the main plot ReferenceLineStyle Automatic style for the reference line RotateLabel True whether to rotate y labels on the frame ScalingFunctions None how to scale individual coordinates Ticks Automatic axes ticks TicksStyle {} style specifications for axes ticks WorkingPrecision MachinePrecision the precision used in internal computations for symbolic distributions
List of all options




Examples
open allclose allBasic Examples (4)Summary of the most common use cases
A normal probability plot compared to an estimated normal distribution:

https://wolfram.com/xid/0btnmzam0g5u-g0tskz

https://wolfram.com/xid/0btnmzam0g5u-dv8o4

Compare to the standard normal distribution:

https://wolfram.com/xid/0btnmzam0g5u-xqy5e2

https://wolfram.com/xid/0btnmzam0g5u-lcdslj

A probability-probability plot of two datasets:

https://wolfram.com/xid/0btnmzam0g5u-bwvzym

https://wolfram.com/xid/0btnmzam0g5u-qm8ph7

Plot several datasets with a legend:

https://wolfram.com/xid/0btnmzam0g5u-7yv1c3

https://wolfram.com/xid/0btnmzam0g5u-bptx6h

Scope (26)Survey of the scope of standard use cases
Data and Distributions (12)
ProbabilityPlot works with numeric data:

https://wolfram.com/xid/0btnmzam0g5u-xl

ProbabilityPlot works with symbolic distributions:

https://wolfram.com/xid/0btnmzam0g5u-m0l

Use multiple datasets and distributions:

https://wolfram.com/xid/0btnmzam0g5u-4esvf

The default reference distribution is the closest estimated NormalDistribution:

https://wolfram.com/xid/0btnmzam0g5u-4nt7jn

https://wolfram.com/xid/0btnmzam0g5u-c7w06o

Specify data or distributions as the reference:

https://wolfram.com/xid/0btnmzam0g5u-exvyef

https://wolfram.com/xid/0btnmzam0g5u-gki8gw

Reference distributions are estimated for each dataset:

https://wolfram.com/xid/0btnmzam0g5u-65yd6y

https://wolfram.com/xid/0btnmzam0g5u-rn7zc4

Estimate specific reference distributions for numeric datasets:

https://wolfram.com/xid/0btnmzam0g5u-1y6gc0

Use all forms of built-in distributions:

https://wolfram.com/xid/0btnmzam0g5u-wlmg14

https://wolfram.com/xid/0btnmzam0g5u-47vk1


https://wolfram.com/xid/0btnmzam0g5u-3eex2k


https://wolfram.com/xid/0btnmzam0g5u-qxad5


https://wolfram.com/xid/0btnmzam0g5u-jyjfk7


https://wolfram.com/xid/0btnmzam0g5u-n9b9so

Plot the values from an association:

https://wolfram.com/xid/0btnmzam0g5u-16sn34


https://wolfram.com/xid/0btnmzam0g5u-0lq0c8


https://wolfram.com/xid/0btnmzam0g5u-4yjh3w


https://wolfram.com/xid/0btnmzam0g5u-f8t5ta


https://wolfram.com/xid/0btnmzam0g5u-j7aj6c

Tabular Data (1)

https://wolfram.com/xid/0btnmzam0g5u-wbvnn2

Compare the data to a normal distribution:

https://wolfram.com/xid/0btnmzam0g5u-g1wdpx

Compare multiple sets of data:

https://wolfram.com/xid/0btnmzam0g5u-f5vu4z

Use PivotToColumns to generate columns of "SepalWidth" per species:

https://wolfram.com/xid/0btnmzam0g5u-h3ud2v

Compare probability of sepal width per species:

https://wolfram.com/xid/0btnmzam0g5u-3nog43

Use abbreviated names for extended keys when the elements are unique:

https://wolfram.com/xid/0btnmzam0g5u-b1o1fc


https://wolfram.com/xid/0btnmzam0g5u-c2ixb6

Presentation (13)
Multiple datasets are automatically colored to be distinct:

https://wolfram.com/xid/0btnmzam0g5u-jtr7wy

https://wolfram.com/xid/0btnmzam0g5u-bivltz

Provide explicit styling to different sets:

https://wolfram.com/xid/0btnmzam0g5u-lfjuoq

https://wolfram.com/xid/0btnmzam0g5u-05k80k

Include legends for each dataset:

https://wolfram.com/xid/0btnmzam0g5u-29fpkz

https://wolfram.com/xid/0btnmzam0g5u-svqzyx


https://wolfram.com/xid/0btnmzam0g5u-jsuhnx

Use specific styles for the reference line:

https://wolfram.com/xid/0btnmzam0g5u-dua2d


https://wolfram.com/xid/0btnmzam0g5u-sscmlz

Provide an interactive Tooltip for the data:

https://wolfram.com/xid/0btnmzam0g5u-tmzju6

Provide a specific tooltip for the data:

https://wolfram.com/xid/0btnmzam0g5u-fchv0g

https://wolfram.com/xid/0btnmzam0g5u-yvgs4g


https://wolfram.com/xid/0btnmzam0g5u-xfs9r1

https://wolfram.com/xid/0btnmzam0g5u-gpp62q

Use shapes to distinguish different datasets:

https://wolfram.com/xid/0btnmzam0g5u-zbu0t3

Use Joined to connect datasets with lines:

https://wolfram.com/xid/0btnmzam0g5u-di7k8h


https://wolfram.com/xid/0btnmzam0g5u-ovtan1

Data usually has interactive callouts showing the coordinates when you mouse over them:

https://wolfram.com/xid/0btnmzam0g5u-8q563

Including specific wrappers or interactions such as tooltips turns off the interactive features:

https://wolfram.com/xid/0btnmzam0g5u-hymjpv

Choose from multiple interactive highlighting effects:

https://wolfram.com/xid/0btnmzam0g5u-vvf0r

Options (67)Common values & functionality for each option
ColorFunction (6)
ColorFunction requires at least one dataset to be Joined:

https://wolfram.com/xid/0btnmzam0g5u-qndjj3

Color by scaled and
coordinates:

https://wolfram.com/xid/0btnmzam0g5u-u20z4a

Color with a named color scheme:

https://wolfram.com/xid/0btnmzam0g5u-n3g70b

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

https://wolfram.com/xid/0btnmzam0g5u-lwp

ColorFunction has higher priority than PlotStyle for coloring the curve:

https://wolfram.com/xid/0btnmzam0g5u-p0uon

Use Automatic in MeshShading to use ColorFunction:

https://wolfram.com/xid/0btnmzam0g5u-6xbe8y

ColorFunctionScaling (2)
Filling (6)
Fill from the data to the reference line:

https://wolfram.com/xid/0btnmzam0g5u-zy9b3s

Use symbolic or explicit values for filling:

https://wolfram.com/xid/0btnmzam0g5u-insrrc


https://wolfram.com/xid/0btnmzam0g5u-hgt06w

Curves fill with solid regions:

https://wolfram.com/xid/0btnmzam0g5u-wx4q3z

Fill from the third dataset to the axis:

https://wolfram.com/xid/0btnmzam0g5u-rtozy1

Fill between datasets using a particular style:

https://wolfram.com/xid/0btnmzam0g5u-ba0u8a

Use different styles above and below the filling level:

https://wolfram.com/xid/0btnmzam0g5u-zigo27

FillingStyle (2)
Joined (2)
Mesh (3)
Use 20 mesh levels evenly spaced in the direction:

https://wolfram.com/xid/0btnmzam0g5u-gfbk92

Use the mesh to divide the curve into deciles:

https://wolfram.com/xid/0btnmzam0g5u-se6467

Specify Style and mesh levels in the direction:

https://wolfram.com/xid/0btnmzam0g5u-dft9a9

MeshFunctions (2)
MeshShading (6)
Alternate red and blue segments of equal width in the direction:

https://wolfram.com/xid/0btnmzam0g5u-gky3tn

Use None to remove segments:

https://wolfram.com/xid/0btnmzam0g5u-vr08fl

MeshShading can be used with PlotStyle:

https://wolfram.com/xid/0btnmzam0g5u-fap4gj

MeshShading has higher priority than PlotStyle for styling the curve:

https://wolfram.com/xid/0btnmzam0g5u-kblnl4

Use PlotStyle for some segments by setting MeshShading to Automatic:

https://wolfram.com/xid/0btnmzam0g5u-ojnwt3

MeshShading can be used with ColorFunction:

https://wolfram.com/xid/0btnmzam0g5u-54kv4p

MeshStyle (4)
Color the mesh the same color as the plot:

https://wolfram.com/xid/0btnmzam0g5u-0w1c10

Use a red mesh in the direction:

https://wolfram.com/xid/0btnmzam0g5u-e2f67g

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

https://wolfram.com/xid/0btnmzam0g5u-j9hdji

Use big red mesh points in the direction:

https://wolfram.com/xid/0btnmzam0g5u-7w0q6r

PlotHighlighting (8)
Plots have interactive coordinate callouts with the default setting PlotHighlightingAutomatic:

https://wolfram.com/xid/0btnmzam0g5u-m3e83

Use PlotHighlightingNone to disable the highlighting for the entire plot:

https://wolfram.com/xid/0btnmzam0g5u-hzb99b

Move the mouse over the curve to highlight it with a ball and label:

https://wolfram.com/xid/0btnmzam0g5u-c87sff

Move the mouse over the curve to highlight it with a label and droplines to the axes:

https://wolfram.com/xid/0btnmzam0g5u-2wvi1

Move the mouse over the plot to highlight it with a slice showing values corresponding to the
position:

https://wolfram.com/xid/0btnmzam0g5u-jbys7v

Move the mouse over the plot to highlight it with a slice showing values corresponding to the
position:

https://wolfram.com/xid/0btnmzam0g5u-kbizcu

Use a component that shows the points on the dataset closest to the position of the mouse cursor:

https://wolfram.com/xid/0btnmzam0g5u-c03mp9

Specify the style for the points:

https://wolfram.com/xid/0btnmzam0g5u-vinxh

Use a component that shows the coordinates on the dataset closest to the mouse cursor:

https://wolfram.com/xid/0btnmzam0g5u-bdlygy

Use Callout options to change the appearance of the label:

https://wolfram.com/xid/0btnmzam0g5u-jcph2c

Combine components to create a custom effect:

https://wolfram.com/xid/0btnmzam0g5u-bf2yqm

PlotLegends (7)
By default, no legends are used:

https://wolfram.com/xid/0btnmzam0g5u-31d4aq

Generate a legend using labels:

https://wolfram.com/xid/0btnmzam0g5u-2l9hwo

Generate a legend using placeholders:

https://wolfram.com/xid/0btnmzam0g5u-m2tbba

Legends use the same styles as the plot:

https://wolfram.com/xid/0btnmzam0g5u-yrztzn

Use Placed to specify the legend placement:

https://wolfram.com/xid/0btnmzam0g5u-w6apfn

Place the legend inside the plot:

https://wolfram.com/xid/0btnmzam0g5u-5ao9sp

Use LineLegend to change the legend appearance:

https://wolfram.com/xid/0btnmzam0g5u-vtvtyt

PlotMarkers (7)
ProbabilityPlot normally uses distinct colors to distinguish different sets of data:

https://wolfram.com/xid/0btnmzam0g5u-c6cy0

Automatically use colors and shapes to distinguish sets of data:

https://wolfram.com/xid/0btnmzam0g5u-nnrwdr


https://wolfram.com/xid/0btnmzam0g5u-7huysu

Change the size of the default plot markers:

https://wolfram.com/xid/0btnmzam0g5u-p65wd4

Use arbitrary text for plot markers:

https://wolfram.com/xid/0btnmzam0g5u-9pxjmg

Use explicit graphics for plot markers:

https://wolfram.com/xid/0btnmzam0g5u-nmrgxn

Use the same symbol for all the sets of data:

https://wolfram.com/xid/0btnmzam0g5u-p2hyvg

PlotStyle (3)
Use different style directives:

https://wolfram.com/xid/0btnmzam0g5u-le4jhi

By default, different styles are chosen for multiple curves:

https://wolfram.com/xid/0btnmzam0g5u-fopx6f

Explicitly specify the style for different curves:

https://wolfram.com/xid/0btnmzam0g5u-5zl554

PlotTheme (2)
ReferenceLineStyle (4)
ReferenceLineStyle by default uses a Dotted form of PlotStyle:

https://wolfram.com/xid/0btnmzam0g5u-cngh5y

Draw a dotted red reference line:

https://wolfram.com/xid/0btnmzam0g5u-woov1k

Draw a solid red reference line:

https://wolfram.com/xid/0btnmzam0g5u-qz3gzz

Use None to turn off the reference line:

https://wolfram.com/xid/0btnmzam0g5u-7zeffp

ReferenceLineStyle can be combined with PlotStyle:

https://wolfram.com/xid/0btnmzam0g5u-6uil8q

Applications (3)Sample problems that can be solved with this function
KolmogorovSmirnovTest can be used to create a measure that quantifies the behavior in ProbabilityPlot. The Kolmogorov–Smirnov test statistic is equivalent to the maximum vertical distance between a point in the plot and the reference line:

https://wolfram.com/xid/0btnmzam0g5u-bg3n8i

https://wolfram.com/xid/0btnmzam0g5u-ez06cf

The -value is larger when the points are closer to the reference line:

https://wolfram.com/xid/0btnmzam0g5u-bojuhs

A -test for location assumes that the data was drawn from a NormalDistribution. If this assumption does not hold, a nonparametric test such as a signed-rank test is more appropriate. Suppose one wants to test for a location parameter of zero using the following data:

https://wolfram.com/xid/0btnmzam0g5u-dmcsk

https://wolfram.com/xid/0btnmzam0g5u-idv2h2

The plot suggests that the tails of the distribution are quite heavy. A SignedRankTest for location is more appropriate than the TTest:

https://wolfram.com/xid/0btnmzam0g5u-nybi4

Compare two time slices for a random process:

https://wolfram.com/xid/0btnmzam0g5u-ddkzvs

https://wolfram.com/xid/0btnmzam0g5u-h7wgiu

Properties & Relations (8)Properties of the function, and connections to other functions
With no second argument, data is compared against an estimated normal distribution:

https://wolfram.com/xid/0btnmzam0g5u-etsvo2

https://wolfram.com/xid/0btnmzam0g5u-q2w3m7

QuantilePlot compares quantiles for the data:

https://wolfram.com/xid/0btnmzam0g5u-m1z25u

https://wolfram.com/xid/0btnmzam0g5u-d9gyl5

ProbabilityScalePlot scales the axes so that points from distributions are on a straight line:

https://wolfram.com/xid/0btnmzam0g5u-hwi0gl

https://wolfram.com/xid/0btnmzam0g5u-9pnndn

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

https://wolfram.com/xid/0btnmzam0g5u-nhk363

https://wolfram.com/xid/0btnmzam0g5u-8qhfu8

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

https://wolfram.com/xid/0btnmzam0g5u-lg3ivr

https://wolfram.com/xid/0btnmzam0g5u-da1hac

DiscretePlot can be used to visualize the discrete distributions:

https://wolfram.com/xid/0btnmzam0g5u-2qycmh

Use ListPlot to see the data:

https://wolfram.com/xid/0btnmzam0g5u-17hocn

https://wolfram.com/xid/0btnmzam0g5u-zu3qwy

ProbabilityPlot ignores time stamps when input is a TimeSeries:

https://wolfram.com/xid/0btnmzam0g5u-lslhbg

https://wolfram.com/xid/0btnmzam0g5u-yxyr31

Wolfram Research (2010), ProbabilityPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/ProbabilityPlot.html (updated 2025).
Text
Wolfram Research (2010), ProbabilityPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/ProbabilityPlot.html (updated 2025).
Wolfram Research (2010), ProbabilityPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/ProbabilityPlot.html (updated 2025).
CMS
Wolfram Language. 2010. "ProbabilityPlot." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/ProbabilityPlot.html.
Wolfram Language. 2010. "ProbabilityPlot." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/ProbabilityPlot.html.
APA
Wolfram Language. (2010). ProbabilityPlot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ProbabilityPlot.html
Wolfram Language. (2010). ProbabilityPlot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ProbabilityPlot.html
BibTeX
@misc{reference.wolfram_2025_probabilityplot, author="Wolfram Research", title="{ProbabilityPlot}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/ProbabilityPlot.html}", note=[Accessed: 28-March-2025
]}
BibLaTeX
@online{reference.wolfram_2025_probabilityplot, organization={Wolfram Research}, title={ProbabilityPlot}, year={2025}, url={https://reference.wolfram.com/language/ref/ProbabilityPlot.html}, note=[Accessed: 28-March-2025
]}