---
title: "ListLinePlot3D"
language: "en"
type: "Symbol"
summary: "ListLinePlot3D[{{x1, y1, z1}, {x2, y2, z2}, ..., {xn, yn, zn}}] plots a curve through the 3D points {xi, yi, zi}. ListLinePlot3D[{{z11, z12, ..., z 1 n}, ..., {z m 1, z m 2, ..., zmn}}] plots each row {z i 1, z i 2, ..., z in} as a curve in the x direction, with successive curves stacked in the y direction. ListLinePlot3D[{data1, data2, ...}] plots curves through multiple sets of {x, y, z} points."
keywords: 
- 3D curve plot
- line plot 3D
- ridgeline plot
- 3D path plot
- 3D stacked plot
- 3D line graph
- 3D line plot
- 3D area plot
- 3D area graph
- ridge graph
- slice graph
- ridge contour
- layer graph
- strata graph
- partition plot
- spectral plot
canonical_url: "https://reference.wolfram.com/language/ref/ListLinePlot3D.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Data Visualization"
    link: "https://reference.wolfram.com/language/guide/DataVisualization.en.md"
  - 
    title: "Tabular Visualization"
    link: "https://reference.wolfram.com/language/guide/TabularVisualization.en.md"
related_functions: 
  - 
    title: "ListLinePlot"
    link: "https://reference.wolfram.com/language/ref/ListLinePlot.en.md"
  - 
    title: "ListPointPlot3D"
    link: "https://reference.wolfram.com/language/ref/ListPointPlot3D.en.md"
  - 
    title: "ListPlot3D"
    link: "https://reference.wolfram.com/language/ref/ListPlot3D.en.md"
  - 
    title: "ParametricPlot3D"
    link: "https://reference.wolfram.com/language/ref/ParametricPlot3D.en.md"
  - 
    title: "ListPlot"
    link: "https://reference.wolfram.com/language/ref/ListPlot.en.md"
  - 
    title: "DiscretePlot3D"
    link: "https://reference.wolfram.com/language/ref/DiscretePlot3D.en.md"
  - 
    title: "StackedListPlot"
    link: "https://reference.wolfram.com/language/ref/StackedListPlot.en.md"
---
# ListLinePlot3D

ListLinePlot3D[{{x1, y1, z1}, {x2, y2, z2}, …, {xn, yn, zn}}] plots a curve through the 3D points {xi, yi, zi}.

ListLinePlot3D[{{z11, z12, …, z1n}, …, {zm1, zm2, …, zmn}}] plots each row {zi1, zi2, …, zin} as a curve in the $x$ direction, with successive curves stacked in the $y$ direction. 

ListLinePlot3D[{data1, data2, …}] plots curves through multiple sets of {x, y, z} points.

## Details and Options

* ``ListLinePlot3D`` is also known as 3D line graph, or 3D area graph when the area under the curve is filled. When showing each row of the data as a separate curve, ``ListLinePlot3D`` is also known as a ridgeline plot.

* ``ListLinePlot3D`` allows you to draw curves in 3D through a given set of points.

[image]

* Data values ``xi``, ``yi`` and ``zi`` can be given in the following forms:

|                        |                               |
| ---------------------- | ----------------------------- |
| xi                     | a 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``, ``yi`` and ``zi`` that are not of the preceding form are taken to be missing and are not shown.

* The ``datai`` have the following forms and interpretations:

<\|"Subscript[k, 1]"->{Subscript[x, 1],Subscript[y, 1],Subscript[z, 1]},"Subscript[k, 2]"->{Subscript[x, 2],Subscript[y, 2],Subscript[z, 2]},\[Ellipsis]\|>	values {{Subscript[x, 1],Subscript[y, 1],Subscript[z, 1]},{Subscript[x, 2],Subscript[y, 2],Subscript[z, 2]},\[Ellipsis]}
      	{{Subscript[x, 1],Subscript[y, 1],Subscript[z, 1]}->"Subscript[lbl, 1]",{Subscript[x, 2],Subscript[y, 2],Subscript[z, 2]}->"Subscript[lbl, 2]",\[Ellipsis]}, data->{"Subscript[lbl, 1]","Subscript[lbl, 2]",\[Ellipsis]}	values {{Subscript[x, 1],Subscript[y, 1],Subscript[z, 1]},{Subscript[x, 2],Subscript[y, 2],Subscript[z, 2]},\[Ellipsis]} with labels {Subscript[lbl, 1],Subscript[lbl, 2],\[Ellipsis]}
      	SparseArray	values as a normal array
      	QuantityArray	magnitudes
      	WeightedData	unweighted values

* ``ListLinePlot3D[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, colz}                                | plot values from columns colx, coly and colz             |
| {{colx1, coly1, colz1}, {colx2, coly2, colz2}, …} | plot values from multiple sets of columns                |
| {{colz1}, {colz2}, …}                             | plot each column colz1, colz2, … as sequences of heights |

* 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, …]     | 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 data                         |
| Tooltip[datai]             | use data values as tooltips                          |

* Wrappers ``w`` can be applied at multiple levels:

|                         |                                    |
| ----------------------- | ---------------------------------- |
| {{…, w[zi, j], …}}      | wrap the value zi, j in array data |
| {…, w[{xi, yi, zi}], …} | wrap the point {xi, yi, zi}        |
| w[datai]                | wrap the data                      |
| w[{data1, …}]           | wrap a collection of datai         |
| w1[w2[…]]               | use nested wrappers                |

* ``ListLinePlot3D`` takes the same options as ``Graphics3D`` with the following additions and changes: []

|                       |                               |                                                      |
| :-------------------- | :---------------------------- | :--------------------------------------------------- |
| Axes                  | True                          | whether to draw axes                                 |
| BoxRatios             | {1, 1, 0.4}                   | bounding 3D box ratios                               |
| ColorFunction         | Automatic                     | how to determine the color of points                 |
| ColorFunctionScaling  | True                          | whether to scale arguments to ColorFunction          |
| DataRange             | Automatic                     | the range of x and y values to assume for data       |
| Filling               | None                          | how to fill in stems for each point                  |
| FillingStyle          | Automatic                     | style to use for filling                             |
| IntervalMarkers       | Automatic                     | how to render uncertainty                            |
| IntervalMarkersStyle  | Automatic                     | style for uncertainty elements                       |
| Joined                | True                          | whether to join the points                           |
| LabelingFunction      | Automatic                     | how to label points                                  |
| LabelingSize          | Automatic                     | size to use for callout and label                    |
| Mesh                  | None                          | how many mesh points to draw on each line            |
| 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                            |
| PerformanceGoal       | \$PerformanceGoal             | aspects of performance to try to optimize            |
| PlotLabels            | None                          | labels to use for curves                             |
| PlotLegends           | None                          | legends for points                                   |
| PlotMarkers           | None                          | markers to use for points                            |
| PlotRange             | {Full, Full, Automatic}       | the range of z or other values to include            |
| PlotRangePadding      | Automatic                     | how much to pad the range of values                  |
| PlotStyle             | Automatic                     | styles of points                                     |
| PlotTheme             | \$PlotTheme                   | overall theme for the plot                           |
| RegionFunction        | (True&)                       | how to determine whether a point should be included  |
| RegionBoundaryStyle   | $$\fbox{$\text{Automatic}$}$$ | style to use for a region                            |
| ScalingFunctions      | None                          | how to scale individual coordinates                  |

* ``ListLinePlot3D[{{z11, z12, …}, …}]`` by default takes the ``x`` and ``y`` coordinate values for each data point to be successive integers starting at 1.

* The setting ``DataRange -> {{xmin, xmax}, {ymin, ymax}}`` specifies other ranges of coordinate values to use.

* With the default setting ``DataRange -> Automatic``, ``ListLinePlot3D[{{z11, z12, z13}, …, {zn 1, zn 2, zn 3}}]`` will assume that the data being given is ``{{x1, y1, z1}, …}``, rather than an $n$×3 array of heights.

* ``ListLinePlot3D[data, DataRange -> All]`` always takes ``data`` to represent an array of heights.

* Possible settings for ``PlotMarkers`` include:

|                             |                                              |
| --------------------------- | -------------------------------------------- |
| None                        | omit markers when drawing surfaces           |
| "Point"                     | use 2D points as markers                     |
| "Sphere"                    | use 3D spheres as markers                    |
| {"Point", s}, {"Sphere", s} | specify the size s of the markers            |
| {spec1, spec2, …}           | use specification speci for expression expri |

* The marker size ``s`` can be a symbolic value such as ``Tiny``, ``Small``, ``Medium`` and ``Large`` or a scaled fraction of the width of the graphic.

* Possible settings for ``IntervalMarkers`` include:

|         |         |                                |
| ------- | ------- | ------------------------------ |
| [image] | "Bars"  | draw bars to represent errors  |
| [image] | "Tubes" | draw tubes to represent errors |

* Possible settings for ``ScalingFunctions`` include:

|              |                       |
| ------------ | --------------------- |
| sz           | scale the z axis      |
| {sx, sy}     | scale x and y axes    |
| {sx, sy, sz} | scale x, y and z axes |

* Each scaling function ``si`` is either a string ``"scale"`` or ``{g, g^-1}``, where ``g^-1`` is the inverse of ``g``.

* The arguments supplied to functions in ``MeshFunctions`` and ``RegionFunction`` are $x$, $y$ and $z$. Functions in ``ColorFunction`` are by default supplied with scaled versions of these arguments.

### List of all options

|                      |                               |                                                                                    |
| -------------------- | ----------------------------- | ---------------------------------------------------------------------------------- |
| AlignmentPoint       | Center                        | the default point in the graphic to align with                                     |
| AspectRatio          | Automatic                     | ratio of height to width                                                           |
| Axes                 | True                          | whether to draw axes                                                               |
| AxesEdge             | Automatic                     | on which edges to put axes                                                         |
| AxesLabel            | None                          | axes labels                                                                        |
| AxesOrigin           | Automatic                     | where axes should cross                                                            |
| AxesStyle            | {}                            | graphics directives to specify the style for 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                                          |
| Boxed                | True                          | whether to draw the bounding box                                                   |
| BoxRatios            | {1, 1, 0.4}                   | bounding 3D box ratios                                                             |
| BoxStyle             | {}                            | style specifications for the box                                                   |
| ClipPlanes           | None                          | clipping planes                                                                    |
| ClipPlanesStyle      | Automatic                     | style specifications for clipping planes                                           |
| ColorFunction        | Automatic                     | how to determine the color of points                                               |
| ColorFunctionScaling | True                          | whether to scale arguments to ColorFunction                                        |
| ContentSelectable    | Automatic                     | whether to allow contents to be selected                                           |
| ControllerLinking    | False                         | when to link to external rotation controllers                                      |
| ControllerPath       | Automatic                     | what external controllers to try to use                                            |
| DataRange            | Automatic                     | the range of x and y values to assume for data                                     |
| Epilog               | {}                            | 2D graphics primitives to be rendered after the main plot                          |
| FaceGrids            | None                          | grid lines to draw on the bounding box                                             |
| FaceGridsStyle       | {}                            | style specifications for face grids                                                |
| Filling              | None                          | how to fill in stems for each point                                                |
| FillingStyle         | Automatic                     | style to use for filling                                                           |
| FormatType           | TraditionalForm               | default format type for text                                                       |
| ImageMargins         | 0.                            | the margins to leave around the graphic                                            |
| ImagePadding         | All                           | what extra padding to allow for labels, etc.                                       |
| ImageSize            | Automatic                     | absolute size at which to render the graphic                                       |
| IntervalMarkers      | Automatic                     | how to render uncertainty                                                          |
| IntervalMarkersStyle | Automatic                     | style for uncertainty elements                                                     |
| Joined               | True                          | whether to join the points                                                         |
| LabelingFunction     | Automatic                     | how to label points                                                                |
| LabelingSize         | Automatic                     | size to use for callout and label                                                  |
| LabelStyle           | {}                            | style specifications for labels                                                    |
| Lighting             | Automatic                     | simulated light sources to use                                                     |
| Mesh                 | None                          | how many mesh points to draw on each line                                          |
| 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                     | details of 3D graphics methods to use                                              |
| PerformanceGoal      | \$PerformanceGoal             | aspects of performance to try to optimize                                          |
| PlotLabel            | None                          | a label for the plot                                                               |
| PlotLabels           | None                          | labels to use for curves                                                           |
«2 rows removed»
| PlotRange            | {Full, Full, Automatic}       | the range of z or other values to include                                          |
| PlotRangePadding     | Automatic                     | how much to pad the range of values                                                |
| PlotRegion           | Automatic                     | final display region to be filled                                                  |
| PlotStyle            | Automatic                     | styles of points                                                                   |
| PlotTheme            | \$PlotTheme                   | overall theme for the plot                                                         |
| PreserveImageOptions | Automatic                     | whether to preserve image options when displaying new versions of the same graphic |
| Prolog               | {}                            | 2D graphics primitives to be rendered before the main plot                         |
| RegionBoundaryStyle  | $$\fbox{$\text{Automatic}$}$$ | style to use for a region                                                          |
| RegionFunction       | (True&)                       | how to determine whether a point should be included                                |
| RotationAction       | "Fit"                         | how to render after interactive rotation                                           |
| ScalingFunctions     | None                          | how to scale individual coordinates                                                |
| SphericalRegion      | Automatic                     | whether to make the circumscribing sphere fit in the final display area            |
| Ticks                | Automatic                     | specification for ticks                                                            |
| TicksStyle           | {}                            | style specification for ticks                                                      |
| TouchscreenAutoZoom  | False                         | whether to zoom to fullscreen when activated on a touchscreen                      |
| ViewAngle            | Automatic                     | angle of the field of view                                                         |
| ViewCenter           | Automatic                     | point to display at the center                                                     |
| ViewMatrix           | Automatic                     | explicit transformation matrix                                                     |
| ViewPoint            | {1.3, -2.4, 2.}               | viewing position                                                                   |
| ViewProjection       | Automatic                     | projection method for rendering objects distant from the viewer                    |
| ViewRange            | All                           | range of viewing distances to include                                              |
| ViewVector           | Automatic                     | position and direction of a simulated camera                                       |
| ViewVertical         | {0, 0, 1}                     | direction to make vertical                                                         |

---

## Examples (138)

### Basic Examples (5)

Plot a path through a set of points:

```wl
In[1]:= ListLinePlot3D[{{0, 0, 0}, {1, 0, 1}, {1, 1, 2}, {2, 2, 2}, {2, 4, 3}, {3, 6, 4}}]

Out[1]= [image]
```

---

Fill the area under the curve:

```wl
In[1]:= ListLinePlot3D[{{0, 0, 0}, {1, 0, 1}, {1, 1, 2}, {2, 2, 2}, {2, 4, 3}, {3, 6, 4}}, Filling -> Bottom]

Out[1]= [image]
```

---

Plot multiple filled paths at successive locations along the axis:

```wl
In[1]:= ListLinePlot3D[{{2.1, 2.9, 2.8, 1.9, 1.1, 1.2, 2.1}, {2.2, 2.7, 1.1, 2.2, 2.7, 1.1, 2.2}, {2.3, 1.7, 2.3, 1.7, 2.3, 1.7, 2.3}, {2.4, 1.0, 2.6, 2.4, 1.0, 2.6, 2.4}}]

Out[1]= [image]
```

---

Plot multiple filled paths at successive locations along the axis:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«data»], Filling -> Axis]

Out[1]= [image]
```

---

Plot multiple curves through space:

```wl
In[1]:= ListLinePlot3D[Table[{r Sin[t], r Cos[t], Cos[r t]}, {r, 4}, {t, 0, 2Pi, Pi / 15}]]

Out[1]= [image]
```

### Scope (36)

#### General Data (7)

For regular data consisting of $z$ values, the $x$ and $y$ data ranges are taken to be integer values:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»]]

Out[1]= [image]
```

---

Provide explicit $x$ and $y$ data ranges by using ``DataRange`` :

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], DataRange -> {{0, 1}, {0, 1}}]

Out[1]= [image]
```

---

For irregular data consisting of $\{x,y,z\}$ triples, the $x$ and $y$ data ranges are inferred from the data:

```wl
In[1]:= ListLinePlot3D[Table[{i, Cos[i], Sin[i]}, {i, 0, 20, .1}]]

Out[1]= [image]
```

---

Plot multiple sets of irregular data:

```wl
In[1]:=
data1 = Table[{i, Cos[i], Sin[i]}, {i, 0, 20, .1}];
data2 = Table[{i, Cos[i + Pi / 2], Sin[i + Pi / 2]}, {i, 0, 20, .1}];

In[2]:= ListLinePlot3D[{data1, data2}]

Out[2]= [image]
```

---

Areas around where the data is nonreal are excluded:

```wl
In[1]:= ListLinePlot3D[Table[Sqrt[2 - i ^ 2 - j ^ 2], {i, -2, 2, .1}, {j, -2, 2, .1}]]

Out[1]= [image]
```

---

``PlotRange`` is selected automatically:

```wl
In[1]:= ListLinePlot3D[Table[1 / (x ^ 2 + y ^ 2), {x, -2, 2, 8 / 51}, {y, -2, 2, 8 / 51}]]

Out[1]= [image]
```

Use ``PlotRange`` to focus in on areas of interest:

```wl
In[2]:= {ListLinePlot3D[Table[x ^ 4 + y ^ 4 - x ^ 2 - y ^ 2 + 1, {x, -2, 2, 0.15}, {y, -2, 2, 0.15}]], ListLinePlot3D[Table[x ^ 4 + y ^ 4 - x ^ 2 - y ^ 2 + 1, {x, -2, 2, 0.15}, {y, -2, 2, 0.15}], PlotRange -> {0, 2}]}

Out[2]= {[image], [image]}
```

---

Use ``RegionFunction`` to restrict lines to a region given by inequalities:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], RegionFunction -> (#1 ^ 2 + #2 ^ 2 < 7&), DataRange -> {{-Pi, Pi}, {-Pi, Pi}}]

Out[1]= [image]
```

#### Tabular Data (1)

Get tabular data:

```wl
In[1]:= tabdata = Tabular[IconizedObject[«waves»], {"n=1", "n=2", "n=3", "n=4", "n=5", "n=6"}]

Out[1]=
Tabular[Association["RawSchema" -> Association["ColumnProperties" -> 
     Association["n=1" -> Association["ElementType" -> "Real64"], 
      "n=2" -> Association["ElementType" -> "Real64"], 
      "n=3" -> Association["ElementType" -> "Real64"],  ... 64814730119271, 1.1050599544663169, 0.9675390689570036, 
             0.94379447076751, 1.0441995714318935, 1.1859235307290874, 1.2808436971118813, 
             1.2974606473182722, 1.2580447225693001}, {}, None}, "ElementType" -> "Real64"]]}}]]]]
```

Plot separate curves for separate columns:

```wl
In[2]:=
ListLinePlot3D[tabdata -> {{"n=1"}, {"n=2"}, {"n=3"
	}, {"n=4"}, {"n=5"}, {"n=6"}}]

Out[2]= [image]
```

Get temperature data for a few years, split by city:

```wl
In[1]:= temps = PivotToColumns[Tabular[IconizedObject[«Temperature data»], {"IndexDate", "Date", "City", "Temperature"}], "City" -> "Temperature"]

Out[1]=
Tabular[Association["RawSchema" -> Association["ColumnProperties" -> 
     Association["IndexDate" -> Association["ElementType" -> "Integer64"], 
      "Date" -> Association["ElementType" -> TypeSpecifier["Date"]["Integer64", "Month", 
          "G ... ypeSpecifier["Quantity"]["Real64", "DegreesFahrenheit"]]], 
        TabularColumn[Association["Data" -> {49, {{CompressedData["«303»"], {}, None}}, None}, 
          "ElementType" -> TypeSpecifier["Quantity"]["Real64", "DegreesFahrenheit"]]]}}]]]]
```

Plot the temperatures as separate curves over time:

```wl
In[15]:= ListLinePlot3D[temps -> {{"Austin"}, {"Atlanta"}, {"Denver"}, {"Miami"}, {"New York City"}}]

Out[15]= [image]
```

#### Special Data (6)

Use ``Quantity`` to include units with the data:

```wl
In[1]:= ListLinePlot3D[Quantity[RandomReal[1, {6, 3}], "Meters"], AxesLabel -> Automatic]

Out[1]= [image]
```

---

Plot data in a ``QuantityArray`` :

```wl
In[1]:=
temps = QuantityArray[StructuredArray`StructuredData[{6, 28}, 
  {CompressedData["«733»"], "DegreesFahrenheit", {{2}, {1}}}]];

In[2]:= cities = {Entity["City", {"Austin", "Texas", "UnitedStates"}], Entity["City", {"Atlanta", "Georgia", "UnitedStates"}], Entity["City", {"Chicago", "Illinois", "UnitedStates"}], Entity["City", {"Denver", "Colorado", "UnitedStates"}], Entity["City", {"Miami", "Florida", "UnitedStates"}], Entity["City", {"NewYork", "NewYork", "UnitedStates"}]};

In[3]:= ListLinePlot3D[temps, AxesLabel -> Automatic, PlotLegends -> cities]

Out[3]= [image]
```

Specify the units used with ``TargetUnits`` :

```wl
In[4]:= ListLinePlot3D[temps, TargetUnits -> {None, None, "DegreesCelsius"}, AxesLabel -> Automatic, PlotLegends -> cities]

Out[4]= [image]
```

---

Plot data with uncertainty:

```wl
In[1]:= zvar = Table[Around[Sin[x] Cos[y], 0.25], {x, -4, 4}, {y, -4, 4}];

In[2]:= ListLinePlot3D[zvar]

Out[2]= [image]
```

---

Plot data from time series with automatic date ticks:

```wl
In[1]:= cities = {Entity["City", {"Austin", "Texas", "UnitedStates"}], Entity["City", {"Atlanta", "Georgia", "UnitedStates"}], Entity["City", {"Chicago", "Illinois", "UnitedStates"}], Entity["City", {"Denver", "Colorado", "UnitedStates"}], Entity["City", {"Miami", "Florida", "UnitedStates"}], Entity["City", {"NewYork", "NewYork", "UnitedStates"}]};

In[2]:= data = AirTemperatureData[cities, {DateObject[{2021, 2, 1}, "Day", "Gregorian", -5.], DateObject[{2021, 2, 28}, "Day", "Gregorian", -5.], "Day"}];

In[3]:= ListLinePlot3D[data, PlotLegends -> cities]

Out[3]= [image]
```

---

Specify strings to use as labels:

```wl
In[1]:= ListLinePlot3D[RandomReal[1, {6, 3}] -> RandomWord[6], LabelingFunction -> Callout]

Out[1]= [image]
```

---

Plot data in a ``SparseArray`` :

```wl
In[1]:= ListLinePlot3D[SparseArray[{{i_, i_} -> -2, {i_, j_} /; Abs[i - j] == 1 -> 1}, {5, 5}]]

Out[1]= [image]
```

#### Data Wrappers (6)

Use a wrapper to style a specific curve:

```wl
In[1]:= ListLinePlot3D[{Style[IconizedObject[«curve A»], Green], IconizedObject[«curve B»]}]

Out[1]= [image]
```

---

Apply a style to all the curves:

```wl
In[1]:= ListLinePlot3D[Style[{IconizedObject[«curve A»], IconizedObject[«curve B»]}, Blue]]

Out[1]= [image]
```

---

Use the value of each point as a tooltip:

```wl
In[1]:= ListLinePlot3D[Tooltip[RandomReal[1, {10, 3}]], PlotMarkers -> Automatic]

Out[1]= [image]
```

Use a specific label for all the points:

```wl
In[2]:= ListLinePlot3D[Tooltip[RandomReal[1, {10, 3}], "hello"]]

Out[2]= [image]
```

---

Label points with automatically positioned text:

```wl
In[1]:= ListLinePlot3D[Sort[Table[Labeled[RandomReal[1, 3], i], {i, 15}]], PlotMarkers -> Automatic]

Out[1]= [image]
```

---

Use ``PopupWindow`` to provide additional drilldown information:

```wl
In[1]:= ListLinePlot3D[{{1, 1, 1}, PopupWindow[{2, 2, 2}, DateListPlot[FinancialData["IBM", "Jan. 1, 2004"]]], {3, 3, 3}}, PlotMarkers -> {"Sphere", .05}]

Out[1]= [image]
```

---

``Button`` can be used to trigger any action:

```wl
In[1]:= ListLinePlot3D[{{1, 1, 1}, Button[{2, 2, 2}, Speak[2]], {3, 3, 3}}, PlotMarkers -> {"Sphere", 0.05}]

Out[1]= [image]
```

#### Labeling and Legending (6)

Label points with automatically positioned text:

```wl
In[1]:= ListLinePlot3D[{Table[Labeled[i, i], {i, 10}], Table[Labeled[i, i], {i, 10}]}]

Out[1]= [image]
```

---

Specify that labels should be above or below the curve:

```wl
In[1]:= ListLinePlot3D[{Table[Labeled[i, i, Above], {i, 10}], Table[Labeled[i, i, Below], {i, 10}]}]

Out[1]= [image]
```

---

Specify label names with ``LabelingFunction`` :

```wl
In[1]:= ListLinePlot3D[Sort[RandomReal[1, {10, 3}]], LabelingFunction -> (#1[[1]] &)]

Out[1]= [image]
```

---

Include legends for each point collection:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], PlotLegends -> Automatic]

Out[1]= [image]
```

---

Specify the maximum size of labels:

```wl
In[1]:= data = Sort[Table[Labeled[{RandomReal[i], RandomReal[i], RandomReal[i]}, RandomWord[]], {i, 10}]];

In[2]:= ListLinePlot3D[data, LabelingSize -> 30]

Out[2]= [image]
```

Use the full label:

```wl
In[3]:= ListLinePlot3D[data, LabelingSize -> Full]

Out[3]= [image]
```

---

For dense sets of points, some labels may be turned into tooltips by default:

```wl
In[1]:= data = Table[Labeled[{Cos[i], Sin[i], Sin[7i]}, i], {i, 0, 2Pi, 0.1}];

In[2]:= ListLinePlot3D[data, ImageSize -> 200]

Out[2]= [image]

In[3]:= ListLinePlot3D[data, ImageSize -> 400]

Out[3]= [image]
```

#### Presentation (10)

```wl
Out[1]= Presentation
```

---

Provide an explicit ``PlotStyle`` for the lines:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], PlotStyle -> {Red, Green, Blue, Orange, Magenta}]

Out[1]= [image]
```

---

Provide separate styles for different sets:

```wl
In[1]:= data1 = Table[Sqrt[1 - x ^ 2 - y ^ 2], {x, -1, 1, 0.05}, {y, -1, 1, 0.1}];

In[2]:= data2 = Table[-Sqrt[1 - x ^ 2 - y ^ 2], {x, -1, 1, 0.05}, {y, -1, 1, 0.1}];

In[3]:= ListLinePlot3D[{data1, data2}, PlotStyle -> {Red, Blue}, BoxRatios -> Automatic, DataRange -> {{-1, 1}, {-1, 1}}]

Out[3]= [image]
```

---

Add labels:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], AxesLabel -> {j, i}, PlotLabel -> Sin[i + j ^ 2], PlotStyle -> Purple]

Out[1]= [image]
```

---

Color lines by height:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], ColorFunction -> Function[{x, y, z}, Hue[z]]]

Out[1]= [image]
```

---

Provide an interactive ``Tooltip`` for the whole plot:

```wl
In[1]:= ListLinePlot3D[Tooltip[IconizedObject[«waves»], TraditionalForm@Sin[i + j ^ 2]], PlotStyle -> Darker[Green]]

Out[1]= [image]
```

---

Fill below the points:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], Filling -> Bottom, FillingStyle -> Directive[Opacity[0.3], Blue], PlotStyle -> Red]

Out[1]= [image]
```

---

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

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], PlotTheme -> "Business"]

Out[1]= [image]
```

---

Use a highly styled theme:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], PlotTheme -> "Marketing"]

Out[1]= [image]
```

---

Use a logarithmic scale on the $z$ axis:

```wl
In[1]:= ListLinePlot3D[EntityValue[EntityClass["Country", "GroupOf7"], Dated["Population", All], "EntityAssociation"], PlotLegends -> "Expressions", ScalingFunctions -> {None, None, "Log"}]

Out[1]= [image]
```

---

Specify scaling functions for each axis:

```wl
In[1]:= curve = Table[t ^ 2{Cos[t], Sin[t], Sqrt[t]}, {t, 0, 100, 0.25}];

In[2]:= ListLinePlot3D[curve, BoxRatios -> 1, ScalingFunctions -> {"Reverse", "Infinite", "Log"}]

Out[2]= [image]
```

### Options (79)

#### Axes (3)

By default, axes are drawn:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»]]

Out[1]= [image]
```

---

Use ``Axes -> False`` to turn off axes:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], Axes -> False]

Out[1]= [image]
```

---

Turn each axis on individually:

```wl
In[1]:= {ListLinePlot3D[IconizedObject[«waves»], Axes -> {True, False, False}], ListLinePlot3D[IconizedObject[«waves»], Axes -> {False, True, False}], ListLinePlot3D[IconizedObject[«waves»], Axes -> {False, False, True}]}

Out[1]= {[image], [image], [image]}
```

#### AxesLabel (4)

No axes labels are drawn by default:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»]]

Out[1]= [image]
```

---

Place a label on the $z$ axis:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], AxesLabel -> "zlabel"]

Out[1]= [image]
```

---

Specify axes labels:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], AxesLabel -> {"Label1", "Label2", "Label3"}]

Out[1]= [image]
```

---

Use units as labels:

```wl
In[1]:= ListLinePlot3D[QuantityArray[Table[PDF[NormalDistribution[m, Sqrt[Abs[3 - m]]]][x], {m, -2, 2}, {x, -5, 5, 0.5}], "Meters"], AxesLabel -> Automatic]

Out[1]= [image]
```

#### AxesOrigin (2)

The position of the axes is determined automatically:

```wl
In[1]:= ListLinePlot3D[Table[PDF[NormalDistribution[m, Sqrt[Abs[3 - m]]]][x], {m, -2, 2}, {x, -5, 5, 0.5}]]

Out[1]= [image]
```

---

Specify an explicit origin for the axes:

```wl
In[1]:= ListLinePlot3D[Table[PDF[NormalDistribution[m, Sqrt[Abs[3 - m]]]][x], {m, -2, 2}, {x, -5, 5, 0.5}], AxesOrigin -> {10, 0, 0}]

Out[1]= [image]
```

#### AxesStyle (4)

Change the style for the axes:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], AxesStyle -> Red]

Out[1]= [image]
```

---

Specify the style of each axis:

```wl
In[1]:= ListLinePlot3D[Table[PDF[NormalDistribution[m, 0.4]][x], {m, 1, 5}, {x, 0, 5, 0.2}], AxesStyle -> {Directive[Thick, RGBColor[0.6, 0.4, 0.2]], Directive[Thick, RGBColor[0, 0, 1]], Directive[Thick, RGBColor[1, 0.5, 0]]}]

Out[1]= [image]
```

---

Use different styles for the ticks and the axes:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], AxesStyle -> Green, TicksStyle -> Black]

Out[1]= [image]
```

---

Use different styles for the labels and the axes:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], AxesStyle -> Green, LabelStyle -> Black]

Out[1]= [image]
```

#### BoxRatios (2)

``Automatic`` uses the natural scale from ``PlotRange`` :

```wl
In[1]:= {ListLinePlot3D[IconizedObject[«waves»]], ListLinePlot3D[IconizedObject[«waves»], BoxRatios -> Automatic]}

Out[1]= {[image], [image]}
```

---

Use ``BoxRatios`` to emphasize some particular feature, in this case, a saddle surface:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], BoxRatios -> {1, 1, 2}]

Out[1]= [image]
```

#### ColorFunction (7)

Use a named gradient from ``ColorData`` to color curves by their height:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«curves»], ColorFunction -> "Rainbow"]

Out[1]= [image]
```

---

Color curves by scaled $x$ values:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«curves»], ColorFunction -> Function[{x, y, z}, Hue[x]]]

Out[1]= [image]
```

---

Color curves by scaled $x$ values:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«curves»], ColorFunction -> Function[{x, y, z}, Hue[y]]]

Out[1]= [image]
```

---

Color curves by scaled $x$ values:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«curves»], ColorFunction -> Function[{x, y, z}, Hue[z]]]

Out[1]= [image]
```

---

Colors from ``ColorFunction`` are used with the filled regions as well as the curve:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«curves»], ColorFunction -> "Rainbow", Filling -> Axis]

Out[1]= [image]
```

---

Colors from ``ColorFunction`` have higher priority than from ``PlotStyle`` :

```wl
In[1]:= ListLinePlot3D[IconizedObject[«curves»], ColorFunction -> "Rainbow", PlotStyle -> Red]

Out[1]= [image]
```

---

Colors from ``ColorFunction`` combine with non-color styles from ``PlotStyle`` :

```wl
In[1]:= ListLinePlot3D[IconizedObject[«curves»], ColorFunction -> "Rainbow", PlotStyle -> Directive[Thick, Dashed, Opacity[0.5]]]

Out[1]= [image]
```

#### ColorFunctionScaling (2)

Use unscaled coordinates:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«curves»], ColorFunction -> Function[{x, y, z}, Hue@Rescale[Arg[Sin[x + I y]], {-Pi, Pi}]], ColorFunctionScaling -> False]

Out[1]= [image]
```

---

Unscaled coordinates are dependent on ``DataRange`` :

```wl
In[1]:= ListLinePlot3D[IconizedObject[«curves»], ColorFunction -> Function[{x, y, z}, RGBColor[x, y, 0]], ColorFunctionScaling -> False]

Out[1]= [image]

In[2]:= ListLinePlot3D[IconizedObject[«curves»], ColorFunction -> Function[{x, y, z}, RGBColor[x, y, 0]], ColorFunctionScaling -> False, DataRange -> {{0, 1}, {0, 1}}]

Out[2]= [image]
```

#### DataRange (4)

Arrays of height values are displayed against the number of elements in each direction:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»]]

Out[1]= [image]
```

---

Rescale to the sampling space:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], DataRange -> {{0, 1}, {0, 1}}]

Out[1]= [image]
```

---

Triples are interpreted as $x$, $y$, $z$ coordinates:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»]]

Out[1]= [image]
```

---

Force interpretation as arrays of height values:

```wl
In[1]:= data = Table[Sin[i + j], {j, 0, 2Pi, 0.1}, {i, -1, 1}];

In[2]:= ListLinePlot3D[data, DataRange -> All]

Out[2]= [image]
```

The dataset is normally interpreted as a list of $x$, $y$, $z$ triples:

```wl
In[3]:= ListLinePlot3D[data]

Out[3]= [image]
```

#### Filling (3)

Fill to the bottom, using "stems":

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], Filling -> Bottom, PlotRange -> All]

Out[1]= [image]
```

---

Filling occurs along the region cut by the ``RegionFunction`` :

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], Filling -> Bottom, RegionFunction -> (#1 ^ 2 + #2 ^ 2 < 5&), DataRange -> {{-Pi, Pi}, {-Pi, Pi}}]

Out[1]= [image]
```

---

Fill surface 1 to the bottom with blue and surface 2 to the top with red:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], PlotRange -> All, Filling -> {1 -> {Bottom, Blue}, 2 -> {Top, Red}}]

Out[1]= [image]
```

#### FillingStyle (2)

Fill to the bottom with a variety of styles:

```wl
In[1]:= {ListLinePlot3D[IconizedObject[«heights»], Filling -> Bottom, FillingStyle -> Directive[Opacity[0.2], Gray]], ListLinePlot3D[IconizedObject[«heights»], Filling -> Bottom, FillingStyle -> Opacity[0.75]]}

Out[1]= {[image], [image]}
```

---

Fill to the plane $z=0$ from above only:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«heights»], Filling -> 0, FillingStyle -> Blue]

Out[1]= [image]
```

#### ImageSize (7)

Use named sizes such as ``Tiny``, ``Small``, ``Medium`` and ``Large`` :

```wl
In[1]:= {ListLinePlot3D[IconizedObject[«waves»], ImageSize -> Tiny], ListLinePlot3D[IconizedObject[«waves»], ImageSize -> Small]}

Out[1]= {[image], [image]}
```

---

Specify the width of the plot:

```wl
In[1]:= {ListLinePlot3D[IconizedObject[«waves»], ImageSize -> 150], ListLinePlot3D[IconizedObject[«waves»], BoxRatios -> {1, 1, 2}, ImageSize -> 150]}

Out[1]= {[image], [image]}
```

Specify the height of the plot:

```wl
In[2]:= {ListLinePlot3D[IconizedObject[«waves»], ImageSize -> {Automatic, 150}], ListLinePlot3D[IconizedObject[«waves»], BoxRatios -> {1, 1, 2}, ImageSize -> {Automatic, 150}]}

Out[2]= {[image], [image]}
```

---

Allow the width and height to be up to a certain size:

```wl
In[1]:= {ListLinePlot3D[IconizedObject[«waves»], ImageSize -> UpTo[200]], ListLinePlot3D[IconizedObject[«waves»], BoxRatios -> {1, 1, 2}, ImageSize -> UpTo[200]]}

Out[1]= {[image], [image]}
```

---

Specify the width and height for a graphic, padding with space if necessary:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], ImageSize -> {200, 250}, Background -> LightBlue]

Out[1]= [image]
```

---

Use maximum sizes for the width and height:

```wl
In[1]:= {ListLinePlot3D[IconizedObject[«waves»], ImageSize -> {UpTo[150], UpTo[100]}], ListLinePlot3D[IconizedObject[«waves»], BoxRatios -> {1, 1, 2}, ImageSize -> {UpTo[150], UpTo[100]}]}

Out[1]= {[image], [image]}
```

---

Use ``ImageSize -> Full`` to fill the available space in an object:

```wl
In[1]:= Framed[Pane[ListLinePlot3D[IconizedObject[«waves»], ImageSize -> Full, Background -> LightBlue], {200, 100}]]

Out[1]= [image]
```

---

Specify the image size as a fraction of the available space:

```wl
In[1]:= Framed[Pane[ListLinePlot3D[IconizedObject[«waves»], AspectRatio -> Full, ImageSize -> {Scaled[0.5], Scaled[0.5]}, Background -> LightBlue], {200, 200}]]

Out[1]= [image]
```

#### IntervalMarkers (2)

Interval markers are bars by default:

```wl
In[1]:= zvar  = Table[Around[Sin[x] Cos[y], 0.25], {x, -4, 4}, {y, -4, 4}];

In[2]:= ListLinePlot3D[zvar]

Out[2]= [image]
```

---

Use named ``IntervalMarkers`` :

```wl
In[1]:= xyzvar = Table[{Cos[t], Sin[t], Around[Sin[t] Cos[t], 1]}, {t, 0, 2Pi, 0.2}];

In[2]:= ListLinePlot3D[xyzvar, IntervalMarkers -> "Tubes"]

Out[2]= [image]
```

#### IntervalMarkersStyle (2)

Interval markers are black by default:

```wl
In[1]:= zvar  = Table[Around[Sin[x] Cos[y], 0.25], {x, -4, 4}, {y, -4, 4}];

In[2]:= ListLinePlot3D[zvar]

Out[2]= [image]
```

---

Specify the style for the bars:

```wl
In[1]:= xyzvar = Table[{Cos[t], Sin[t], Around[Sin[t] Cos[t], 1]}, {t, 0, 2Pi, 0.2}];

In[2]:= ListLinePlot3D[xyzvar, IntervalMarkersStyle -> Red]

Out[2]= [image]
```

#### Joined (3)

Datasets are joined by default:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»]]

Out[1]= [image]
```

---

Join the first dataset with a line, but use points for the second dataset:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], Joined -> {True, False, False, False, False}]

Out[1]= [image]
```

---

Join the dataset with a line and show the original points:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], Joined -> True, Mesh -> All, PlotStyle -> Thin]

Out[1]= [image]
```

#### PlotLegends (5)

No legend is used by default:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»]]

Out[1]= [image]
```

---

Generate a legend using labels:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], PlotStyle -> {Red, Blue}, PlotLegends -> {"One", "Two"}]

Out[1]= [image]
```

---

Generate a legend using placeholders:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], PlotLegends -> Automatic]

Out[1]= [image]
```

---

Use ``Placed`` to specify legend placement:

```wl
In[1]:= {ListLinePlot3D[IconizedObject[«waves»], PlotLegends -> Placed[Range[5], Above]], ListLinePlot3D[IconizedObject[«waves»], PlotLegends -> Placed[Range[5], Below]]}

Out[1]= {[image], [image]}
```

---

Build a custom legend with ``BarLegend`` :

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], ColorFunction -> (ColorData["Rainbow"][#1]&), PlotLegends -> Placed[BarLegend[{"Rainbow", {-1, 1}}], Below]]

Out[1]= [image]
```

#### PlotMarkers (4)

``ListLinePlot`` normally shows just the curves:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], PlotMarkers -> None]

Out[1]= [image]
```

---

Include the data points in the plot:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], PlotMarkers -> Automatic, PlotStyle -> Thin]

Out[1]= [image]
```

---

Change the size of the default plot markers:

```wl
In[1]:= {ListLinePlot3D[IconizedObject[«waves»], PlotMarkers -> {Automatic, Medium}], ListLinePlot3D[IconizedObject[«waves»], PlotMarkers -> {Automatic, Large}]}

Out[1]= {[image], [image]}
```

---

Use spheres as markers:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], PlotMarkers -> "Sphere"]

Out[1]= [image]
```

Specify how large the spheres should be:

```wl
In[2]:= ListLinePlot3D[IconizedObject[«waves»], PlotMarkers -> {"Sphere", Medium}]

Out[2]= [image]
```

#### PlotRange (3)

Automatically compute the $z$ range:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«array»]]

Out[1]= [image]
```

---

Use all points to compute the range:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«array»], PlotRange -> All]

Out[1]= [image]
```

---

Use an explicit $z$ range to emphasize features:

```wl
In[1]:= ListLinePlot3D[Table[y ^ 2 - x ^ 2, {x, -4, 4, 0.1}, {y, -4, 4, 0.1}], PlotRange -> {-2, 2}]

Out[1]= [image]
```

#### PlotStyle (1)

Plot two point sets with different styles:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], PlotStyle -> {Pink, Green}]

Out[1]= [image]
```

#### PlotTheme (2)

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

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], PlotTheme -> "Marketing"]

Out[1]= [image]
```

---

Change the color for the curves:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«waves»], PlotTheme -> "Marketing", PlotStyle -> Red]

Out[1]= [image]
```

#### RegionBoundaryStyle (3)

Show the region being plotted:

```wl
In[1]:= ListLinePlot3D[Table[Exp[-(i ^ 2 + j ^ 2)], {i, -2, 2, 0.1}, {j, -2, 2, 0.1}], RegionFunction -> Function[{x, y, z}, x < 0 || y > 0], DataRange -> {{-2, 2}, {-2, 2}}]

Out[1]= [image]
```

---

Use ``None`` to not draw the region:

```wl
In[1]:= ListLinePlot3D[Table[Exp[-(i ^ 2 + j ^ 2)], {i, -2, 2, 0.1}, {j, -2, 2, 0.1}], RegionFunction -> Function[{x, y, z}, x < 0 || y > 0], DataRange -> {{-2, 2}, {-2, 2}}, RegionBoundaryStyle -> None]

Out[1]= [image]
```

---

Use a custom ``RegionBoundaryStyle`` :

```wl
In[1]:= ListLinePlot3D[Table[Exp[-(i ^ 2 + j ^ 2)], {i, -2, 2, 0.1}, {j, -2, 2, 0.1}], RegionFunction -> Function[{x, y, z}, x < 0 || y > 0], DataRange -> {{-2, 2}, {-2, 2}}, PlotStyle -> PointSize[Small], RegionBoundaryStyle -> Directive[Yellow, Opacity[.2]]]

Out[1]= [image]
```

#### ScalingFunctions (5)

By default, plots have linear scales in each direction:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«data»], PlotRange -> All]

Out[1]= [image]
```

---

Use a log scale in the $z$ direction:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«data»], ScalingFunctions -> "Log"]

Out[1]= [image]
```

---

Use a linear scale in the $z$ direction that shows smaller numbers at the top:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«data»], ScalingFunctions -> "Reverse", PlotRange -> All]

Out[1]= [image]
```

---

Use different scales in the $x$, $y$ and $z$ directions:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«data»], ScalingFunctions -> {"Log", "Log", "Reverse"}]

Out[1]= [image]
```

---

Use a scale defined by a function and its inverse:

```wl
In[1]:= ListLinePlot3D[IconizedObject[«data»], ScalingFunctions -> {None, None, {-Log[#]&, Exp[-#]&}}]

Out[1]= [image]
```

#### Ticks (6)

Ticks are placed automatically in each plot:

```wl
In[1]:= ListLinePlot3D[Table[{r Sin[t], r Cos[t], Cos[r t]}, {r, 4}, {t, 0, 2 Pi, Pi / 25}]]

Out[1]= [image]
```

---

Use ``Ticks -> None`` to not draw any tick marks:

```wl
In[1]:= ListLinePlot3D[Table[{r Sin[t], r Cos[t], Cos[r t]}, {r, 4}, {t, 0, 2 Pi, Pi / 25}], Ticks -> None]

Out[1]= [image]
```

---

Place tick marks at specific positions:

```wl
In[1]:= ListLinePlot3D[Table[{r Sin[t], r Cos[t], Cos[r t]}, {r, 4}, {t, 0, 2 Pi, Pi / 25}], Ticks -> {{-1, 1, 2}, {-1, 1, 2}, {-1, 0, 1}}]

Out[1]= [image]
```

---

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

```wl
In[1]:= ListLinePlot3D[Table[{r Sin[t], r Cos[t], Cos[r t]}, {r, 4}, {t, 0, 2 Pi, Pi / 25}], Ticks -> {{{-1, -a}, {1, a}, {2, b}}, {{-1, -a}, {1, a}, {2, b}}, {{-1, -a}, {0, zero}, {1, a}}}]

Out[1]= [image]
```

---

Specify tick marks with scaled lengths:

```wl
In[1]:= ListLinePlot3D[Table[{r Sin[t], r Cos[t], Cos[r t]}, {r, 4}, {t, 0, 2 Pi, Pi / 25}], Ticks -> {{{-1, -a, .10}, {1, a, .1}, {2, b, .075}}, {{-1, -a, .05}, {1, a, .06}, {2, b, .07}}, {{-1, -a, Automatic}, {0, zero, .14}, {1, a, .6}}}]

Out[1]= [image]
```

---

Customize each tick with position, length, labeling and styling:

```wl
In[1]:= ListLinePlot3D[Table[{r Sin[t], r Cos[t], Cos[r t]}, {r, 4}, {t, 0, 2 Pi, Pi / 25}], Ticks -> {{{-1, -a, .10, Directive[Thick, Red]}, {1, a, .1, Directive[Thick, Red]}, {2, b, .075, Directive[Thick, Red]}}, {{-1, -a, .05, Directive[Red]}, {1, a, .06, Directive[Red]}, {2, b, .07, Directive[Red]}}, {{-1, -a, Automatic, Directive[Thick, Blue]}, {0, zero, .14, Directive[Dashed, Thick, Blue]}, {1, a, .13, Directive[Thick, Blue]}}}]

Out[1]= [image]
```

#### TicksStyle (3)

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

```wl
In[1]:= ListLinePlot3D[Table[{r Sin[t], r Cos[t], Cos[r t]}, {r, 4}, {t, 0, 2 Pi, Pi / 25}], AxesStyle -> Directive[Red, Thick]]

Out[1]= [image]
```

---

Specify the overall tick style, including the tick labels:

```wl
In[1]:= ListLinePlot3D[Table[{r Sin[t], r Cos[t], Cos[r t]}, {r, 4}, {t, 0, 2 Pi, Pi / 25}], TicksStyle -> Red]

Out[1]= [image]
```

---

Specify the tick style for each of the axes:

```wl
In[1]:= ListLinePlot3D[Table[{r Sin[t], r Cos[t], Cos[r t]}, {r, 4}, {t, 0, 2 Pi, Pi / 25}], TicksStyle -> {Red, Directive[Blue, Thick], Directive[Brown, 14]}]

Out[1]= [image]
```

### Applications (6)

#### Random Walks (3)

Visualize a random walk in 3D:

```wl
In[1]:= ListLinePlot3D[Accumulate[RandomReal[{-1, 1}, {100, 3}]], BoxRatios -> Automatic]

Out[1]= [image]
```

View multiple random walks:

```wl
In[2]:= ListLinePlot3D[Table[Accumulate[RandomReal[{-1, 1}, {100, 3}]], 5], BoxRatios -> Automatic]

Out[2]= [image]
```

---

Visualize a random walk on a lattice:

```wl
In[1]:= ListLinePlot3D[Accumulate[RandomChoice[IconizedObject[«moves»], 100]], BoxRatios -> Automatic]

Out[1]= [image]
```

View multiple random walks:

```wl
In[2]:= ListLinePlot3D[Table[Accumulate[RandomChoice[IconizedObject[«moves»], 100]], 5], BoxRatios -> Automatic]

Out[2]= [image]
```

---

Make a random walk where successive steps change direction by between 0° and 20° in any Euler angle:

```wl
In[1]:= ListLinePlot3D[AnglePath3D[RandomReal[{0°, 20°}, {1000, 3}]], BoxRatios -> Automatic]

Out[1]= [image]
```

Plot multiple walks:

```wl
In[2]:= ListLinePlot3D[Table[AnglePath3D[RandomReal[{0°, 20°}, {250, 3}]], 10], BoxRatios -> Automatic]

Out[2]= [image]
```

#### Optimization Paths (1)

Show the steps used by an optimization method to arrive at a minimum:

```wl
In[1]:= fn = y Sin[x] + x Cos[y] + 5Sqrt[x ^ 2 + y ^ 2];

In[2]:= surf = Plot3D[fn, {x, -10, 10}, {y, -10, 10}, Mesh -> None, PlotStyle -> Opacity[0.7, White]]

Out[2]= [image]
```

Use ``StepMonitor`` to follow the progress of ``FindMinimum`` from different starting points:

```wl
In[3]:= path = Quiet[Table[First[Last[Reap[FindMinimum[fn, {{x, RandomReal[{-10, 10}]}, {y, RandomReal[{-10, 10}]}}, StepMonitor :> Sow[{x, y, fn}, "A"]], "A"]]], 15]];
```

Plot the sequences of steps on the actual surface:

```wl
In[4]:= Show[surf, ListLinePlot3D[path]]

Out[4]= [image]
```

#### Time Series (1)

Plot the performance of several companies as separate curves:

```wl
In[1]:= companies = {\[FreeformPrompt]["AAPL"], \[FreeformPrompt]["Amazon"], \[FreeformPrompt]["IBM"], \[FreeformPrompt]["MSFT"]};

In[2]:= data = EntityValue[companies, EntityProperty["Financial", "CumulativeFractionalChange", {"Date" -> Interval[{DateObject[{2021, 1, 1}, "Day", "Gregorian", -5.], DateObject[{2021, 3, 14}, "Day", "Gregorian", -5.]}]}]];

In[3]:= ListLinePlot3D[data, Filling -> Axis, PlotLegends -> companies]

Out[3]= [image]
```

#### Spatial Data (1)

Find the position of the International Space Station for the next few hours:

```wl
In[1]:= iss = GeoPositionXYZ[Entity["Satellite", "25544"][Dated["Position", #]& /@ DateRange[Now, Now + Quantity[6, "Hours"], Quantity[1, "Minutes"]]]]["XYZ"];
```

Show the path around a simple model of the Earth:

```wl
In[2]:= Show[ListLinePlot3D[iss, PlotTheme -> "NoAxes"], Graphics3D[{Gray, Sphere[{0, 0, 0}, 6.37 * 10 ^ 6]}], BoxRatios -> 1, PlotRange -> All]

Out[2]= [image]
```

### Properties & Relations (12)

Use ``ListPlot`` and ``ListLinePlot`` to plot heights in 2D:

```wl
In[1]:= {ListPlot[{1, 3, 4, 2, 7, 5}], ListLinePlot[{1, 3, 4, 2, 7, 5}]}

Out[1]= {[image], [image]}
```

Plot points:

```wl
In[2]:= {ListPlot[{{1, 5}, {2, 2}, {3, 9}, {4, 3}, {4, 7}, {5, 7}, {7, 1}, {8, 4}}], ListLinePlot[{{1, 5}, {2, 2}, {3, 9}, {4, 3}, {4, 7}, {5, 7}, {7, 1}, {8, 4}}]}

Out[2]= {[image], [image]}
```

---

Use ``ListPointPlot3D`` to show three-dimensional data plots:

```wl
In[1]:= ListPointPlot3D[Table[Sin[j ^ 2 + i], {i, 0, Pi, 0.1}, {j, 0, Pi, 0.1}]]

Out[1]= [image]
```

---

Use ``ListPlot3D`` to create surfaces from data:

```wl
In[1]:= ListPlot3D[Table[Sin[j ^ 2 + i], {i, 0, Pi, 0.1}, {j, 0, Pi, 0.1}]]

Out[1]= [image]
```

---

Use ``Plot3D`` to visualize functions:

```wl
In[1]:= Plot3D[Sin[x y], {x, 0, 3}, {y, 0, 3}]

Out[1]= [image]
```

---

Use ``ParametricPlot3D`` to plot a curve from functions:

```wl
In[1]:= ParametricPlot3D[{Cos[t], Sin[t], Sin[5t]}, {t, 0, 2Pi}]

Out[1]= [image]
```

---

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

```wl
In[1]:= ListLogPlot[Table[Binomial[25, k], {k, 0, 25}], Joined -> True]

Out[1]= [image]
```

---

Use ``ListPolarPlot`` for polar plots:

```wl
In[1]:= ListPolarPlot[Table[{x, Sqrt[x]}, {x, 0, 2Pi, 0.1}], Joined -> True]

Out[1]= [image]
```

---

Use ``DateListPlot`` to show data over time:

```wl
In[1]:= DateListPlot[{34, 51, 11, 5, 39, 47, 28, 42, 66, 13, 24, 31}, {2006, 1}, Joined -> True]

Out[1]= [image]
```

---

Use ``ListContourPlot`` to create contours from continuous data:

```wl
In[1]:= ListContourPlot[Table[Sin[j ^ 2 + i], {i, 0, Pi, 0.1}, {j, 0, Pi, 0.1}]]

Out[1]= [image]
```

---

Use ``ListDensityPlot`` to create densities from continuous data:

```wl
In[1]:= ListDensityPlot[Table[Sin[j ^ 2 + i], {i, 0, Pi, 0.1}, {j, 0, Pi, 0.1}]]

Out[1]= [image]
```

---

Use ``ArrayPlot`` and ``MatrixPlot`` for arrays of discrete values:

```wl
In[1]:= ArrayPlot[Table[GCD[i, j], {i, 1, 20}, {j, 1, 20}]]

Out[1]= [image]
```

---

Use ``ParametricPlot`` for parametric curves:

```wl
In[1]:= {ParametricPlot[{Cos[θ], Sin[θ]}, {θ, 0, 2Pi}], ListLinePlot[Table[{Cos[θ], Sin[θ]}, {θ, 0, 2Pi, 0.1}], AspectRatio -> 1]}

Out[1]= {[image], [image]}
```

## See Also

* [`ListLinePlot`](https://reference.wolfram.com/language/ref/ListLinePlot.en.md)
* [`ListPointPlot3D`](https://reference.wolfram.com/language/ref/ListPointPlot3D.en.md)
* [`ListPlot3D`](https://reference.wolfram.com/language/ref/ListPlot3D.en.md)
* [`ParametricPlot3D`](https://reference.wolfram.com/language/ref/ParametricPlot3D.en.md)
* [`ListPlot`](https://reference.wolfram.com/language/ref/ListPlot.en.md)
* [`DiscretePlot3D`](https://reference.wolfram.com/language/ref/DiscretePlot3D.en.md)
* [`StackedListPlot`](https://reference.wolfram.com/language/ref/StackedListPlot.en.md)

## Related Guides

* [Data Visualization](https://reference.wolfram.com/language/guide/DataVisualization.en.md)
* [Tabular Visualization](https://reference.wolfram.com/language/guide/TabularVisualization.en.md)

## History

* [Introduced in 2021 (12.3)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn123.en.md) \| [Updated in 2025 (14.2)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn142.en.md)