generates a plot of the surface of revolution with height fz at radius t.


takes the azimuthal angle θ to vary between θmin and θmax.


generates a plot of the surface obtained by rotating the parametric curve with x, z coordinates {fx,fz} around the z axis.


takes the azimuthal angle θ to vary from θmin to θmax.


plots the surface obtained by rotating the parametric curve with x, y, z coordinates {fx,fy,fz}.

Details and Options


open allclose all

Basic Examples  (3)

Revolve a function curve around the axis:

Revolve a parametric curve around the axis:

Revolve a parametric curve halfway around the axis:

Scope  (18)

Sampling  (8)

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 remove points or split the resulting surface:

Plot multiple surfaces:

Presentation  (10)

Provide explicit styling to different surfaces:

Use legends to identify styles:

Add labels:

Provide an interactive Tooltip for a surface:

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 a highly stylized theme:

Reverse the direction of the z axis:

Options  (70)

BoundaryStyle  (4)

BoundaryStyle automatically matches MeshStyle:

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:

BoxRatios  (3)

The default BoxRatios preserve the AspectRatio used by Plot:

The default BoxRatios preserves the revolved circles:

Use specific BoxRatios:

ColorFunction  (5)

Color a surface by , , , , , and parameters:

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  (1)

Use scaled coordinates in the direction and unscaled coordinates in the direction:

EvaluationMonitor  (2)

Show where RevolutionPlot3D samples a function in {t,θ} coordinates:

Count how many times is evaluated:

Exclusions  (5)

Use 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:

ExclusionsStyle  (2)

Style the boundary with a thick blue line:

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

MaxRecursion  (1)

Refine the surface where it changes quickly:

Mesh  (5)

Show the initial and final sampling meshes:

Use 10 mesh levels evenly spaced in the parameter directions:

Use a different number of mesh lines for 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  (2)

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

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

MeshShading  (7)

Alternate red and blue arcs in the direction:

Use None to remove segments:

MeshShading has higher priority than PlotStyle for styling:

Use 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  (2)

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:

PlotLegends  (3)

Use placeholders to identify plot styles:

Use specific labels:

Use the expressions as legends:

Use Placed to control legend position:

PlotPoints  (1)

Use more initial points to get a smoother plot:

PlotStyle  (3)

Use different style directives:

Explicitly specify the style for different surfaces:

Use a different style inside the surface:

PlotTheme  (5)

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

Turn off ticks:

Use a monochrome theme:

Change the tone:

Create a thick surface for 3D printing:

RegionFunction  (2)

Select a region in , , , , , and :

Select a region in parameter space:

RevolutionAxis  (2)

RevolutionPlot3D revolves around the axis by default:

Revolve around the axis:

Revolve around a diagonal line through the origin:

ScalingFunctions  (3)

By default, plots have linear scales in all directions:

Use a log scale on the z axis:

Use ScalingFunctions to reverse the coordinate direction in the direction:

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  (3)

Produce well-known shapes such as the surfaces of revolution, including the cylinder:




Find the volume of a cone:

Model a drum beating:

Properties & Relations  (8)

RevolutionPlot3D is a special case of ParametricPlot3D:

The default BoxRatios preserves the AspectRatio used by Plot:

The default BoxRatios preserves the revolved circles:

Use SphericalPlot3D for spherical coordinates:

Use ParametricPlot3D for arbitrary curves and surfaces in three dimensions:

Use PolarPlot for curves in polar 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:

Possible Issues  (1)

Surfaces that have multiple coverings may exhibit unusual behavior:

Neat Examples  (1)

Revolving a self-intersecting curve:

Wolfram Research (2007), RevolutionPlot3D, Wolfram Language function, (updated 2022).


Wolfram Research (2007), RevolutionPlot3D, Wolfram Language function, (updated 2022).


Wolfram Language. 2007. "RevolutionPlot3D." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022.


Wolfram Language. (2007). RevolutionPlot3D. Wolfram Language & System Documentation Center. Retrieved from


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


@online{reference.wolfram_2024_revolutionplot3d, organization={Wolfram Research}, title={RevolutionPlot3D}, year={2022}, url={}, note=[Accessed: 18-July-2024 ]}