plot3d - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


three-dimensional plotting


Calling Sequence





Calling Sequence

plot3d(expr, x=a..b, y=c..d, opts)

plot3d(f, a..b, c..d, opts)

plot3d([exprf, exprg, exprh], s=a..b, t=c..d, opts)

plot3d([f, g, h], a..b, c..d, opts)




expression in x and y

f, g, h


procedures or operators

exprf, exprg, exprh


expressions in s and t

a, b


real constants, procedures, or expressions in y

c, d


real constants, procedures, or expressions in x

x, y, s, t





(optional) equations of the form option=value where option is described in plot3d/option



The plot3d command computes the plot of a three-dimensional surface. The first two calling sequences describe surface plots in Cartesian coordinates, while the last two describe parametric surface plots.


Other plotting facilities include the plot command for 2-D plotting, the plots package for specialized plots and the plottools package for plotting objects.


For further resources for plotting, and a pictorial listing of the available types of plots, see the Plotting Guide. Note that this guide is only available in the Standard interface.


Maple includes the Interactive Plot Builder, which provides a point-and-click interface to the plotting functionality including two and three-dimensional plots, animations, and interactive plots with sliders. For more information, see Using the Interactive Plot Builder.


In the first calling sequence, plot3d(expr, x=a..b, y=c..d), the expression expr must be an expression in the names x and y. The range a..b must evaluate to real constants and the range c..d must either evaluate to real constants or be expressions in x. Alternatively, the range c..d must evaluate to real constants and the range a..b must either evaluate to real constants or be expressions in y. These specify the range over which expr is plotted.


In the second calling sequence, plot3d(f, a..b, c..d), f must be a procedure or operator that takes two arguments. Operator notation must be used, that is, the procedure name is given without parameters specified, and the ranges must be given simply in the form a..b, rather than as an equation. At least one of the ranges must have arguments evaluating to real constants; the other range may have arguments evaluating to real constants or be procedures of one variable.


With these first two calling sequences, the range arguments may be omitted. In that case, the plot3d command tries to determine a reasonable domain. The first argument f or expr can also be omitted or set to the empty list [], in which case an empty plot is created.


A parametric surface can be defined by three expressions exprf, exprg, exprh in two variables. In the third calling sequence, plot3d([exprf, exprg, exprh], s=a..b, t=c..d), exprf, exprg, and exprh must be expressions in the names s and t. In the fourth calling sequence, plot3d([f, g, h], a..b, c..d), f, g, and h must be procedures or operators taking at most two arguments. As with the second calling sequence, operator notation must be used.


Any additional arguments are interpreted as options, which are specified as equations of the form option = value. For example, the option grid = [m, n] where m and n are positive integers, specifies that the plot is to be constructed on an m by n grid at equally spaced points in the ranges a..b and c..d respectively. By default, a 49 by 49 grid is used and 2401 points are generated. Other options include specification of alternate coordinate systems and rendering styles. For more information, see plot3d/options.


If the first argument in any of the calling sequences is a set or list of surfaces, then the surfaces are plotted together. There is one exception to this: a list of three algebraic expressions or procedures is always interpreted as a parametric plot. To specify a list of three distinct plots, use the option plotlist=true (or simply plotlist).


When plotting multiple surfaces using a list, option values can also be given as lists, with elements corresponding to elements of the list of surfaces. The options that can take lists as values are: color, coords, grid, linestyle, numpoints, shading, style, symbol, symbolsize, thickness, and transparency.


Plots in alternative coordinate systems, such as spherical and cylindrical systems, can be generated by using the coords option. For more information, see the examples below or the plot3d/coords help page.


There are several ways to color 3-D surfaces created by the plot3d command. See the plot/color, plot3d/colorfunc and plot/colorscheme help pages for more information.


When plot3d evaluates its arguments, any errors generated during the evaluation are suppressed. A symptom that something has gone wrong with the evaluation of your expression is a resulting empty plot.


Help pages describing plotting commands and interactive plotting features are written with the assumption that you are using the Standard Worksheet interface. If you are using a different interface, see plot/interface.


An output device may be specified using the plotsetup command. See plot/device for a list of supported devices.


The result of a call to plot3d is a PLOT3D data structure containing enough information to render the plot. The user can assign a PLOT3D value to a variable, save it in a file, then read it in for redisplay. For more information, see plot3d/structure.


All plotted expressions are evaluated numerically, that is, as floating point expressions, rather than symbolically. For more information about the computational environment used by the plot3d function, see plot/computation.


Default ranges in 3-D plots

For trigonometric functions, default ranges of 2π .. 2π are often used.


Default ranges of -10..10 are sometimes used when the range arguments are not provided.


Sometimes, a plot can be centered better with a different range.


Generating three-dimensional surfaces using expressions or procedures

When plotting an expression in two variables, the range for each variable must be provided in the form of x=a..b and y=c..d, where x and y are the variables used in the expression.



To plot a procedure that is a function of two variables (for example, binomial), give the procedure in operator notation (that is, without parameters). Also, the ranges must be given in the form a..b, not as equations.



The following example defines a functional operator of two variables and plots it.



Using variable expressions or procedures in a range

You can specify a variable expression in one or both endpoints of a range as long as the other range contains real constants for both its endpoints. In the following example, the endpoints for x are given as real constants while the endpoints for y are expressions in x.


Alternatively, the endpoints for y can be specified as real constants and the endpoints for x given as expressions in y.


The following example uses one procedure for the surface to be plotted and another procedure in the range for the second variable.

p:= proc(x,y) if x^2 < y then cos(x*y) else x*sin(x*y) end if end proc:

h:= proc(x) x^2  end proc:


Drawing smoother curves with the grid option

The default 49 by 49 grid may be too coarse for a plot, especially if the surface changes rapidly over the plotting range.


Use the grid = [m, n] option to specify a finer grid and show more detail in your plot.


Specifying the surface color

The following command shows the default color for a three-dimensional surface.


To set the color, use the color=cname option, where cname is one of the predefined plot color names.


You can also set the color option to an expression or procedure, or use the colorscheme option to color by z values.



p:= proc(x,y) if x^2 < y then cos(x*y) else x*sin(x*y) end if end proc:

h:= proc(x) x^2  end proc:


For more information on using a procedure or expression to color your surface, see plot3d/colorfunc and plot/colorscheme.

If the colorscheme option is used, a color bar can be added to the plot with the colorbar option. See plot/colorbar for details.


Displaying multiple surfaces in one plot

Use sets or lists to display more than one surface in the same three-dimensional plot.


To specify a different color for each surface, set the color option to a list of colors or expressions.


Plotting a parametric surface

If the first argument is a list of three expressions, plot3d produces a plot of the parametric surface.


If instead you want to have a list of three expressions interpreted as three surfaces, provide the plotlist=true option or use a set for the surfaces.



A plot of four parametrically defined surfaces






Using different coordinate systems

Use the coords option to specify a different coordinate system for your plot. See plot3d/coords for a list of the available coordinate systems and information on how they are interpreted by plot3d. The coords page gives a description for each of these coordinate systems.

The following three commands show plots using spherical and toroidal coordinates.




The following command generates the plot of the Möbius strip from the Plotting Guide using cylindrical coordinates.


Drawing smoother edges with the adaptmesh option

Surfaces which are not defined over the entirety of a supplied rectangular domain can be drawn with smoother edges by supplying the adaptmesh option.


Generating empty plot

plot3dtitle=An empty plot



The plot3d command was updated in Maple 2015.


The colorbar option was updated in Maple 2024.

See Also














Plotting Guide


Using the Interactive Plot Builder