plots a line through the points {1,y1}, , {n,yn}.


plots a line through the points {x1,y1}, , {xn,yn}.


plots lines from all the datai.


plots datai with features defined by the symbolic wrapper w.

Details and Options

  • ListLinePlot is also known as a line plot or line chart.
  • Regular data {y1,,yn} is plotted as a functional curve through the points {i,yi}.
  • Irregular data {{x1,y1},,{xn,yn}} is plotted as the free-form curve through the points {xi,yi}.
  • Data values xi and yi can be given in the following forms:
  • xia real-valued number
    Quantity[xi,unit]a quantity with a unit
    Around[xi,ei]value xi with uncertainty ei
    Interval[{xmin,xmax}]values between xmin and xmax
  • 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,}
    SparseArrayvalues as a normal array
    TimeSeries, EventSeriestime-value pairs
    WeightedDataunweighted values
  • The following wrappers w can be used for the datai:
  • Annotation[datai,label]provide an annotation for the data
    Button[datai,action]define an action to execute when the data is clicked
    Callout[datai,label]label the data with a callout
    Callout[datai,label,pos]place the callout at relative position pos
    EventHandler[datai,events]define a general event handler for the data
    Hyperlink[datai,uri]make the data a hyperlink
    Labeled[datai,label]label the data
    Labeled[datai,label,pos]place the label at relative position pos
    Legended[datai,label]identify the data in a legend
    PopupWindow[datai,cont]attach a popup window to the data
    StatusArea[datai,label]display in the status area on mouseover
    Style[datai,styles]show the data using the specified styles
    Tooltip[datai,label]attach a tooltip to the curve
  • 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 data
    w[{data1,}]wrap a collection of datai
    w1[w2[]]use nested wrappers
  • Callout, Labeled, and Placed can use the following positions pos:
  • Aboveposition above curve
    Belowposition below curve
    Beforeposition before curve
    Afterposition after curve
    "Start"position at start of each curve
    "End"position at end of each curve
    xnear the curve at a position x
    Scaled[s]scaled position s along the curve
    {s,Above}Above relative position at position s along the curve
    {s,Below}Below relative position at position s along the curve
    {pos,epos}epos in label placed at relative position pos of the curve
  • ListLinePlot has the same options as Graphics, with the following additions and changes:
  • AspectRatio1/GoldenRatioratio of height to width
    AxesTruewhether to draw axes
    ClippingStyle Nonewhat to draw when lines are clipped
    ColorFunction Automatichow to determine the coloring of lines
    ColorFunctionScaling Truewhether to scale arguments to ColorFunction
    DataRange Automaticthe range of x values to assume for data
    Filling Nonefilling under each line
    FillingStyle Automaticstyle to use for filling
    InterpolationOrder Nonethe polynomial degree of curves used in joining data points
    IntervalMarkers Automatichow to render uncertainty
    IntervalMarkersStyle Automaticstyle for uncertainty elements
    LabelingFunction Automatichow to label points
    LabelingSize Automaticmaximum size of callouts and labels
    MaxPlotPoints Infinitythe maximum number of points to include
    Mesh Nonehow many mesh points to draw on each line
    MeshFunctions {#1&}how to determine the placement of mesh points
    MeshShading Nonehow to shade regions between mesh points
    MeshStyle Automaticthe style for mesh points
    MethodAutomaticmethods to use
    MultiaxisArrangement Nonehow to arrange multiple axes for data
    PerformanceGoal$PerformanceGoalaspects of performance to try to optimize
    PlotLabel Noneoverall label for the plot
    PlotLabels Nonelabels for data
    PlotLayout "Overlaid"how to position data
    PlotLegends Nonelegends for data
    PlotMarkers Nonemarkers to use to indicate each point
    PlotRange Automaticrange of values to include
    PlotRangeClippingTruewhether to clip at the plot range
    PlotStyle Automaticgraphics directives to determine the style of each line
    PlotTheme $PlotThemeoverall theme for the plot
    ScalingFunctions Nonehow to scale individual coordinates
    TargetUnits Automaticunits to display in the plot
  • DataRange determines how values {y1,,yn} are interpreted into {{x1,y1},,{xn,yn}}. Possible settings include:
  • Automatic,Alluniform from 1 to n
    {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 DataRangeAll forces it to be interpreted as multiple data sources {{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 curves in a column of panels
    "Row"use separate curves in a row of panels
    {"Column",k},{"Row",k}use k columns or rows
    {"Column",UpTo[k]},{"Row",UpTo[k]}use at most k columns or rows
  • Typical settings for PlotLegends include:
  • Noneno legend
    Automaticautomatically determine legend
    {lbl1,lbl2,}use lbl1, lbl2, as legend labels
    Placed[lspec,]specify placement for legend
  • ScalingFunctions->"scale" scales the coordinate; ScalingFunctions{"scalex","scaley"} scales both the and coordinates.


open allclose all

Basic Examples  (6)

Plot a list of values:

Adding filling under the line:

Plot a list of , pairs:

Plot multiple datasets with a legend:

Plot multiple datasets in a row of panels:

Plot values including units:

Scope  (52)

General Data  (10)

Lines are drawn through the data points:

Use , pairs:

Show multiple sets of data:

The plot range is selected automatically:

Specify what values the data ranges over:

Ranges where the data is nonreal are excluded:

Use InterpolationOrder to smooth the data:

Use MaxPlotPoints to limit the number of points used:

Use PlotRange to focus in on areas of interest:

Use ScalingFunctions to scale the axes:

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:

Use bands to represent uncertainty:

Specify strings to use as labels:

Specify a location for labels:

Numeric values in an Association are used as the y coordinates:

Numeric keys and values in an Association are used as the x and y coordinates:

Plot TimeSeries directly with automatic date ticks:

Plot data in a SparseArray:

The weights in WeightedData are ignored:

Data Wrappers  (7)

Use wrappers on data sources or collections of data sources:

Use the value of each point as a tooltip:

Use a specific tooltip for the curve:

Use PopupWindow to provide additional drilldown information:

Button can be used to trigger any action:

Use Annotation for dynamic action when the mouse enters the plot:

Use Hyperlink to jump to the specified link when clicked:

Use StatusArea to display a string in the status area of the current notebook:

Labeling and Legending  (11)

Label data sources with Labeled:

Specify the labels with PlotLabels:

Place the label near the points at an x value:

Use a scaled position:

Specify the text position relative to the point:

Label data automatically with Callout:

Place a label with specific locations:

Specify label names with LabelingFunction:

Specify the maximum size of labels:

Use the full label:

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:

Presentation  (15)

Multiple curves are automatically colored to be distinct:

Provide explicit styling to different curves:

Use a theme with simple ticks in a bold color scheme:

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:

Create an overlay mesh:

Use shapes to distinguish different datasets:

Style the curve segments between mesh points:

Show multiple curves 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  (131)

ClippingStyle  (5)

Omit clipped regions of the plot:

Show the 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  (5)

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 the ColorFunction:

ColorFunctionScaling  (2)

Color the line based on scaled value:

Color the line based on 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:

Fills that overlap by default combine using opacity:

Fill between the first curve and the axis:

Fill between two lines:

Fill between curves 1 and 2 with a specific style:

Fill between curves 1 and with light orange:

Fill between curves 1 and 2; use yellow when 1 is below 2, and green when 1 is above 2:

Filling between curves applies where the curves overlap:

FillingStyle  (4)

Use different fill colors:

Fill with opacity 0.5 orange:

Fill with red below the axis, and with blue above:

Use a variable filling style obtained from ColorFunction:

InterpolationOrder  (3)

Points are normally joined with straight lines:

Use quadratic spline interpolation to fit the data:

Use flat regions with steps at each data point:

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:

LabelingFunction  (6)

By default, points are automatically labeled with strings:

Use LabelingFunction->None to suppress the labels:

Put the labels above the points:

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:

MaxPlotPoints  (4)

All points are included by default:

Uniformly spaced data is downsampled:

In this case, downsampling from to points:

Nonuniform data topologically subsampled, to preserve features:

Points on either side of nonreal data are always included:

Mesh  (5)

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:

Specify style and mesh levels in the direction:

MeshFunctions  (2)

Use a mesh evenly spaced in the and directions:

Show 5 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 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:

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:

PlotLabel  (1)

Add an overall label to the plot:

PlotLabels  (5)

Specify text to label sets of points:

Place the labels above the points:

Use callouts to identify the points:

Label curves with the keys from an association:

Use None to not label a data source:

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:

Label the individual panels:

PlotLegends  (5)

Generate a legend using labels:

Generate a legend using placeholders:

Legends use the same styles as the plot:

Use Placed to specify legend placement:

Place the legend inside the plot:

Use LineLegend to change the legend appearance:

PlotMarkers  (8)

ListLinePlot 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  (6)

Use different style directives:

By default, different styles are chosen for multiple curves:

Explicitly specify the style for different curves:

PlotStyle can be combined with ColorFunction:

PlotStyle can be combined with MeshShading:

MeshStyle by default uses the same style as PlotStyle:

PlotTheme  (3)

Use a theme with simple styling and plot markers in a bright color scheme:

Change the color scheme:

Use a theme with minimal styling:

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:

Ticks  (10)

Ticks are placed automatically in each plot:

Use TicksNone to draw axes without any tick marks:

Use ticks on the axis, but not the axis:

Place tick marks at specific positions:

Draw tick marks at the specified positions with the specified labels:

Draw tick marks at the specified positions with the specified labels:

Use specific ticks on one axis and automatic ticks on the other:

Specify the lengths for axes as a fraction on graphics size:

Use different sizes in the positive and negative directions for each tick:

Specify a style for each tick:

Construct a function that places ticks at the midpoint and extremes of the axis:

TicksStyle  (4)

By default, the ticks and tick labels use the same styles as the axis:

Specify an overall ticks style, including the tick labels:

Specify ticks style for each of the axes:

Use a different style for the tick labels and tick marks:

Applications  (9)

Compare the n^(th) prime to an estimate:

Show a random walk in one dimension:

Show a random walk in two dimensions:

Random walk on a lattice:

Compute and plot the shortest tour through 100 random points:

Create a stacked line chart:

Show the numbers of graphs with different numbers of nodes available in GraphData:

Show the density at standard temperature and pressure for the elements:

Distribution of Wolfram Language symbols by length:

Plot the sample behavior for different Wolfram Language functions:

Plot the sample order in the , space used by Plot3D:

Properties & Relations  (13)

By default, pairs are interpreted as values:

Interpret the data as multiple data sources:

ListLinePlot is a special case of ListPlot:

Use Plot to visualize functions:

Use ListLogPlot, ListLogLogPlot, and ListLogLinearPlot for logarithmic data plots:

Use ListPolarPlot for polar plots:

Use DateListPlot to show data over time:

Use ListPointPlot3D to show three-dimensional data plots:

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:

Possible Issues  (2)

Limiting the number of points may introduce artifacts:

Use more points to have fewer artifacts:

Unordered data may display in unexpected ways:

Sort the data to interpret as a function:

Wolfram Research (2007), ListLinePlot, Wolfram Language function, (updated 2019).


Wolfram Research (2007), ListLinePlot, Wolfram Language function, (updated 2019).


Wolfram Language. 2007. "ListLinePlot." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019.


Wolfram Language. (2007). ListLinePlot. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2023_listlineplot, author="Wolfram Research", title="{ListLinePlot}", year="2019", howpublished="\url{}", note=[Accessed: 30-May-2023 ]}


@online{reference.wolfram_2023_listlineplot, organization={Wolfram Research}, title={ListLinePlot}, year={2019}, url={}, note=[Accessed: 30-May-2023 ]}