ListPlot3D
✖
ListPlot3D
Details and Options




- ListPlot3D is also known as a 3D surface plot.
- Regular data {{f11,…,f1n},…,{fm1,…,fmn}} is plotted as a height f[x,y] at the point {x,y} with f[j,i] having value fij.
- Irregular data {{x1,y1,f1},…,{xn,yn,zn}} is plotted as a height f[x,y] at the point {x,y} with f[xi,yi] having value fi.
- It visualizes the surface
where f is the function above and the region
is the Cartesian product
for regular data and the convex hull of {{x1,y1},…,{xn,yn}} for irregular data.
- Data values xi, yi and fi 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 fi that are not of the preceding form are taken to be missing and are not shown.
- The datai have the following forms and interpretations:
-
<"k1"{x1,y1,f1},"k2"{x2,y2,f2},… > values {{x1,y1,f1},…,{xk,yk,fk}} SparseArray values as a normal array QuantityArray magnitudes WeightedData unweighted values - ListPlot3D[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 column z against columns x and y {{colx1,coly1,colz1},{colx2,coly2,colz2},…} plot column z1 against column x1 and y1 , z2 against x2 and y2, etc. - In ListPlot3D[array], array must be a rectangular array. Each element can be either a single real number representing a
value, or an
triple.
- There will be holes in the surface corresponding to array elements that do not represent explicit height values.
- ListPlot3D[array] by default takes the
and
coordinate values for each data point to be successive integers starting at 1.
- The elements of array can also be triples {x11,y11,z11}, specifying heights zij at explicit positions {xij,yij}. The connectivity of the surface in this case is still taken to follow the 2D array.
- 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[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:
-
Automatic automatically placed labels Above, Below, Before, After positions around the surface {x,y} near the surface at a position {x,y} {x,y,z} at the position {x,y,z} {s,Above},{s,Below},… relative position at position s around the surface {pos,epos} epos in label placed at relative position pos of the surface - ListPlot3D has the same options as Graphics3D, with the following additions and changes: [List of all options]
-
Axes True whether to draw axes BoundaryStyle Automatic how to draw boundary lines for surfaces BoxRatios {1,1,0.4} bounding 3D box ratios ClippingStyle Automatic how to draw clipped parts of the surface ColorFunction Automatic how to determine the color of surfaces ColorFunctionScaling True whether to scale arguments to ColorFunction DataRange Automatic the range of and
values to assume for data
Filling None filling under the surface FillingStyle Opacity[0.5] style to use for filling InterpolationOrder None the polynomial degree in each variable of surfaces used in joining data points IntervalMarkers Automatic how to render uncertainty IntervalMarkersStyle Automatic style for uncertainty elements LabelingSize Automatic size to use for callout and label MaxPlotPoints Automatic the maximum number of points to include Mesh Automatic how many mesh lines in each direction to draw MeshFunctions {#1&,#2&} how to determine the placement of mesh lines MeshShading None how to shade regions between mesh lines MeshStyle Automatic the style for mesh lines Method Automatic the method to use for interpolation and data reduction NormalsFunction Automatic how to determine effective surface normals PerformanceGoal $PerformanceGoal aspects of performance to try to optimize PlotLabels None labels to use for surfaces PlotLegends None legends for surfaces PlotRange {Full,Full,Automatic} the range of or other values to include
PlotRangePadding Automatic how much to pad the range of values PlotStyle Automatic graphics directives to specify the style for the surface PlotTheme $PlotTheme overall theme for the plot RegionFunction (True&) how to determine whether a point should be included ScalingFunctions None how to scale individual coordinates TextureCoordinateFunction Automatic how to determine texture coordinates TextureCoordinateScaling True whether to scale arguments to TextureCoordinateFunction VertexColors Automatic colors to assume at each point VertexNormals Automatic effective normals to assume at each point - In the default case with no explicit
and
given, the setting DataRange->{{xmin,xmax},{ymin,ymax}} specifies the ranges of coordinate values to use.
- With the default setting DataRange->Automatic, ListPlot3D[{{a11,a12,a13},…,{an1,an2,an3}}] will assume that the data being given is {{x1,y1,z1},…}, rather than an
×3 array of height values.
- ListPlot3D[list,DataRange->All] always takes list to represent an array of height values.
- 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.
- For ListPlot3D[array], Mesh->Full draws a mesh that crosses at the position of each data point.
- The arguments supplied to functions in MeshFunctions and RegionFunction are
,
, and
. Functions in ColorFunction and TextureCoordinateFunction are by default supplied with scaled versions of these arguments.
- The setting for VertexColors must be an array or list with the same structure as the coordinate data.
- An explicit setting for VertexColors overrides colors determined from ColorFunction.
- Themes that affect 3D surfaces include:
-
"DarkMesh" dark mesh lines "GrayMesh" gray mesh lines "LightMesh" light mesh lines "ZMesh" vertically distributed mesh lines "ThickSurface" add thickness to surfaces "FilledSurface" add filling below surfaces - ListPlot3D returns Graphics3D[data].
-
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 BoundaryStyle Automatic how to draw boundary lines for surfaces Boxed True whether to draw the bounding box BoxRatios {1,1,0.4} bounding 3D box ratios BoxStyle {} style specifications for the box ClippingStyle Automatic how to draw clipped parts of the surface ClipPlanes None clipping planes ClipPlanesStyle Automatic style specifications for clipping planes ColorFunction Automatic how to determine the color of surfaces 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 and
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 filling under the surface FillingStyle Opacity[0.5] 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 InterpolationOrder None the polynomial degree in each variable of surfaces used in joining data points IntervalMarkers Automatic how to render uncertainty IntervalMarkersStyle Automatic style for uncertainty elements LabelingSize Automatic size to use for callout and label LabelStyle {} style specifications for labels Lighting Automatic simulated light sources to use MaxPlotPoints Automatic the maximum number of points to include Mesh Automatic how many mesh lines in each direction to draw MeshFunctions {#1&,#2&} how to determine the placement of mesh lines MeshShading None how to shade regions between mesh lines MeshStyle Automatic the style for mesh lines Method Automatic the method to use for interpolation and data reduction NormalsFunction Automatic how to determine effective surface normals PerformanceGoal $PerformanceGoal aspects of performance to try to optimize PlotLabel None a label for the plot PlotLabels None labels to use for surfaces PlotLegends None legends for surfaces PlotRange {Full,Full,Automatic} the range of 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 graphics directives to specify the style for the surface 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 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 TextureCoordinateFunction Automatic how to determine texture coordinates TextureCoordinateScaling True whether to scale arguments to TextureCoordinateFunction Ticks Automatic specification for ticks TicksStyle {} style specification for ticks TouchscreenAutoZoom False whether to zoom to fullscreen when activated on a touchscreen VertexColors Automatic colors to assume at each point VertexNormals Automatic effective normals to assume at each point 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

List of all options




Examples
open allclose allBasic Examples (3)Summary of the most common use cases
Use an array of values to define heights for a surface:

https://wolfram.com/xid/0i1q1qqc4-qo1

Give explicit ,
,
coordinates for points on a surface:

https://wolfram.com/xid/0i1q1qqc4-jq3

Use different interpolations of data:

https://wolfram.com/xid/0i1q1qqc4-ra6okr

https://wolfram.com/xid/0i1q1qqc4-cod9tx


https://wolfram.com/xid/0i1q1qqc4-y6k2u

Scope (29)Survey of the scope of standard use cases
General Data (9)
For regular data consisting of values, the
and
data ranges are taken to be integer values:

https://wolfram.com/xid/0i1q1qqc4-dvp3ad

Provide explicit and
data ranges by using DataRange:

https://wolfram.com/xid/0i1q1qqc4-pdrb2

Plot multiple sets of regular data:

https://wolfram.com/xid/0i1q1qqc4-iv9lqw

For irregular data consisting of triples, the
and
data ranges are inferred from data:

https://wolfram.com/xid/0i1q1qqc4-crr2h5

https://wolfram.com/xid/0i1q1qqc4-ghs8to

Plot multiple sets of irregular data:

https://wolfram.com/xid/0i1q1qqc4-1jl929

https://wolfram.com/xid/0i1q1qqc4-egixhb

https://wolfram.com/xid/0i1q1qqc4-01nfw3

Areas around where the data is nonreal are excluded:

https://wolfram.com/xid/0i1q1qqc4-h06vsu


https://wolfram.com/xid/0i1q1qqc4-jmijbr

Use MaxPlotPoints to limit the number of points used:

https://wolfram.com/xid/0i1q1qqc4-6k5h3

https://wolfram.com/xid/0i1q1qqc4-u6qsy

PlotRange is selected automatically:

https://wolfram.com/xid/0i1q1qqc4-iksh0t

Use PlotRange to focus in on areas of interest:

https://wolfram.com/xid/0i1q1qqc4-ywf6o

Use RegionFunction to restrict the surface to a region given by inequalities:

https://wolfram.com/xid/0i1q1qqc4-s9n4li

https://wolfram.com/xid/0i1q1qqc4-dhqoa

Tabular Data (1)

https://wolfram.com/xid/0i1q1qqc4-mh5ud7
Plot a shaded density plot of column f over columns x and y:

https://wolfram.com/xid/0i1q1qqc4-ljsi47

Plot multiple sets of columns as separate surfaces:

https://wolfram.com/xid/0i1q1qqc4-jvoexk

Include color swatch legends for the plot:

https://wolfram.com/xid/0i1q1qqc4-dajsof

Special Data (4)
Use Quantity to include units with the data:

https://wolfram.com/xid/0i1q1qqc4-tm5oxe

Include different units for the x, y and z coordinates:

https://wolfram.com/xid/0i1q1qqc4-w0ppqq

https://wolfram.com/xid/0i1q1qqc4-dw3c79


https://wolfram.com/xid/0i1q1qqc4-55e5tq

https://wolfram.com/xid/0i1q1qqc4-z62dde

Plot data with uncertainty in x, y and z:

https://wolfram.com/xid/0i1q1qqc4-jiy9nw

https://wolfram.com/xid/0i1q1qqc4-58w36m

Labeling and Legending (6)
Label surfaces with Labeled:

https://wolfram.com/xid/0i1q1qqc4-o9wmfd

https://wolfram.com/xid/0i1q1qqc4-xmhb5x

Label surfaces with PlotLabels:

https://wolfram.com/xid/0i1q1qqc4-besil1

https://wolfram.com/xid/0i1q1qqc4-egy6il

Place the label near the surface at an {x,y} value:

https://wolfram.com/xid/0i1q1qqc4-fmb04u

https://wolfram.com/xid/0i1q1qqc4-oo1bdl

Use Callout:

https://wolfram.com/xid/0i1q1qqc4-qr3luh


https://wolfram.com/xid/0i1q1qqc4-7m6y17
Place a label with specific locations:

https://wolfram.com/xid/0i1q1qqc4-rhk049

Include legends for each surface:

https://wolfram.com/xid/0i1q1qqc4-uyqf90

https://wolfram.com/xid/0i1q1qqc4-pq9bt6

Use Legended to provide a legend for a specific dataset:

https://wolfram.com/xid/0i1q1qqc4-xyqe5l

https://wolfram.com/xid/0i1q1qqc4-yjojl0

https://wolfram.com/xid/0i1q1qqc4-b07bi9

Use Placed to change the legend location:

https://wolfram.com/xid/0i1q1qqc4-fbd6ge

Presentation (9)
Provide an explicit PlotStyle for the surface:

https://wolfram.com/xid/0i1q1qqc4-ehykaq

Provide separate styles for different surfaces:

https://wolfram.com/xid/0i1q1qqc4-c9p9f

https://wolfram.com/xid/0i1q1qqc4-ijwtr0

https://wolfram.com/xid/0i1q1qqc4-ijkpie


https://wolfram.com/xid/0i1q1qqc4-4lopfb


https://wolfram.com/xid/0i1q1qqc4-wt7htg


https://wolfram.com/xid/0i1q1qqc4-84bcik

Style the areas between mesh lines:

https://wolfram.com/xid/0i1q1qqc4-m08dsm

Provide an interactive Tooltip for a surface:

https://wolfram.com/xid/0i1q1qqc4-e9as0g


https://wolfram.com/xid/0i1q1qqc4-9saoiw


https://wolfram.com/xid/0i1q1qqc4-5z1g4a

Options (114)Common values & functionality for each option
BoundaryStyle (6)
Use a black boundary around the edges of the surface:

https://wolfram.com/xid/0i1q1qqc4-ui1ujw

Use a thick boundary around the edges of the surface:

https://wolfram.com/xid/0i1q1qqc4-dtdvpy

Use a thick red boundary around the edges of the surface:

https://wolfram.com/xid/0i1q1qqc4-o7hrzc


https://wolfram.com/xid/0i1q1qqc4-3yqcdp

BoundaryStyle applies to holes cut by RegionFunction:

https://wolfram.com/xid/0i1q1qqc4-k3fpur

BoundaryStyle applies where there are jumps in the surface:

https://wolfram.com/xid/0i1q1qqc4-gwqaoo

ClippingStyle (4)
By default clipped regions have no color:

https://wolfram.com/xid/0i1q1qqc4-x0c029

https://wolfram.com/xid/0i1q1qqc4-c9umj2


https://wolfram.com/xid/0i1q1qqc4-th8med

https://wolfram.com/xid/0i1q1qqc4-7jx8xq

Make clipped regions partially transparent:

https://wolfram.com/xid/0i1q1qqc4-7o0g5p

https://wolfram.com/xid/0i1q1qqc4-hofgv1

Color clipped regions red at the bottom and blue at the top:

https://wolfram.com/xid/0i1q1qqc4-6x8daf

https://wolfram.com/xid/0i1q1qqc4-f7ywv7

ColorFunction (6)
Color by scaled ,
, and
values:

https://wolfram.com/xid/0i1q1qqc4-24mx6x

Color by scaled and
coordinates:

https://wolfram.com/xid/0i1q1qqc4-e1jl0n

Use ColorData for predefined color gradients:

https://wolfram.com/xid/0i1q1qqc4-ftcndb

Named color gradients color in the direction:

https://wolfram.com/xid/0i1q1qqc4-i4wpha

ColorFunction has higher priority than PlotStyle:

https://wolfram.com/xid/0i1q1qqc4-6wgwrz

ColorFunction has lower priority than MeshShading:

https://wolfram.com/xid/0i1q1qqc4-2p37iq

ColorFunctionScaling (2)

https://wolfram.com/xid/0i1q1qqc4-b9gzk7

https://wolfram.com/xid/0i1q1qqc4-4tvdkr

Unscaled coordinates are dependent on DataRange:

https://wolfram.com/xid/0i1q1qqc4-ioj45j

https://wolfram.com/xid/0i1q1qqc4-ez39bj


https://wolfram.com/xid/0i1q1qqc4-sn68a7

DataRange (5)
Arrays of height values are displayed against the number of elements in each direction:

https://wolfram.com/xid/0i1q1qqc4-l8y6lt

Rescale to the sampling space:

https://wolfram.com/xid/0i1q1qqc4-jrzay

Each dataset is scaled to the same domain:

https://wolfram.com/xid/0i1q1qqc4-i40zeo

Triples are interpreted as ,
,
coordinates:

https://wolfram.com/xid/0i1q1qqc4-xy351d

https://wolfram.com/xid/0i1q1qqc4-hhy58p

Force interpretation as arrays of height values:

https://wolfram.com/xid/0i1q1qqc4-tiqjce

https://wolfram.com/xid/0i1q1qqc4-pya2b1

The dataset is normally interpreted as a list of triples:

https://wolfram.com/xid/0i1q1qqc4-9fmyu

Filling (5)

https://wolfram.com/xid/0i1q1qqc4-xig

Filling occurs along the region cut by the RegionFunction:

https://wolfram.com/xid/0i1q1qqc4-yut


https://wolfram.com/xid/0i1q1qqc4-hv4

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

https://wolfram.com/xid/0i1q1qqc4-7pjfai


https://wolfram.com/xid/0i1q1qqc4-bdzxbs

FillingStyle (3)
Fill to the bottom with a variety of styles:

https://wolfram.com/xid/0i1q1qqc4-wkhrhp

Fill to the plane with red below and blue above:

https://wolfram.com/xid/0i1q1qqc4-f5ppz8

Fill to the plane from above only:

https://wolfram.com/xid/0i1q1qqc4-0f210f

InterpolationOrder (5)
Points are normally joined with flat polygons:

https://wolfram.com/xid/0i1q1qqc4-hi81j4

Use zero-order or piecewise-constant interpolation:

https://wolfram.com/xid/0i1q1qqc4-xp72xt

Use third-order spline interpolation to fit the data:

https://wolfram.com/xid/0i1q1qqc4-ise7eu


https://wolfram.com/xid/0i1q1qqc4-fulm7t

For irregular data, zero-order interpolation gives Voronoi regions for each point:

https://wolfram.com/xid/0i1q1qqc4-wdr3mt

https://wolfram.com/xid/0i1q1qqc4-rlnsmz


https://wolfram.com/xid/0i1q1qqc4-t04zkb

IntervalMarkers (2)
Interval markers are bars by default:

https://wolfram.com/xid/0i1q1qqc4-cmb85q

https://wolfram.com/xid/0i1q1qqc4-0i69d

Use named IntervalMarkers:

https://wolfram.com/xid/0i1q1qqc4-i44vde

https://wolfram.com/xid/0i1q1qqc4-uw6n7

IntervalMarkersStyle (2)
Interval markers are black by default:

https://wolfram.com/xid/0i1q1qqc4-7vbmr0

https://wolfram.com/xid/0i1q1qqc4-ohvnsq

Specify a style for the bars using IntervalMarkersStyle:

https://wolfram.com/xid/0i1q1qqc4-o886cb

https://wolfram.com/xid/0i1q1qqc4-5zst5a

LabelingSize (2)
Textual labels are shown at their actual sizes:

https://wolfram.com/xid/0i1q1qqc4-rshufl

Specify a maximum size for textual labels:

https://wolfram.com/xid/0i1q1qqc4-bz8jld

Image labels are automatically resized:

https://wolfram.com/xid/0i1q1qqc4-y5q5w4

https://wolfram.com/xid/0i1q1qqc4-pt34ll

Specify a maximum size for image labels:

https://wolfram.com/xid/0i1q1qqc4-hy9uc7

Show image labels at their natural sizes:

https://wolfram.com/xid/0i1q1qqc4-4rxwe0

MaxPlotPoints (4)
ListPlot3D normally uses all of the points in the dataset:

https://wolfram.com/xid/0i1q1qqc4-md7smm


https://wolfram.com/xid/0i1q1qqc4-lytvi0

https://wolfram.com/xid/0i1q1qqc4-md4q5t

Limit the number of points used in each direction:

https://wolfram.com/xid/0i1q1qqc4-j9d9p0

MaxPlotPoints imposes a regular grid on irregular data:

https://wolfram.com/xid/0i1q1qqc4-hcfobx

https://wolfram.com/xid/0i1q1qqc4-bv7mzu

The grid does not extend beyond the convex hull of the original data:

https://wolfram.com/xid/0i1q1qqc4-5am08b

https://wolfram.com/xid/0i1q1qqc4-2uno0j

Mesh (7)

https://wolfram.com/xid/0i1q1qqc4-vvy

Show the initial and final sampling mesh:

https://wolfram.com/xid/0i1q1qqc4-q6mysl

https://wolfram.com/xid/0i1q1qqc4-klbgrw

The entire mesh for irregular data is a Delaunay triangulation:

https://wolfram.com/xid/0i1q1qqc4-gg3scm

https://wolfram.com/xid/0i1q1qqc4-rpj90j

Use 5 mesh lines in each direction:

https://wolfram.com/xid/0i1q1qqc4-g2u

Use 3 mesh lines in the direction and 6 mesh lines in the
direction:

https://wolfram.com/xid/0i1q1qqc4-2as1z2

Use mesh lines at specific values:

https://wolfram.com/xid/0i1q1qqc4-jhjlnq

https://wolfram.com/xid/0i1q1qqc4-pkl2jw

Use different styles for different mesh lines:

https://wolfram.com/xid/0i1q1qqc4-v6bseu

https://wolfram.com/xid/0i1q1qqc4-brbvy9

MeshFunctions (3)
Use the value as the mesh function:

https://wolfram.com/xid/0i1q1qqc4-mvz

Use mesh lines in the and
directions:

https://wolfram.com/xid/0i1q1qqc4-nka9n

Use mesh lines corresponding to fixed distances from the origin:

https://wolfram.com/xid/0i1q1qqc4-8mjlmk

MeshShading (4)
Use None to remove regions:

https://wolfram.com/xid/0i1q1qqc4-3ofgxe

Lay a checkerboard pattern over a surface:

https://wolfram.com/xid/0i1q1qqc4-caa3q2

MeshShading has a higher priority than PlotStyle:

https://wolfram.com/xid/0i1q1qqc4-o01i1a

MeshShading has a higher priority than ColorFunction:

https://wolfram.com/xid/0i1q1qqc4-5ievlu

MeshStyle (2)
NormalsFunction (4)
Normals are automatically calculated:

https://wolfram.com/xid/0i1q1qqc4-1f7yw7

Use None to get flat shading for all the polygons:

https://wolfram.com/xid/0i1q1qqc4-w76mq3

Vary the effective normals used on the surface:

https://wolfram.com/xid/0i1q1qqc4-bf0msq

VertexNormals has a higher priority than NormalsFunction:

https://wolfram.com/xid/0i1q1qqc4-gzpu7e

PerformanceGoal (2)
Generate a higher-quality plot:

https://wolfram.com/xid/0i1q1qqc4-45s95l

https://wolfram.com/xid/0i1q1qqc4-tpxw7r

Emphasize performance, possibly at the cost of quality:

https://wolfram.com/xid/0i1q1qqc4-6ynbcj

https://wolfram.com/xid/0i1q1qqc4-wgxfj0

PlotLabels (3)
PlotLegends (5)
Use placeholders to identify plot styles:

https://wolfram.com/xid/0i1q1qqc4-kp0lm1


https://wolfram.com/xid/0i1q1qqc4-ued9xq

Use Placed to control legend position:

https://wolfram.com/xid/0i1q1qqc4-nfui9c

Use SwatchLegend to change the appearance:

https://wolfram.com/xid/0i1q1qqc4-jgn59a

Create a legend based on a color function:

https://wolfram.com/xid/0i1q1qqc4-1m1vuw

Use BarLegend to change the appearance:

https://wolfram.com/xid/0i1q1qqc4-ni0ob7

PlotRange (3)
PlotStyle (6)
Plot two surfaces with different styles:

https://wolfram.com/xid/0i1q1qqc4-tw3p

Color a surface with diffuse purple:

https://wolfram.com/xid/0i1q1qqc4-fgtblw

Use Specularity to get highlights:

https://wolfram.com/xid/0i1q1qqc4-ot6b9z

Use Opacity to get transparent surfaces:

https://wolfram.com/xid/0i1q1qqc4-fr5zwl

Use separate styles for each of the surfaces:

https://wolfram.com/xid/0i1q1qqc4-o1mqr0

https://wolfram.com/xid/0i1q1qqc4-y56fpo

https://wolfram.com/xid/0i1q1qqc4-eti


https://wolfram.com/xid/0i1q1qqc4-kc5fz

PlotTheme (4)
Use a theme with simple ticks and grid lines in a bright color scheme:

https://wolfram.com/xid/0i1q1qqc4-9dlwbn


https://wolfram.com/xid/0i1q1qqc4-68f8hv

Change the appearance by modifying Mesh and MeshShading:

https://wolfram.com/xid/0i1q1qqc4-xg33gu

Create a thick surface for 3D printing:

https://wolfram.com/xid/0i1q1qqc4-bwat35

RegionFunction (5)

https://wolfram.com/xid/0i1q1qqc4-pyh

The region depends on DataRange:

https://wolfram.com/xid/0i1q1qqc4-55ifwp

https://wolfram.com/xid/0i1q1qqc4-p20e2k


https://wolfram.com/xid/0i1q1qqc4-h1lgxw

Filling will fill from the region boundary:

https://wolfram.com/xid/0i1q1qqc4-boo

Regions do not have to be connected:

https://wolfram.com/xid/0i1q1qqc4-9m1wur

Use any logical combination of conditions:

https://wolfram.com/xid/0i1q1qqc4-c42sj0

ScalingFunctions (9)
By default, plots have linear scales in each direction:

https://wolfram.com/xid/0i1q1qqc4-s1th8c

Use a log scale in the direction:

https://wolfram.com/xid/0i1q1qqc4-yuq0eb

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

https://wolfram.com/xid/0i1q1qqc4-8ukzpu

Use a reciprocal scale in the direction:

https://wolfram.com/xid/0i1q1qqc4-3hsf4h

Use different scales in the and
directions:

https://wolfram.com/xid/0i1q1qqc4-kb70jn

Reverse the axis without changing the
axis:

https://wolfram.com/xid/0i1q1qqc4-9fbjwx

Use a scale defined by a function and its inverse:

https://wolfram.com/xid/0i1q1qqc4-la5w7q

Positions in Ticks and FaceGrids are automatically scaled:

https://wolfram.com/xid/0i1q1qqc4-m8z0wd

PlotRange is automatically scaled:

https://wolfram.com/xid/0i1q1qqc4-gycwmk

TextureCoordinateFunction (4)
Textures use scaled and
coordinates by default:

https://wolfram.com/xid/0i1q1qqc4-9azyfw


https://wolfram.com/xid/0i1q1qqc4-kswbxa


https://wolfram.com/xid/0i1q1qqc4-vtlkkj

Use textures to highlight how parameters map onto a surface:

https://wolfram.com/xid/0i1q1qqc4-9r5psj


https://wolfram.com/xid/0i1q1qqc4-1zk0ce

TextureCoordinateScaling (1)
VertexColors (3)
ListPlot3D normally uses an uncolored surface:

https://wolfram.com/xid/0i1q1qqc4-3ivuza

https://wolfram.com/xid/0i1q1qqc4-z5jfay

Specify random colors for each vertex:

https://wolfram.com/xid/0i1q1qqc4-f8gt4v

https://wolfram.com/xid/0i1q1qqc4-rit3do

https://wolfram.com/xid/0i1q1qqc4-lh2le9

Specify colors for multiple datasets:

https://wolfram.com/xid/0i1q1qqc4-1c3h9a

https://wolfram.com/xid/0i1q1qqc4-gxzxic

https://wolfram.com/xid/0i1q1qqc4-dg06fz

VertexNormals (3)
ListPlot3D automatically computes surface normals from the geometry:

https://wolfram.com/xid/0i1q1qqc4-swt776

https://wolfram.com/xid/0i1q1qqc4-kaprcz

Specify random normals for each vertex:

https://wolfram.com/xid/0i1q1qqc4-veg8gx

https://wolfram.com/xid/0i1q1qqc4-8arn06

https://wolfram.com/xid/0i1q1qqc4-5qqus0

Specify normals for multiple datasets:

https://wolfram.com/xid/0i1q1qqc4-inboqd

https://wolfram.com/xid/0i1q1qqc4-iz5fvg

https://wolfram.com/xid/0i1q1qqc4-4lm0ad

Applications (5)Sample problems that can be solved with this function
Plot an indexed family for functions:

https://wolfram.com/xid/0i1q1qqc4-hf0tmg

https://wolfram.com/xid/0i1q1qqc4-rouif

Show iterates of the logistic map, emphasizing values at similar steps:

https://wolfram.com/xid/0i1q1qqc4-rnt

Show iterates of the logistic map, emphasizing values for particular initial values:

https://wolfram.com/xid/0i1q1qqc4-k6n6ca

Plot Clebsch–Gordan coefficients as a function of and
:

https://wolfram.com/xid/0i1q1qqc4-d6tbrr

A square pulse and its discrete Fourier transform:

https://wolfram.com/xid/0i1q1qqc4-kvy9k2

https://wolfram.com/xid/0i1q1qqc4-iemdro

Show a color elevation map of the state of Colorado by using elevation data from cities:

https://wolfram.com/xid/0i1q1qqc4-pw86fp

Properties & Relations (15)Properties of the function, and connections to other functions
ListPlot3D produces an interpolating function surface:

https://wolfram.com/xid/0i1q1qqc4-1l6d

https://wolfram.com/xid/0i1q1qqc4-iursj0


https://wolfram.com/xid/0i1q1qqc4-bn5lmu

https://wolfram.com/xid/0i1q1qqc4-e3w3pe

ListSurfacePlot3D produces an approximating general surface:

https://wolfram.com/xid/0i1q1qqc4-cur1zu

https://wolfram.com/xid/0i1q1qqc4-bba5ux

ListPlot3D constructs a function surface that oscillates rapidly in the direction:

https://wolfram.com/xid/0i1q1qqc4-zi48s

When using multiple values for each
,
value, the duplicates are discarded by ListPlot3D:

https://wolfram.com/xid/0i1q1qqc4-ch3eea

https://wolfram.com/xid/0i1q1qqc4-izzd5o

ListSurfacePlot3D still reconstructs the general surface:

https://wolfram.com/xid/0i1q1qqc4-0y7f7

ListPlot3D associates values, normals, and colors with the vertices of polygons:

https://wolfram.com/xid/0i1q1qqc4-fezkjb


https://wolfram.com/xid/0i1q1qqc4-e9oq86

Raster, ArrayPlot, MatrixPlot, and ReliefPlot associate values with the whole polygon:

https://wolfram.com/xid/0i1q1qqc4-bzftkb


https://wolfram.com/xid/0i1q1qqc4-ctw3w3

Use Plot3D for functions:

https://wolfram.com/xid/0i1q1qqc4-uaq6r

Use ListPointPlot3D to show three-dimensional points:

https://wolfram.com/xid/0i1q1qqc4-1g2t5w

Use ListLinePlot3D to plot curves through lists of points:

https://wolfram.com/xid/0i1q1qqc4-c7rfi2

Plot curves through rows of heights in a table:

https://wolfram.com/xid/0i1q1qqc4-0q36tt

Use ListContourPlot to create contours from continuous data:

https://wolfram.com/xid/0i1q1qqc4-za2cfb

Use ListDensityPlot to create densities from continuous data:

https://wolfram.com/xid/0i1q1qqc4-x9b2sj

Use ArrayPlot for arrays of discrete data:

https://wolfram.com/xid/0i1q1qqc4-btkhyw

Use MatrixPlot for structural plots of matrices:

https://wolfram.com/xid/0i1q1qqc4-bdl0fp

Use ReliefPlot for matrices corresponding to medical and geographic values:

https://wolfram.com/xid/0i1q1qqc4-fxmvrn

Use ListLogPlot, ListLogLogPlot, and ListLogLinearPlot for logarithmic plots:

https://wolfram.com/xid/0i1q1qqc4-o4ap4

Use ListPolarPlot for polar plots:

https://wolfram.com/xid/0i1q1qqc4-r1ry4t

Use DateListPlot to show data over time:

https://wolfram.com/xid/0i1q1qqc4-rpwvej

Use ParametricPlot3D for three-dimensional parametric curves and surfaces:

https://wolfram.com/xid/0i1q1qqc4-jid3us

Possible Issues (2)Common pitfalls and unexpected behavior
The appearance of a plot may depend on the source of the data:

https://wolfram.com/xid/0i1q1qqc4-f05exz


https://wolfram.com/xid/0i1q1qqc4-c2zhsd

An ×3 matrix is by default interpreted as a list of triples:

https://wolfram.com/xid/0i1q1qqc4-ys6jq


https://wolfram.com/xid/0i1q1qqc4-d3opxh

Use DataRange->All to force interpretation as a matrix of values:

https://wolfram.com/xid/0i1q1qqc4-d3panm

Or provide an explicit list of data ranges to force interpretation as a matrix of values:

https://wolfram.com/xid/0i1q1qqc4-h0enk2

Neat Examples (2)Surprising or curious use cases

https://wolfram.com/xid/0i1q1qqc4-en839t

Use an image from ExampleData:

https://wolfram.com/xid/0i1q1qqc4-gv7e2q
Plot the dataset with vertex colors, simulating the texture:

https://wolfram.com/xid/0i1q1qqc4-nz9bo8

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