Products
  • Wolfram|One

    The definitive Wolfram Language and notebook experience

  • Mathematica

    The original technical computing environment

  • Wolfram Notebook Assistant + LLM Kit

    All-in-one AI assistance for your Wolfram experience

  • System Modeler
  • Wolfram Player
  • Finance Platform
  • Wolfram Engine
  • Enterprise Private Cloud
  • Application Server
  • Wolfram|Alpha Notebook Edition
  • Wolfram Cloud App
  • Wolfram Player App

More mobile apps

Core Technologies of Wolfram Products

  • Wolfram Language
  • Computable Data
  • Wolfram Notebooks
  • AI & Linguistic Understanding

Deployment Options

  • Wolfram Cloud
  • wolframscript
  • Wolfram Engine Community Edition
  • Wolfram LLM API
  • WSTPServer
  • Wolfram|Alpha APIs

From the Community

  • Function Repository
  • Community Paclet Repository
  • Example Repository
  • Neural Net Repository
  • Prompt Repository
  • Wolfram Demonstrations
  • Data Repository
  • Group & Organizational Licensing
  • All Products
Consulting & Solutions

We deliver solutions for the AI era—combining symbolic computation, data-driven insights and deep technical expertise

  • Data & Computational Intelligence
  • Model-Based Design
  • Algorithm Development
  • Wolfram|Alpha for Business
  • Blockchain Technology
  • Education Technology
  • Quantum Computation

WolframConsulting.com

Wolfram Solutions

  • Data Science
  • Artificial Intelligence
  • Biosciences
  • Healthcare Intelligence
  • Sustainable Energy
  • Control Systems
  • Enterprise Wolfram|Alpha
  • Blockchain Labs

More Wolfram Solutions

Wolfram Solutions For Education

  • Research Universities
  • Colleges & Teaching Universities
  • Junior & Community Colleges
  • High Schools
  • Educational Technology
  • Computer-Based Math

More Solutions for Education

  • Contact Us
Learning & Support

Get Started

  • Wolfram Language Introduction
  • Fast Intro for Programmers
  • Fast Intro for Math Students
  • Wolfram Language Documentation

More Learning

  • Highlighted Core Areas
  • Demonstrations
  • YouTube
  • Daily Study Groups
  • Wolfram Schools and Programs
  • Books

Grow Your Skills

  • Wolfram U

    Courses in computing, science, life and more

  • Community

    Learn, solve problems and share ideas.

  • Blog

    News, views and insights from Wolfram

  • Resources for

    Software Developers

Tech Support

  • Contact Us
  • Support FAQs
  • Support FAQs
  • Contact Us
Company
  • About Wolfram
  • Career Center
  • All Sites & Resources
  • Connect & Follow
  • Contact Us

Work with Us

  • Student Ambassador Initiative
  • Wolfram for Startups
  • Student Opportunities
  • Jobs Using Wolfram Language

Educational Programs for Adults

  • Summer School
  • Winter School

Educational Programs for Youth

  • Middle School Camp
  • High School Research Program
  • Computational Adventures

Read

  • Stephen Wolfram's Writings
  • Wolfram Blog
  • Wolfram Tech | Books
  • Wolfram Media
  • Complex Systems

Educational Resources

  • Wolfram MathWorld
  • Wolfram in STEM/STEAM
  • Wolfram Challenges
  • Wolfram Problem Generator

Wolfram Initiatives

  • Wolfram Science
  • Wolfram Foundation
  • History of Mathematics Project

Events

  • Stephen Wolfram Livestreams
  • Online & In-Person Events
  • Contact Us
  • Connect & Follow
Wolfram|Alpha
  • Your Account
  • User Portal
  • Wolfram Cloud
  • Products
    • Wolfram|One
    • Mathematica
    • Wolfram Notebook Assistant + LLM Kit
    • System Modeler
    • Wolfram Player
    • Finance Platform
    • Wolfram|Alpha Notebook Edition
    • Wolfram Engine
    • Enterprise Private Cloud
    • Application Server
    • Wolfram Cloud App
    • Wolfram Player App

    More mobile apps

    • Core Technologies
      • Wolfram Language
      • Computable Data
      • Wolfram Notebooks
      • AI & Linguistic Understanding
    • Deployment Options
      • Wolfram Cloud
      • wolframscript
      • Wolfram Engine Community Edition
      • Wolfram LLM API
      • WSTPServer
      • Wolfram|Alpha APIs
    • From the Community
      • Function Repository
      • Community Paclet Repository
      • Example Repository
      • Neural Net Repository
      • Prompt Repository
      • Wolfram Demonstrations
      • Data Repository
    • Group & Organizational Licensing
    • All Products
  • Consulting & Solutions

    We deliver solutions for the AI era—combining symbolic computation, data-driven insights and deep technical expertise

    WolframConsulting.com

    Wolfram Solutions

    • Data Science
    • Artificial Intelligence
    • Biosciences
    • Healthcare Intelligence
    • Sustainable Energy
    • Control Systems
    • Enterprise Wolfram|Alpha
    • Blockchain Labs

    More Wolfram Solutions

    Wolfram Solutions For Education

    • Research Universities
    • Colleges & Teaching Universities
    • Junior & Community Colleges
    • High Schools
    • Educational Technology
    • Computer-Based Math

    More Solutions for Education

    • Contact Us
  • Learning & Support

    Get Started

    • Wolfram Language Introduction
    • Fast Intro for Programmers
    • Fast Intro for Math Students
    • Wolfram Language Documentation

    Grow Your Skills

    • Wolfram U

      Courses in computing, science, life and more

    • Community

      Learn, solve problems and share ideas.

    • Blog

      News, views and insights from Wolfram

    • Resources for

      Software Developers
    • Tech Support
      • Contact Us
      • Support FAQs
    • More Learning
      • Highlighted Core Areas
      • Demonstrations
      • YouTube
      • Daily Study Groups
      • Wolfram Schools and Programs
      • Books
    • Support FAQs
    • Contact Us
  • Company
    • About Wolfram
    • Career Center
    • All Sites & Resources
    • Connect & Follow
    • Contact Us

    Work with Us

    • Student Ambassador Initiative
    • Wolfram for Startups
    • Student Opportunities
    • Jobs Using Wolfram Language

    Educational Programs for Adults

    • Summer School
    • Winter School

    Educational Programs for Youth

    • Middle School Camp
    • High School Research Program
    • Computational Adventures

    Read

    • Stephen Wolfram's Writings
    • Wolfram Blog
    • Wolfram Tech | Books
    • Wolfram Media
    • Complex Systems
    • Educational Resources
      • Wolfram MathWorld
      • Wolfram in STEM/STEAM
      • Wolfram Challenges
      • Wolfram Problem Generator
    • Wolfram Initiatives
      • Wolfram Science
      • Wolfram Foundation
      • History of Mathematics Project
    • Events
      • Stephen Wolfram Livestreams
      • Online & In-Person Events
    • Contact Us
    • Connect & Follow
  • Wolfram|Alpha
  • Wolfram Cloud
  • Your Account
  • User Portal
Wolfram Language & System Documentation Center
ListPlot3D
  • See Also
    • ListPointPlot3D
    • ListLinePlot3D
    • ListSurfacePlot3D
    • Plot3D
    • ListDensityPlot
    • ListContourPlot
    • ListContourPlot3D
    • ListSliceContourPlot3D
    • ListSliceDensityPlot3D
    • ListLinePlot
    • ReliefPlot
    • ArrayPlot
  • Related Guides
    • Data Visualization
    • Tabular Visualization
    • Scientific Data Analysis
    • Numerical Data
    • Statistical Visualization
    • Financial Visualization
    • 3D Printing
  • Workflows
    • Change the Style of Points in a 2D Scatter Plot
  • Tech Notes
    • Plotting Lists of Data
    • See Also
      • ListPointPlot3D
      • ListLinePlot3D
      • ListSurfacePlot3D
      • Plot3D
      • ListDensityPlot
      • ListContourPlot
      • ListContourPlot3D
      • ListSliceContourPlot3D
      • ListSliceDensityPlot3D
      • ListLinePlot
      • ReliefPlot
      • ArrayPlot
    • Related Guides
      • Data Visualization
      • Tabular Visualization
      • Scientific Data Analysis
      • Numerical Data
      • Statistical Visualization
      • Financial Visualization
      • 3D Printing
    • Workflows
      • Change the Style of Points in a 2D Scatter Plot
    • Tech Notes
      • Plotting Lists of Data

ListPlot3D[{{f11,…,f1n},…,{fm1,…,fmn}}]

generates a surface with height fij at position {j,i}.

ListPlot3D[{{x1,y1,f1},…,{xk,yk,fk}}]

generates a surface with height fi at position {xi,yi}.

ListPlot3D[{data1,data2,…}]

plots the surfaces corresponding to each of the datai.

Details and Options
Details and Options Details and Options
Examples  
Basic Examples  
Scope  
General Data  
Tabular Data  
Special Data  
Labeling and Legending  
Presentation  
Options  
BoundaryStyle  
ClippingStyle  
ColorFunction  
Show More Show More
ColorFunctionScaling  
DataRange  
Filling  
FillingStyle  
InterpolationOrder  
IntervalMarkers  
IntervalMarkersStyle  
LabelingSize  
MaxPlotPoints  
Mesh  
MeshFunctions  
MeshShading  
MeshStyle  
NormalsFunction  
PerformanceGoal  
PlotFit  
PlotFitElements  
PlotLabels  
PlotLegends  
PlotRange  
PlotStyle  
PlotTheme  
RegionFunction  
ScalingFunctions  
TextureCoordinateFunction  
TextureCoordinateScaling  
VertexColors  
VertexNormals  
Applications  
Properties & Relations  
Possible Issues  
Neat Examples  
See Also
Tech Notes
Related Guides
Related Workflows
Related Links
History
Cite this Page
BUILT-IN SYMBOL
  • See Also
    • ListPointPlot3D
    • ListLinePlot3D
    • ListSurfacePlot3D
    • Plot3D
    • ListDensityPlot
    • ListContourPlot
    • ListContourPlot3D
    • ListSliceContourPlot3D
    • ListSliceDensityPlot3D
    • ListLinePlot
    • ReliefPlot
    • ArrayPlot
  • Related Guides
    • Data Visualization
    • Tabular Visualization
    • Scientific Data Analysis
    • Numerical Data
    • Statistical Visualization
    • Financial Visualization
    • 3D Printing
  • Workflows
    • Change the Style of Points in a 2D Scatter Plot
  • Tech Notes
    • Plotting Lists of Data
    • See Also
      • ListPointPlot3D
      • ListLinePlot3D
      • ListSurfacePlot3D
      • Plot3D
      • ListDensityPlot
      • ListContourPlot
      • ListContourPlot3D
      • ListSliceContourPlot3D
      • ListSliceDensityPlot3D
      • ListLinePlot
      • ReliefPlot
      • ArrayPlot
    • Related Guides
      • Data Visualization
      • Tabular Visualization
      • Scientific Data Analysis
      • Numerical Data
      • Statistical Visualization
      • Financial Visualization
      • 3D Printing
    • Workflows
      • Change the Style of Points in a 2D Scatter Plot
    • Tech Notes
      • Plotting Lists of Data

ListPlot3D

ListPlot3D[{{f11,…,f1n},…,{fm1,…,fmn}}]

generates a surface with height fij at position {j,i}.

ListPlot3D[{{x1,y1,f1},…,{xk,yk,fk}}]

generates a surface with height fi at position {xi,yi}.

ListPlot3D[{data1,data2,…}]

plots the surfaces corresponding to each of the datai.

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:
  • 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, 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}}
    SparseArrayvalues as a normal array
    QuantityArraymagnitudes
    WeightedDataunweighted 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:
  • Automaticautomatically placed labels
    Above, Below, Before, Afterpositions 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]
  • AxesTruewhether to draw axes
    BoundaryStyle Automatichow to draw boundary lines for surfaces
    BoxRatios{1,1,0.4}bounding 3D box ratios
    ClippingStyle Automatichow to draw clipped parts of the surface
    ColorFunction Automatichow to determine the color of surfaces
    ColorFunctionScaling Truewhether to scale arguments to ColorFunction
    DataRange Automaticthe range of and values to assume for data
    Filling Nonefilling under the surface
    FillingStyle Opacity[0.5]style to use for filling
    InterpolationOrder Nonethe polynomial degree in each variable of surfaces used in joining data points
    IntervalMarkers Automatichow to render uncertainty
    IntervalMarkersStyle Automaticstyle for uncertainty elements
    LabelingSize Automaticsize to use for callout and label
    MaxPlotPoints Automaticthe maximum number of points to include
    Mesh Automatichow many mesh lines in each direction to draw
    MeshFunctions {#1&,#2&}how to determine the placement of mesh lines
    MeshShading Nonehow to shade regions between mesh lines
    MeshStyle Automaticthe style for mesh lines
    MethodAutomaticthe method to use for interpolation and data reduction
    NormalsFunction Automatichow to determine effective surface normals
    PerformanceGoal $PerformanceGoalaspects of performance to try to optimize
    PlotFit Nonehow to fit a surface to the points
    PlotFitElements Automaticfitted elements to show in the plot
    PlotLabels Nonelabels to use for surfaces
    PlotLegends Nonelegends for surfaces
    PlotRange {Full,Full,Automatic}the range of or other values to include
    PlotRangePaddingAutomatichow much to pad the range of values
    PlotStyle Automaticgraphics directives to specify the style for the surface
    PlotTheme $PlotThemeoverall theme for the plot
    RegionFunction (True&)how to determine whether a point should be included
    ScalingFunctions Nonehow to scale individual coordinates
    TextureCoordinateFunction Automatichow to determine texture coordinates
    TextureCoordinateScaling Truewhether to scale arguments to TextureCoordinateFunction
    VertexColors Automaticcolors to assume at each point
    VertexNormals Automaticeffective 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:
  • szscale 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].
  • List of all options
  • Highlight options with settings specific to ListPlot3D
  • AlignmentPointCenterthe default point in the graphic to align with
    AspectRatioAutomaticratio of height to width
    AxesTruewhether to draw axes
    AxesEdgeAutomaticon which edges to put axes
    AxesLabelNoneaxes labels
    AxesOriginAutomaticwhere axes should cross
    AxesStyle{}graphics directives to specify the style for axes
    BackgroundNonebackground color for the plot
    BaselinePositionAutomatichow to align with a surrounding text baseline
    BaseStyle{}base style specifications for the graphic
    BoundaryStyleAutomatichow to draw boundary lines for surfaces
    BoxedTruewhether to draw the bounding box
    BoxRatios{1,1,0.4}bounding 3D box ratios
    BoxStyle{}style specifications for the box
    ClippingStyleAutomatichow to draw clipped parts of the surface
    ClipPlanesNoneclipping planes
    ClipPlanesStyleAutomaticstyle specifications for clipping planes
    ColorFunctionAutomatichow to determine the color of surfaces
    ColorFunctionScalingTruewhether to scale arguments to ColorFunction
    ContentSelectableAutomaticwhether to allow contents to be selected
    ControllerLinkingFalsewhen to link to external rotation controllers
    ControllerPathAutomaticwhat external controllers to try to use
    DataRangeAutomaticthe range of and values to assume for data
    Epilog{}2D graphics primitives to be rendered after the main plot
    FaceGridsNonegrid lines to draw on the bounding box
    FaceGridsStyle{}style specifications for face grids
    FillingNonefilling under the surface
    FillingStyleOpacity[0.5]style to use for filling
    FormatTypeTraditionalFormdefault format type for text
    ImageMargins0.the margins to leave around the graphic
    ImagePaddingAllwhat extra padding to allow for labels, etc.
    ImageSizeAutomaticabsolute size at which to render the graphic
    InterpolationOrderNonethe polynomial degree in each variable of surfaces used in joining data points
    IntervalMarkersAutomatichow to render uncertainty
    IntervalMarkersStyleAutomaticstyle for uncertainty elements
    LabelingSizeAutomaticsize to use for callout and label
    LabelStyle{}style specifications for labels
    LightingAutomaticsimulated light sources to use
    MaxPlotPointsAutomaticthe maximum number of points to include
    MeshAutomatichow many mesh lines in each direction to draw
    MeshFunctions{#1&,#2&}how to determine the placement of mesh lines
    MeshShadingNonehow to shade regions between mesh lines
    MeshStyleAutomaticthe style for mesh lines
    MethodAutomaticthe method to use for interpolation and data reduction
    NormalsFunctionAutomatichow to determine effective surface normals
    PerformanceGoal$PerformanceGoalaspects of performance to try to optimize
    PlotFitNonehow to fit a surface to the points
    PlotFitElementsAutomaticfitted elements to show in the plot
    PlotLabelNonea label for the plot
    PlotLabelsNonelabels to use for surfaces
    PlotLegendsNonelegends for surfaces
    PlotRange{Full,Full,Automatic}the range of or other values to include
    PlotRangePaddingAutomatichow much to pad the range of values
    PlotRegionAutomaticfinal display region to be filled
    PlotStyleAutomaticgraphics directives to specify the style for the surface
    PlotTheme$PlotThemeoverall theme for the plot
    PreserveImageOptionsAutomaticwhether 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
    ScalingFunctionsNonehow to scale individual coordinates
    SphericalRegionAutomaticwhether to make the circumscribing sphere fit in the final display area
    TextureCoordinateFunctionAutomatichow to determine texture coordinates
    TextureCoordinateScalingTruewhether to scale arguments to TextureCoordinateFunction
    TicksAutomaticspecification for ticks
    TicksStyle{}style specification for ticks
    TouchscreenAutoZoomFalsewhether to zoom to fullscreen when activated on a touchscreen
    VertexColorsAutomaticcolors to assume at each point
    VertexNormalsAutomaticeffective normals to assume at each point
    ViewAngleAutomaticangle of the field of view
    ViewCenterAutomaticpoint to display at the center
    ViewMatrixAutomaticexplicit transformation matrix
    ViewPoint{1.3,-2.4,2.}viewing position
    ViewProjectionAutomaticprojection method for rendering objects distant from the viewer
    ViewRangeAllrange of viewing distances to include
    ViewVectorAutomaticposition and direction of a simulated camera
    ViewVertical{0,0,1}direction to make vertical

Examples

open all close all

Basic Examples  (3)

Use an array of values to define heights for a surface:

Give explicit , , coordinates for points on a surface:

Use different interpolations of data:

Scope  (29)

General Data  (9)

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

Provide explicit and data ranges by using DataRange:

Plot multiple sets of regular data:

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

Plot multiple sets of irregular data:

Areas around where the data is nonreal are excluded:

Use MaxPlotPoints to limit the number of points used:

PlotRange is selected automatically:

Use PlotRange to focus in on areas of interest:

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

Tabular Data  (1)

Get tabular data:

Plot a shaded density plot of column f over columns x and y:

Plot multiple sets of columns as separate surfaces:

Include color swatch legends for the plot:

Special Data  (4)

Use Quantity to include units with the data:

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

Plot data with uncertainty:

Plot data with uncertainty in x, y and z:

Labeling and Legending  (6)

Label surfaces with Labeled:

Label surfaces with PlotLabels:

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

Use Callout:

Place a label with specific locations:

Include legends for each surface:

Use Legended to provide a legend for a specific dataset:

Use Placed to change the legend location:

Presentation  (9)

Provide an explicit PlotStyle for the surface:

Provide separate styles for different surfaces:

Add labels:

Color the surface by height:

Provide overlay meshes:

Style the areas between mesh lines:

Provide an interactive Tooltip for a surface:

Fill below a surface:

Use plot theme:

Options  (122)

BoundaryStyle  (6)

Use a black boundary around the edges of the surface:

Use a thick boundary around the edges of the surface:

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

Do not use any boundary:

BoundaryStyle applies to holes cut by RegionFunction:

BoundaryStyle applies where there are jumps in the surface:

ClippingStyle  (4)

By default clipped regions have no color:

Do not draw clipped regions:

Make clipped regions partially transparent:

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

ColorFunction  (6)

Color by scaled , , and values:

Color by scaled and coordinates:

Use ColorData for predefined color gradients:

Named color gradients color in the direction:

ColorFunction has higher priority than PlotStyle:

ColorFunction has lower priority than MeshShading:

ColorFunctionScaling  (2)

Use unscaled coordinates:

Unscaled coordinates are dependent on DataRange:

DataRange  (5)

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

Rescale to the sampling space:

Each dataset is scaled to the same domain:

Triples are interpreted as , , coordinates:

Force interpretation as arrays of height values:

The dataset is normally interpreted as a list of triples:

Filling  (5)

Fill to the bottom:

Filling occurs along the region cut by the RegionFunction:

Fill to both top and bottom:

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

Fill below discrete regions:

FillingStyle  (3)

Fill to the bottom with a variety of styles:

Fill to the plane with red below and blue above:

Fill to the plane from above only:

InterpolationOrder  (5)

Points are normally joined with flat polygons:

Use zero-order or piecewise-constant interpolation:

Use third-order spline interpolation to fit the data:

Interpolation order 0 to 5:

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

IntervalMarkers  (2)

Interval markers are bars by default:

Use named IntervalMarkers:

IntervalMarkersStyle  (2)

Interval markers are black by default:

Specify a style for the bars using IntervalMarkersStyle:

LabelingSize  (2)

Textual labels are shown at their actual sizes:

Specify a maximum size for textual labels:

Image labels are automatically resized:

Specify a maximum size for image labels:

Show image labels at their natural sizes:

MaxPlotPoints  (4)

ListPlot3D normally uses all of the points in the dataset:

Limit the number of points used in each direction:

MaxPlotPoints imposes a regular grid on irregular data:

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

Mesh  (7)

Use no mesh:

Show the initial and final sampling mesh:

The entire mesh for irregular data is a Delaunay triangulation:

Use 5 mesh lines in each direction:

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

Use mesh lines at specific values:

Use different styles for different mesh lines:

MeshFunctions  (3)

Use the value as the mesh function:

Use mesh lines in the and directions:

Use mesh lines corresponding to fixed distances from the origin:

MeshShading  (4)

Use None to remove regions:

Lay a checkerboard pattern over a surface:

MeshShading has a higher priority than PlotStyle:

MeshShading has a higher priority than ColorFunction:

MeshStyle  (2)

Use red mesh lines:

Use red mesh lines in the direction and thick mesh lines in the direction:

NormalsFunction  (4)

Normals are automatically calculated:

Use None to get flat shading for all the polygons:

Vary the effective normals used on the surface:

VertexNormals has a higher priority than NormalsFunction:

PerformanceGoal  (2)

Generate a higher-quality plot:

Emphasize performance, possibly at the cost of quality:

PlotFit  (4)

By default, surfaces can be very detailed:

Fitting the data results in smoother surfaces:

Fit a quadratic surface to the data:

Use KernelModelFit to approximate the data:

PlotFitElements  (4)

By default, the fitted model is shown with the data points:

Include the data points with the fitted surface:

Plot confidence surfaces for the data, with a default confidence level of 0.95:

Use a confidence level of 0.5 for the bands:

Show residual lines from the data points to the fitted surface:

Combine the original points with black residual lines:

PlotLabels  (3)

Specify text to label surfaces:

Specify a label at a position:

Specify labels to identify surfaces:

PlotLegends  (5)

Use placeholders to identify plot styles:

Use specific labels:

Use Placed to control legend position:

Use SwatchLegend to change the appearance:

Create a legend based on a color function:

Use BarLegend to change the appearance:

PlotRange  (3)

Automatically compute the range:

Use all points to compute the range:

Use an explicit range to emphasize features:

PlotStyle  (6)

Plot two surfaces with different styles:

Color a surface with diffuse purple:

Use Specularity to get highlights:

Use Opacity to get transparent surfaces:

Use separate styles for each of the surfaces:

Produce a wire mesh:

PlotTheme  (4)

Use a theme with simple ticks and grid lines in a bright color scheme:

Change the color scheme:

Change the appearance by modifying Mesh and MeshShading:

Create a thick surface for 3D printing:

RegionFunction  (5)

Plot over a region in :

The region depends on DataRange:

Filling will fill from the region boundary:

Regions do not have to be connected:

Use any logical combination of conditions:

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 FaceGrids are automatically scaled:

PlotRange is automatically scaled:

TextureCoordinateFunction  (4)

Textures use scaled and coordinates by default:

Use the and parameters:

Use unscaled coordinates:

Use textures to highlight how parameters map onto a surface:

TextureCoordinateScaling  (1)

Use scaled or unscaled coordinates for textures:

VertexColors  (3)

ListPlot3D normally uses an uncolored surface:

Specify random colors for each vertex:

Specify colors for multiple datasets:

VertexNormals  (3)

ListPlot3D automatically computes surface normals from the geometry:

Specify random normals for each vertex:

Specify normals for multiple datasets:

Applications  (5)

Plot an indexed family for functions:

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

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

Plot Clebsch–Gordan coefficients as a function of and :

A square pulse and its discrete Fourier transform:

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

Properties & Relations  (15)

ListPlot3D produces an interpolating function surface:

ListSurfacePlot3D produces an approximating general surface:

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

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

ListSurfacePlot3D still reconstructs the general surface:

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

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

Use Plot3D for functions:

Use ListPointPlot3D to show three-dimensional points:

Use ListLinePlot3D to plot curves through lists of points:

Plot curves through rows of heights in a table:

Use ListContourPlot to create contours from continuous data:

Use ListDensityPlot to create densities from continuous data:

Use ArrayPlot for arrays of discrete data:

Use MatrixPlot for structural plots of matrices:

Use ReliefPlot for matrices corresponding to medical and geographic values:

Use ListLogPlot, ListLogLogPlot, and ListLogLinearPlot for logarithmic plots:

Use ListPolarPlot for polar plots:

Use DateListPlot to show data over time:

Use ParametricPlot3D for three-dimensional parametric curves and surfaces:

Possible Issues  (2)

The appearance of a plot may depend on the source of the data:

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

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

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

Neat Examples  (2)

Voronoi region interpolation:

Use an image from ExampleData:

Plot the dataset with vertex colors, simulating the texture:

See Also

ListPointPlot3D  ListLinePlot3D  ListSurfacePlot3D  Plot3D  ListDensityPlot  ListContourPlot  ListContourPlot3D  ListSliceContourPlot3D  ListSliceDensityPlot3D  ListLinePlot  ReliefPlot  ArrayPlot

Tech Notes

    ▪
  • Plotting Lists of Data

Related Guides

    ▪
  • Data Visualization
  • ▪
  • Tabular Visualization
  • ▪
  • Scientific Data Analysis
  • ▪
  • Numerical Data
  • ▪
  • Statistical Visualization
  • ▪
  • Financial Visualization
  • ▪
  • 3D Printing

Related Workflows

    Related Workflows
    ▪
  • Change the Style of Points in a 2D Scatter Plot

Related Links

  • An Elementary Introduction to the Wolfram Language : More Forms of Visualization

History

Introduced in 1988 (1.0) | Updated in 2007 (6.0) ▪ 2010 (8.0) ▪ 2012 (9.0) ▪ 2014 (10.0) ▪ 2016 (11.0) ▪ 2017 (11.1) ▪ 2019 (12.0) ▪ 2020 (12.1) ▪ 2025 (14.2) ▪ 2025 (14.3)

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).

CMS

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

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: 01-December-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: 01-December-2025]}

Top
Introduction for Programmers
Introductory Book
Wolfram Function Repository | Wolfram Data Repository | Wolfram Data Drop | Wolfram Language Products
Top
  • Products
  • Wolfram|One
  • Mathematica
  • Notebook Assistant + LLM Kit
  • System Modeler

  • Wolfram|Alpha Notebook Edition
  • Wolfram|Alpha Pro
  • Mobile Apps

  • Wolfram Player
  • Wolfram Engine

  • Volume & Site Licensing
  • Server Deployment Options
  • Consulting
  • Wolfram Consulting
  • Repositories
  • Data Repository
  • Function Repository
  • Community Paclet Repository
  • Neural Net Repository
  • Prompt Repository

  • Wolfram Language Example Repository
  • Notebook Archive
  • Wolfram GitHub
  • Learning
  • Wolfram U
  • Wolfram Language Documentation
  • Webinars & Training
  • Educational Programs

  • Wolfram Language Introduction
  • Fast Introduction for Programmers
  • Fast Introduction for Math Students
  • Books

  • Wolfram Community
  • Wolfram Blog
  • Public Resources
  • Wolfram|Alpha
  • Wolfram Problem Generator
  • Wolfram Challenges

  • Computer-Based Math
  • Computational Thinking
  • Computational Adventures

  • Demonstrations Project
  • Wolfram Data Drop
  • MathWorld
  • Wolfram Science
  • Wolfram Media Publishing
  • Customer Resources
  • Store
  • Product Downloads
  • User Portal
  • Your Account
  • Organization Access

  • Support FAQ
  • Contact Support
  • Company
  • About Wolfram
  • Careers
  • Contact
  • Events
Wolfram Community Wolfram Blog
Legal & Privacy Policy
WolframAlpha.com | WolframCloud.com
© 2025 Wolfram
© 2025 Wolfram | Legal & Privacy Policy |
English