ListFitPlot3D[{{f11,…,f1n},…,{fm1,…,fmn}}]
generates a regression surface for data with height fij at position {j,i}.
ListFitPlot3D[{{x1,y1,f1},…,{xk,yk,fk}}]
generates a regression surface for data with height fi at position {xi,yi}.


ListFitPlot3D
ListFitPlot3D[{{f11,…,f1n},…,{fm1,…,fmn}}]
generates a regression surface for data with height fij at position {j,i}.
ListFitPlot3D[{{x1,y1,f1},…,{xk,yk,fk}}]
generates a regression surface for data with height fi at position {xi,yi}.
Details












- ListFitPlot3D is also known as a 3D regression plot.
- It fits a model to the given data and displays both model and data.
- Furthermore, it is easy to show quality measures of the fitted model such as confidence bands or residuals:
- 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 - The xi and yi can also be dates, times or categorical values if appropriate settings are used for the ScalingFunctions option, or if the type information is available from the tabular data source.
- 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 - ListFitPlot3D[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. - 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 a label placed at relative position pos of the surface - ListFitPlot3D 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 PlotFit Automatic how to fit a surface to the points PlotFitElements Automatic fitted elements to show in 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
PlotRangeClipping True whether to clip at the plot range 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 - PlotFitfit determines what method is used to fit a surface to the data.
- Possible settings for fit include:
-
Automatic automatically choose the fitting model "Linear" use linear regression "Quadratic" use a quadratic model "Cubic" use a cubic model "Exponential" use an exponential model model use the provided FittedModel model - PlotFitElementselems controls what visual elements to include for comparing the fitted surface to the original data points.
- Possible settings for elems include:
-
None show only the fitted surface Automatic automatically chosen elements "DataPoints" show the original data "BandSurfaces" show 95% confidence bands "Residuals" draw residual lines between points and fitted surface {elem,"Style"style,"FillingStyle"fill} use style for the element and fill for the filling style - 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, ListFitPlot3D[{{a11,a12,a13},…,{an1,an2,an3}}] will assume that the data being given is {{x1,y1,z1},…}, rather than an
array of height values.
- ListFitPlot3D[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 the x and y axes {sx,sy,sz} scale the 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
,
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 -
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 PlotFit Automatic how to fit a surface to the points PlotFitElements Automatic fitted elements to show in the plot 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
PlotRangeClipping True whether to clip at the plot range 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 all close allBasic Examples (5)
Plot a regression surface for explicit ,
,
coordinates:
Show residual lines from the data to the fitted surface:
Show surfaces representing the upper and lower confidence levels:
Show pillars between confidence surfaces:
Use LocalModelFit to generate the regression surface:
Scope (4)
Options (7)
IntervalMarkers (2)
IntervalMarkersStyle (2)
Tech Notes
Related Workflows
- Change the Style of Points in a 2D Scatter Plot
History
Text
Wolfram Research (2025), ListFitPlot3D, Wolfram Language function, https://reference.wolfram.com/language/ref/ListFitPlot3D.html.
CMS
Wolfram Language. 2025. "ListFitPlot3D." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ListFitPlot3D.html.
APA
Wolfram Language. (2025). ListFitPlot3D. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ListFitPlot3D.html
BibTeX
@misc{reference.wolfram_2025_listfitplot3d, author="Wolfram Research", title="{ListFitPlot3D}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/ListFitPlot3D.html}", note=[Accessed: 04-August-2025]}
BibLaTeX
@online{reference.wolfram_2025_listfitplot3d, organization={Wolfram Research}, title={ListFitPlot3D}, year={2025}, url={https://reference.wolfram.com/language/ref/ListFitPlot3D.html}, note=[Accessed: 04-August-2025]}