generates a 3D plot with a spherical radius r as a function of spherical coordinates θ and ϕ.


generates a 3D spherical plot over the specified ranges of spherical coordinates.


generates a 3D spherical plot with multiple surfaces.

Details and Options


open allclose all

Basic Examples  (3)

Plot a spherical surface:

Plot several spherical surfaces:

Style the resulting surface:

Scope  (17)

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

Provide explicit styling to different surfaces:

Add labels:

Use legends for multiple surfaces:

Provide an interactive Tooltip for each 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:

Options  (62)

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

The default BoxRatios preserves the natural scale of the surface:

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

Count the number of sample points on the surface:

Exclusions  (5)

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 three sets of exclusions:

Use both automatically computed and explicit exclusions:

ExclusionsStyle  (2)

Style the boundary with a red line:

Style the boundary with a red 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 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  (2)

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

Show five mesh levels in the direction (red) and ten 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 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  (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  (3)

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

Turn off the mesh lines:

Create a thick surface for 3D printing:

RegionFunction  (2)

Select a region in , , , , , and :

Select a region in parameter space:

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

Plot a sphere:

A spiraling shell:

An oscillation around a sphere:

Plot an eigenfunction to the Laplace equation in spherical coordinates:

Plot the absolute value and color by phase:

Properties & Relations  (8)

SphericalPlot3D is a special case of ParametricPlot3D:

Use RevolutionPlot3D for revolved surfaces and cylindrical 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:

Use Sphere for generating spheres:

Possible Issues  (1)

Surfaces that have multiple coverings may exhibit unusual behavior:

Neat Examples  (2)

An oscillating spherical surface:

An oscillating piecewise spherical surface:

Wolfram Research (2007), SphericalPlot3D, Wolfram Language function, https://reference.wolfram.com/language/ref/SphericalPlot3D.html (updated 2016).


Wolfram Research (2007), SphericalPlot3D, Wolfram Language function, https://reference.wolfram.com/language/ref/SphericalPlot3D.html (updated 2016).


@misc{reference.wolfram_2020_sphericalplot3d, author="Wolfram Research", title="{SphericalPlot3D}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/SphericalPlot3D.html}", note=[Accessed: 27-February-2021 ]}


@online{reference.wolfram_2020_sphericalplot3d, organization={Wolfram Research}, title={SphericalPlot3D}, year={2016}, url={https://reference.wolfram.com/language/ref/SphericalPlot3D.html}, note=[Accessed: 27-February-2021 ]}


Wolfram Language. 2007. "SphericalPlot3D." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2016. https://reference.wolfram.com/language/ref/SphericalPlot3D.html.


Wolfram Language. (2007). SphericalPlot3D. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SphericalPlot3D.html