produces a three-dimensional space curve parametrized by a variable u which runs from umin to umax.


produces a three-dimensional surface parametrized by u and v.


plots several objects together.


takes parameters {u,v} to be in the geometric region reg.

Details and Options


open allclose all

Basic Examples  (5)

Plot a parametric surface:

Plot a parametric space curve:

Plot multiple parametric surfaces:

Use simple styling of surfaces:

Plot surfaces with cuts:

Scope  (33)

Sampling  (9)

More points are sampled when the function changes quickly:

The plot range is selected automatically:

Ranges where the function becomes nonreal are excluded:

The surface is split when there are discontinuities in the function:

Use PlotPoints and MaxRecursion to control adaptive sampling:

Use PlotRange to focus in on areas of interest:

Use Exclusions to split the resulting surface:

The domain of the parameters may be specified by a region:

With two parameters:

The domain of the parameters may be specified by a MeshRegion:

Labeling and Legending  (10)

Use Callout to add the expressions as a label:

Use PlotLabels to label the surface:

Use any text as a label:

Label a surface:

Place the label along the curve:

Place the label at a scaled position:

Place the labels relative to the surface:

Label the curve with PlotLabels:

Specify the label at the {x,y,z} position:

Include legends for each curve:

Include legends for each surface:

Use Legended to provide a legend for a specific curve:

Use Placed to change the legend location:

Presentation  (14)

Multiple curves are automatically colored to be distinct:

Provide explicit styling to different curves and regions:

Add legends to identify curves and regions:

Use a theme with detailed ticks, grid lines, and legends:

Increase the thickness of the surface:

Use Opacity to show internal structure and Specularity for additional depth cuing:

Add labels:

Provide an interactive Tooltip for each curve or region:

Create an overlay mesh:

Style the areas between mesh levels:

Color by parameter values:

Use named color schemes:

Remove portions of a curve or surface:

Use ScalingFunctions to scale reverse the z axis:

Scale the parameters rather than the axes:

Options  (87)

BoundaryStyle  (4)

No boundary is drawn by default:

Use a thick red boundary:

Boundaries are drawn where the surface is clipped by RegionFunction:

Boundaries are not drawn where the surface is clipped by Exclusions:

Boxed  (1)

Do not draw the edges of the bounding box:

BoxRatios  (2)

Choose the ratios of side lengths from the actual plot values:

Set the ratios to {1,1,1}:

ColorFunction  (5)

Color the curve by scaled , , , or value:

Color the surface by scaled , , , , or value:

Use a named color gradient:

ColorFunction has higher priority than PlotStyle:

Use red for the parameter :

ColorFunctionScaling  (1)

Color by absolute value:

EvaluationMonitor  (3)

Show where in parameter space ParametricPlot3D samples:

Show where ParametricPlot3D samples in space:

Count how many points are sampled:

Exclusions  (6)

This uses automatic methods to compute exclusions, in this case from branch cuts:

Indicate that no exclusions should be computed:

Give a set of exclusions as an equation:

Give two sets of exclusions:

Use both automatically computed and explicit exclusions:

Provide an explicit list of points for exclusions:

ExclusionsStyle  (3)

Style the boundary with a thick blue line:

Style the boundary with a thick blue line and the surface in between with yellow:

Style the exclusions for a curve with a red line:

LabelingSize  (2)

Textual labels are shown at their actual sizes:

Specify the size of the text:

Image labels are resized to fit in the plot:

Specify the labeling size:

MaxRecursion  (2)

Refine the surface where it changes quickly:

Refine the curve where it changes quickly:

Mesh  (5)

Show the initial and final sampling mesh:

Use 10 mesh levels evenly spaced in the parameter directions:

Use a different number of mesh lines in different directions:

Use an explicit list of values for the mesh in the parameter and no mesh in the parameter:

Use explicit value and style for the mesh:

MeshFunctions  (3)

Use a mesh evenly spaced in the , , , and directions:

Use a mesh evenly spaced in the , , , , and directions:

Show five mesh levels in the direction (red) and 10 in the direction (blue):

MeshShading  (9)

Map a cellular automaton array onto a sphere:

Alternate red and blue arcs in the direction:

Use None to remove segments:

MeshShading can be used with PlotStyle:

MeshShading has higher priority than PlotStyle for styling:

Use the PlotStyle for some segments by setting MeshShading to Automatic:

MeshShading can be used with ColorFunction:

Fill between regions defined by multiple mesh functions:

Use FaceForm to use different styles for different sides of a surface:

MeshStyle  (3)

Automatically choose the mesh style:

Use a red mesh in the direction:

Use a red mesh in the direction and a blue mesh in the direction:

NormalsFunction  (3)

Normals are automatically calculated:

Use None to get flat shading for all the polygons:

Vary the effective normals used on the surface:

PerformanceGoal  (2)

Generate a higher-quality plot:

Emphasize performance, possibly at the cost of quality:

PlotLabels  (6)

Specify text to label a curve:

Use Placed to place the label above the curve:

Use Callout to draw a leader line:

Place the labels differently for each curve:

PlotLabels->"Expressions" uses functions as curve labels:

Use callouts to identify the surfaces:

Specify the callout label at a position for a surface:

PlotLegends  (3)

Use placeholders to identify plot styles:

Use specific labels:

Use the respective expressions:

Use Placed to control legend position:

Use SwatchLegend to change the appearance:

PlotPoints  (1)

Use more initial points to get a smoother plot:

PlotStyle  (4)

Use different style directives:

By default different styles are chosen for multiple curves:

Explicitly specify the style for different curves and regions:

Use a different style inside the surface:

PlotTheme  (3)

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

Remove mesh lines and boundary lines:

Create a thick surface for 3D printing:

RegionFunction  (3)

Select a region in , , , , and :

Select a region in parameter space:

Select portions of a curve in parameter space:

ScalingFunctions  (6)

By default, plots have linear scales in all directions:

Apply a log scale to the z direction:

Use a shifted log scale to show a function with negative positions:

Use ScalingFunctions to reverse the coordinate direction in :

Use a scale defined by a function and its inverse:

Scale any of the parameter spaces rather than the axes:

Scale the u parameter:

Scale the v parameter:

TextureCoordinateFunction  (4)

Textures use scaled and parameters by default:

Use the and coordinates:

Use unscaled coordinates:

Use textures to highlight how parameters map onto a surface:

TextureCoordinateScaling  (1)

Use scaled or unscaled coordinates for textures:

WorkingPrecision  (2)

Evaluate functions using machine-precision arithmetic:

Evaluate functions using arbitrary-precision arithmetic:

Applications  (7)

Simple parametric surfaces, including a plane:






Well-known surfaces, including the Möbius strip:

Klein bottle:

Implement a model of mollusc shell growth [more info]:

Highlighting a space curve by providing a supporting (ruled) surface:

Show both plots together:

The Lorenz equations [more info]:

Compute a parametric curve from curvature and torsion [more info]:

Plot the resulting space curves:

Show Enneper's minimal surface:

Properties & Relations  (6)

Plot3D is a special case of ParametricPlot3D for surfaces:

Use RevolutionPlot3D and SphericalPlot3D for cylindrical and spherical coordinates:

Use ParametricPlot for curves and regions in two dimensions:

Use ContourPlot3D and RegionPlot3D for implicitly defined surfaces and regions:

Use ListPlot3D and ListSurfacePlot3D for data:

Use ListLinePlot3D to plot curves through lists of points:

Possible Issues  (3)

Surfaces that have multiple coverings may exhibit unusual behavior:

Use BoundaryStyle and MeshStyle together for closed surfaces:

Automatic PlotRange depends on parametrization:

Use a different parametrization:

Or use PlotRange->All:

Neat Examples  (1)

Variations on a sphere:

Wolfram Research (1991), ParametricPlot3D, Wolfram Language function, (updated 2022).


Wolfram Research (1991), ParametricPlot3D, Wolfram Language function, (updated 2022).


Wolfram Language. 1991. "ParametricPlot3D." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022.


Wolfram Language. (1991). ParametricPlot3D. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_parametricplot3d, author="Wolfram Research", title="{ParametricPlot3D}", year="2022", howpublished="\url{}", note=[Accessed: 25-July-2024 ]}


@online{reference.wolfram_2024_parametricplot3d, organization={Wolfram Research}, title={ParametricPlot3D}, year={2022}, url={}, note=[Accessed: 25-July-2024 ]}