- See Also
-
Related Guides
- Data Visualization
- GPU Computing
- Numbers with Uncertainty
- Tabular Visualization
- Discrete Calculus
- Charting and Information Visualization
- Scientific Data Analysis
- Tabular Processing Overview
- Tabular Communication
- Signal Visualization & Analysis
- Handling Arrays of Data
- GPU Computing with NVIDIA
- GPU Computing with Apple
- Statistical Visualization
- Numerical Data
- Financial Visualization
- Function Visualization
- Associations
- Spatial Point Collections
- Probability & Statistics with Quantities
- Audio Representation
- Workflows
- Tech Notes
-
- See Also
-
Related Guides
- Data Visualization
- GPU Computing
- Numbers with Uncertainty
- Tabular Visualization
- Discrete Calculus
- Charting and Information Visualization
- Scientific Data Analysis
- Tabular Processing Overview
- Tabular Communication
- Signal Visualization & Analysis
- Handling Arrays of Data
- GPU Computing with NVIDIA
- GPU Computing with Apple
- Statistical Visualization
- Numerical Data
- Financial Visualization
- Function Visualization
- Associations
- Spatial Point Collections
- Probability & Statistics with Quantities
- Audio Representation
- Workflows
- Tech Notes
ListPlot
Details and Options
- ListPlot is also known as a scatter plot or point plot when given a list of heights yi.
- Regular data {y1,…,yn} is plotted as the points {i,yi}.
- Irregular data {{x1,y1},…,{xn,yn}} is plotted as points {xi,yi}.
- Data values xi and yi can be given in the following forms:
-
xi a real-valued number
- Values xi and yi that are not of the form above are taken to be missing and are not shown.
- The datai have the following forms and interpretations:
-
<|"k1"y1,"k2"y2,…|> values {y1,y2,…}<|x1y1,x2y2,…|> key-value pairs {{x1,y1},{x2,y2},…}{y1"lbl1",y2"lbl2",…}, {y1,y2,…}{"lbl1","lbl2",…} values {y1,y2,…} with labels {lbl1,lbl2,…}SparseArray values as a normal arrayQuantityArray magnitudesWeightedData unweighted values
- ListPlot [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,coly} plot column y against column x{{colx1,coly1},{colx2,coly2},…} plot column y1 against column x1, y2 against x2, …coly, {coly} plot column y as a sequence of values{{coly1},…,{colyi},…} plot columns y1, y2, … as sequences of values
- The colx can also be Automatic , in which case, sequential values are generated using DataRange .
- The following wrappers w can be used for the datai:
-
- Wrappers w can be applied at multiple levels:
-
{…,w[yi],…} wrap the value yi in data{…,w[{xi,yi}],…} wrap the point {xi,yi}w[datai] wrap the dataw[{data1,…}] wrap a collection of dataiw1[w2[…]] use nested wrappers
- Callout , Labeled , and Placed can use the following positions pos:
-
Automatic automatically placed labelsAbove positions above data or pointBelow positions below data or pointBefore positions before data or pointAfter positions after data or point{pos,epos} epos in label placed at relative position pos of the data
- ListPlot has the same options as Graphics , with the following additions and changes: [List of all options]
-
- DataRange determines how values {y1,…,yn} are interpreted into {{x1,y1},…,{xn,yn}}. Possible settings include:
-
{xmin,xmax} uniform from xmin to xmax
- In general a list of pairs {{x1,y1},{x2,y2},…} is interpreted as a list of points, but the setting DataRange All forces it to be interpreted as multiple datai {{y11,y12},{y21,y23},…}. »
- LabelingFunction->f specifies that each point should have a label given by f[value,index,lbls], where value is the value associated with the point, index is its position in the data, and lbls is the list of relevant labels.
- Possible settings for PlotLayout that show multiple curves in a single plot panel include:
-
"Overlaid" show all the data overlapping"Stacked" accumulate the data"Percentile" accumulate and normalize the data
- Possible settings for PlotLayout that show single curves in multiple plot panels include:
-
"Column" use separate plots in a column of panels"Row" use separate plots in a row of panels{"Column",k},{"Row",k} use k columns or rows
- Possible highlighting effects for Highlighted and PlotHighlighting include:
-
style highlight the indicated data"Ball" highlight and label the indicated point in data"Dropline" highlight and label the indicated point in data 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
- 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 legendAutomatic automatically determine legend{lbl1,lbl2,…} use lbl1, lbl2, … as legend labels
- ColorData ["DefaultPlotColors"] gives the default sequence of colors used by PlotStyle .
- ScalingFunctions->"scale" scales the coordinate; ScalingFunctions {"scalex","scaley"} scales both the and coordinates.
- The arguments supplied to functions in ColorFunction are and . Functions in ColorFunction are by default supplied with scaled versions of these arguments.
- Highlight options with settings specific to ListPlot
-
ImageMargins 0. the margins to leave around the graphicPlotLayout "Overlaid" how to position dataPreserveImageOptions Automatic whether to preserve image options when displaying new versions of the same graphic
List of all options
Examples
open all close allBasic Examples (7)
Plot a list of values:
Plot a list of , pairs:
Plot several datai with a legend:
Label each point:
Label each datai:
Plot multiple datasets in a row of panels:
Use individual colors for each point:
Scope (60)
General Data (11)
For regular data consisting of values, the data range is taken to be integer values:
Provide an explicit data range by using DataRange :
Plot multiple sets of regular data:
Include units with the data:
For irregular data consisting of value pairs, the data range is inferred from data:
Plot multiple sets of irregular data:
Plot multiple sets of data, regular or irregular, using DataRange to map them to the same range:
Ranges where the data is nonreal are excluded:
Use MaxPlotPoints to limit the number of points used:
PlotRange is selected automatically:
Use PlotRange to focus on areas of interest:
Use ScalingFunctions to scale the axes:
Tabular Data (1)
Get tabular data:
Plot sepal widths against sepal lengths:
Use PivotToColumns to create columns of sepal length for each species:
Plot petal length against width for each of the species of iris:
Use abbreviated names for extended keys when the elements are unique:
Create a dot plot of petal lengths for each species:
Special Data (9)
Use Quantity to include units with the data:
Include different units for the x and y coordinates:
Plot data in a QuantityArray :
Specify the units used with TargetUnits :
Plot data with uncertainty:
Use intervals:
Specify strings to use as labels:
Specify a location for labels:
Numeric values in an Association are used as the coordinates:
Numeric keys and values in an Association are used as the and coordinates:
Plot TimeSeries directly with automatic date ticks:
Plot data in a SparseArray :
The weights in WeightedData are ignored:
Data Wrappers (6)
Use wrappers on individual data, datasets, or collections of datasets:
Wrappers can be nested:
Use the value of each point as a tooltip:
Use a specific label for all the points:
Labels points with automatically positioned text:
Use PopupWindow to provide additional drilldown information:
Button can be used to trigger any action:
Labeling and Legending (16)
Label points with automatically positioned text:
Place the labels relative to the points:
Label data with Labeled :
Label data with PlotLabels :
Place the label near the points at a x value:
Use a scaled position:
Specify the text position relative to the point:
Label data automatically with Callout :
Place a label with a specific location:
Specify label names with LabelingFunction :
Specify the maximum size of labels:
Use the full label:
For dense sets of points, some labels may be turned into tooltips by default:
Increasing the size of the plot will show more labels:
Include legends for each curve:
Use Legended to provide a legend for a specific dataset:
Use Placed to change the legend location:
Use association keys as labels:
Plots usually have interactive callouts showing the coordinates when you mouse over them:
Including specific wrappers or interactions, such as tooltips, turns off the interactive features:
Choose from multiple interactive highlighting effects:
Use Highlighted to emphasize specific points in a plot:
Highlight multiple points:
Presentation (17)
Multiple datasets are automatically colored to be distinct:
Provide explicit styling to different sets:
Use a plot theme:
Label data with Callout :
Include legends for each curve:
Use Legended to provide a legend for a specific dataset:
Add labels:
Provide an interactive Tooltip for the data:
Create filled plots:
Use shapes to distinguish different datasets:
Use labels to distinguish different datasets:
Use Joined to connect datasets with lines:
Use InterpolationOrder to smooth joined data:
Show multiple sets in a row of separate panels:
Use a column instead of a row:
Use multiple rows or columns:
Plot the data in a stacked layout:
Plot the data as percentiles of the total of the values:
Use different axes for the different items:
Specify where the axes should be placed:
Place shared axes as well:
Options (172)
ClippingStyle (6)
ClippingStyle requires at least one dataset to be Joined :
Omit clipped regions of the plot:
Show clipped regions like the rest of the curve:
Show clipped regions with red lines:
Show clipped regions as red at the bottom and thick at the top:
Show clipped regions as red and thick:
ColorFunction (6)
Use a color function to color points by their values:
Color by scaled and coordinates:
Color with a named color scheme:
Fill 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 the scaled value:
Color the line based on the unscaled value:
DataRange (5)
Lists of height values are displayed against the number of elements:
Rescale to the sampling space:
Each dataset is scaled to the same domain:
Pairs are interpreted as , coordinates:
Specifying DataRange in this case has no effect, since values are part of the data:
Force interpretation as multiple datasets:
Filling (8)
Use symbolic or explicit values for "stem" filling:
Fill between corresponding points in two datasets:
Fill between datasets using a particular style:
Fill between datasets 1 and 2; use red when 1 is less than 2 and blue otherwise:
Fill to the axis for irregularly sampled data:
Use several irregular datasets; filling between them will use the first as the reference:
Joined datasets fill with solid areas:
The type of filling depends on whether the first set is joined:
FillingStyle (4)
Frame (3)
Draw a frame around the plot:
Draw a frame on the left and right edges:
Draw a frame on the left and bottom edges:
FrameLabel (4)
Place a label along the bottom frame of a plot:
Frame labels are placed on the bottom and left frame edges by default:
Place labels on each of the edges in the frame:
Use a customized style for both labels & frame tick labels:
FrameStyle (2)
Specify the style of the frame:
Specify the style for each frame edge:
FrameTicks (9)
Frame ticks are placed automatically by default:
Use a frame with no ticks:
Use frame ticks on the bottom edge:
By default, the top and right edges have tick marks but no tick labels:
Use All to include tick labels on all edges:
Place tick marks at specific positions:
Draw frame tick marks at specified positions with specific labels:
Specify the lengths for tick marks as a fraction of the graphics size:
Use different sizes in the positive and negative directions for each tick mark:
Specify a style for each frame tick:
Construct a function that places ticks at the midpoint and extremes of the frame edge:
FrameTicksStyle (3)
By default, the frame ticks and frame tick labels use the same styles as the frame:
Specify an overall style for the ticks, including the labels:
Use different style for the different frame edges:
ImageSize (1)
The number of points that are labeled directly may depend on the image size:
Smaller graphics will have fewer labeled points:
Larger graphics will have more labeled points:
InterpolationOrder (5)
Joined lines can be interpolated:
By default, linear interpolation is used:
Use zero-order or piecewise-constant interpolation:
Use third-order spline interpolation:
Interpolation order 0 to 5:
IntervalMarkers (3)
By default, uncertainties are capped:
Use bars to denote uncertainties without caps:
Use bands to represent uncertainties:
IntervalMarkersStyle (2)
Uncertainties automatically inherit the plot style:
Specify the style for uncertainties:
Joined (4)
Join the dataset with a line:
Join the first dataset with a line, but use points for the second dataset:
Join the dataset with a line and show the original points:
The type of filling depends on whether the set is joined:
LabelingFunction (6)
By default, points are automatically labeled with strings:
Use LabelingFunction->None to suppress the labels:
Put the labels above the points:
Put them in a tooltip:
Use callouts to label the points:
Label the points with their values:
Label the points with their indices:
LabelingSize (4)
Textual labels are shown at their actual sizes:
Image labels are automatically resized:
Specify a maximum size for textual labels:
Specify a maximum size for image labels:
Show image labels at their natural sizes:
LabelingTarget (7)
Labels are automatically placed to maximize readability:
Show all labels:
Use a denser layout for the labels:
Show the quarter of the labels that are easiest to read:
Only allow labels that are orthogonal to the points:
Only allow labels that are diagonal to the points:
Restrict labels to be above or to the right of the points:
Allow labels to obscure other points:
Allow labels to be clipped by the edges of the plot:
MaxPlotPoints (1)
Mesh (6)
Mesh requires at least one dataset to be Joined :
The initial and final sampling meshes are typically the same:
Interpolated data may introduce points:
Use 20 mesh levels evenly spaced in the direction:
Use an explicit list of values for the mesh in the direction:
Use explicit styles at specific points:
MeshFunctions (3)
MeshFunctions requires at least one dataset to be Joined :
Use a mesh evenly spaced in the and directions:
Show 5 mesh levels in the direction (red) and 10 in the direction (blue):
MeshShading (7)
MeshShading requires at least one dataset to be Joined :
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 PlotStyle for some segments by setting MeshShading to Automatic :
MeshShading can be used with ColorFunction :
MultiaxisArrangement (5)
By default, all items in a plot share the same scale:
Use different axes for the different items:
Any number of axes can be used:
Have the first and second curves share an axis:
Specify where the axes should be placed:
Place shared axes as well:
PlotFit (4)
Automatically fit a model to the data:
Fit a straight line to the data:
Fit a quadratic curve to the data:
Use KernelModelFit to approximate the data:
PlotFitElements (3)
By default, the fitted model is shown with the data points:
Plot confidence bands for the data, with a default confidence level of 0.95:
Use a confidence level of 0.5 for the bands:
Show residual lines from the data points to the fitted curve:
Combine the original points with gray residual lines:
PlotHighlighting (9)
Plots have interactive coordinate callouts with the default setting PlotHighlighting Automatic :
Use PlotHighlighting None to disable the highlighting for the entire plot:
Use Highlighted […,None ] to disable highlighting for a single set:
Move the mouse over a set of points to highlight it using arbitrary graphics directives:
Move the mouse over the points to highlight them with balls and labels:
Use a ball and label to highlight a specific point on the plot:
Move the mouse over the curve to highlight it with a label and droplines to the axes:
Use a ball and label to highlight a specific point in the plot:
Move the mouse over the plot to highlight it with a slice showing values corresponding to the position:
Highlight a particular set of points at a fixed value:
Move the mouse over the plot to highlight it with a slice showing values corresponding to the position:
Highlight the curves at a fixed value:
Use a component that shows the points on the plot closest to the position of the mouse cursor:
Specify the style for the points:
Use a component that shows the coordinates on the points closest to the mouse cursor:
Use Callout options to change the appearance of the label:
Combine components to create a custom effect:
PlotInteractivity (3)
Plots have interactive highlighting by default:
Turn off all the interactive elements:
Allow provided interactive elements and disable automatic ones:
PlotLabel (1)
Add an overall label to the plot:
PlotLabels (6)
Specify text to label sets of points:
Place the labels above the points:
Use callouts to identify the points:
Use the keys from an Association as labels:
Use None to not add a label:
Label multiple curves with {x,y} pair values:
PlotLayout (3)
By default, curves are overlaid on each other:
Plot the data in a stacked layout:
Plot the data as percentiles of the total of the values:
Place each curve in a separate panel using shared axes:
Use rows instead of columns:
Use multiple columns or rows:
Prefer full columns or rows:
Label the individual panels:
PlotLegends (7)
No legend is used, by default:
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 PointLegend to change the legend appearance:
PlotMarkers (8)
ListPlot 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:
Explicitly use a symbol and size:
PlotRange (2)
PlotRange is automatically calculated:
Show the whole dataset:
PlotStyle (7)
Use different style directives:
By default, different styles are chosen for multiple datasets:
Explicitly specify the style for different datasets:
PlotStyle applies to both lines and points:
PlotStyle can be combined with ColorFunction :
PlotStyle can be combined with MeshShading :
PlotTheme (2)
Use a theme with simple ticks and grid lines in a bright color scheme:
Change the color scheme:
ScalingFunctions (9)
By default, plots have linear scales in each direction:
Use a log scale in the direction:
Use a linear scale in the direction that shows smaller numbers at the top:
Use a reciprocal scale in the direction:
Use different scales in the and directions:
Reverse the axis without changing the axis:
Use a scale defined by a function and its inverse:
Positions in Ticks and GridLines are automatically scaled:
PlotRange and AxesOrigin are automatically scaled:
TargetUnits (2)
Automatically detect units:
Specify alternate units:
Applications (9)
Compare the n^(th) prime to an estimate:
Show the evaluation points in the order used by a numerical function:
Show both evaluation points and value used by a numerical function:
Plot life expectancy against birth rates for all the countries:
Show the linear relationship between enthalpy of vaporization and boiling point:
Plot a discrete-time signal and its spectrum:
Plot the probability mass function for a distribution:
Plot the empirical probability mass function:
Plot a solution sequence to a difference equation:
Plot randomly sampled properties:
Plot uncertainties in the mass and radius of exoplanets:
Properties & Relations (14)
By default pairs are interpreted as values:
Interpret the data as multiple datai:
ListLinePlot is a special case of ListPlot :
Use Plot for functions:
Use ListLogPlot , ListLogLogPlot , and ListLogLinearPlot for logarithmic plots:
Use ListPolarPlot for polar plots:
Use DateListPlot to show data over time:
Use ComplexListPlot to plot complex numbers using their real and imaginary parts:
Use ListPointPlot3D to show three-dimensional points:
Use ListLinePlot3D to plot curves through lists of points:
Plot curves through rows of heights in a table:
Use ListPlot3D to create surfaces from data:
Use ListContourPlot to create contours from continuous data:
Use ListDensityPlot to create densities from continuous data:
Use ArrayPlot and MatrixPlot for arrays of discrete values:
Use ParametricPlot for parametric curves:
See Also
ListLinePlot DiscretePlot Plot ListLogPlot DateListPlot ListPolarPlot StackedListPlot ListPointPlot3D ListLinePlot3D ListPlot3D NumberLinePlot Graphics Point Fit
Function Repository: MultipleAxesListPlot
Tech Notes
Related Guides
-
▪
- Data Visualization ▪
- GPU Computing ▪
- Numbers with Uncertainty ▪
- Tabular Visualization ▪
- Discrete Calculus ▪
- Charting and Information Visualization ▪
- Scientific Data Analysis ▪
- Tabular Processing Overview ▪
- Tabular Communication ▪
- Signal Visualization & Analysis ▪
- Handling Arrays of Data ▪
- GPU Computing with NVIDIA ▪
- GPU Computing with Apple ▪
- Statistical Visualization ▪
- Numerical Data ▪
- Financial Visualization ▪
- Function Visualization ▪
- Associations ▪
- Spatial Point Collections ▪
- Probability & Statistics with Quantities ▪
- Audio Representation
Related Workflows
- Change the Style of Points in a 2D Scatter Plot
History
Introduced in 1988 (1.0) | Updated in 2007 (6.0) ▪ 2008 (7.0) ▪ 2012 (9.0) ▪ 2014 (10.0) ▪ 2016 (10.4) ▪ 2016 (11.0) ▪ 2018 (11.3) ▪ 2019 (12.0) ▪ 2021 (13.0) ▪ 2023 (13.3) ▪ 2025 (14.2) ▪ 2025 (14.3)
Text
Wolfram Research (1988), ListPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/ListPlot.html (updated 2025).
CMS
Wolfram Language. 1988. "ListPlot." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/ListPlot.html.
APA
Wolfram Language. (1988). ListPlot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ListPlot.html
BibTeX
@misc{reference.wolfram_2025_listplot, author="Wolfram Research", title="{ListPlot}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/ListPlot.html}", note=[Accessed: 18-November-2025]}
BibLaTeX
@online{reference.wolfram_2025_listplot, organization={Wolfram Research}, title={ListPlot}, year={2025}, url={https://reference.wolfram.com/language/ref/ListPlot.html}, note=[Accessed: 18-November-2025]}