ParametricPlot
ParametricPlot [{fx,fy},{u,umin,umax}]
generates a parametric plot of a curve with x and y coordinates fx and fy as a function of u.
ParametricPlot [{{fx,fy},{gx,gy},…},{u,umin,umax}]
plots several parametric curves.
ParametricPlot [{fx,fy},{u,umin,umax},{v,vmin,vmax}]
plots a parametric region.
ParametricPlot [{{fx,fy},{gx,gy},…},{u,umin,umax},{v,vmin,vmax}]
plots several parametric regions.
ParametricPlot [{…,w[{fx,fy}],…},…]
plots the curve {fx,fy} with features defined by the symbolic wrapper w.
ParametricPlot […,{u,v}∈reg]
takes parameters {u,v} to be in the geometric region reg.
Details and Options
- ParametricPlot is known as a parametric curve when plotting over a 1D domain, and as a parametric region when plotting over a 2D domain.
- For one parameter u, {fx,fy} is evaluated for different values of u to create a smooth curve of the form {fx[u],fy[u]}. It visualizes the curve .
- For two parameters u and v, {fx,fy} is evaluated for different values of u and v to create an area of the points {fx[u,v],fy[u,v]}. It visualizes the area .
- The curves and regions may intersect or overlap themselves.
- Gaps are left at any u where the fi evaluate to anything other than real numbers.
- The limits umin, umax, vmin and vmax can be real numbers or Quantity expressions.
- The region reg can be any RegionQ object in 1D or 2D.
- ParametricPlot treats the variables u and v as local, effectively using Block .
- ParametricPlot has attribute HoldAll , and evaluates the fi and gi only after assigning specific numerical values to variables.
- In some cases, it may be more efficient to use Evaluate to evaluate the fi and gi symbolically before specific numerical values are assigned to variables.
- Wrappers w can be applied at multiple levels:
-
w[{fx,fy}] wrap {fx,fy}w[{{fx,fy},{gx,gy},…}] wrap a collection of curvesw1[w2[…]] use nested wrappers
- Callout , Labeled and Placed can use the following positions pos:
-
Automatic automatically placed labelsu near the curve at parameter u{x,y} position near {x,y}{pos,epos} epos in label placed at relative position pos of the curve
- ParametricPlot has the same options as Graphics , with the following additions and changes: [List of all options]
- Interactive labeling can be specified for curves and regions using Tooltip , StatusArea , or Annotation .
- ParametricPlot [Tooltip [{{fx,fy},…},…]] specifies that {fx,fy} should be displayed as tooltip labels for the corresponding curves or regions.
- Tooltip [{fx,fy},label] specifies an explicit tooltip label for a curve or region.
- Typical settings for PlotLegends include:
-
None no legendAutomatic automatically determine the legend"Expressions" use {fx, fy}, {gx, gy} … as legend labels{lbl1,lbl2,…} use lbl1, lbl2, … as legend labels
- ParametricPlot initially evaluates each function at a number of equally spaced sample points specified by PlotPoints . Then it uses an adaptive algorithm to choose additional sample points, subdividing a given interval in each parameter at most MaxRecursion times.
- You should realize that with the finite number of sample points used, it is possible for ParametricPlot to miss features in your functions. To check your results, you should try increasing the settings for PlotPoints and MaxRecursion .
- On [ParametricPlot::accbend] makes ParametricPlot print a message if it is unable to reach a certain smoothness of curve.
- The default setting Mesh->Automatic corresponds to None for curves, and 15 for regions.
- With Mesh->All , ParametricPlot will explicitly draw a point at each sample point on each curve, or will draw a line to indicate each region subdivision.
- The default setting MeshFunctions->Automatic corresponds to {#3&} for curves, and {#3&,#4&} for regions.
- The arguments supplied to functions in MeshFunctions and RegionFunction are x, y, u, and v. Functions in ColorFunction and TextureCoordinateFunction are by default supplied with scaled versions of these arguments.
- The functions are evaluated all along each curve, or all over each region.
- Possible highlighting effects for Highlighted and PlotHighlighting include:
-
style highlight the indicated curve"Ball" highlight and label the indicated point in a curve"Dropline" highlight and label the indicated point in a curve with droplines to the axes"XSlice" highlight and label all points along a vertical slice"YSlice" highlight and label all points along a horizontal slice
- Highlight position specifications pos include:
-
x, {x} effect at {x,y} with y chosen automatically{x,y} effect at {x,y}{pos1,pos2,…} multiple positions posi
- Possible settings for ScalingFunctions include:
-
{sx,sy} scale x and y axes{sx,sy,su} scale the u parameter space{sx,sy,su,sv} scale the u and v parameter spaces
- Common built-in scaling functions s include:
-
"Log" log scale with automatic tick labeling"Log10" base-10 log scale with powers of 10 for ticks"SignedLog" log-like scale that includes 0 and negative numbers"Reverse" reverse the coordinate direction"Infinite" infinite scale
- Scaling the u or v parameter space affects how the plot is sampled, but not the overall visual appearance of the plot.
- ParametricPlot returns Graphics [Line [data]] for curves and Graphics [GraphicsComplex [data]] for regions.
-
ImageMargins 0. the margins to leave around the graphicPreserveImageOptions Automatic whether to preserve image options when displaying new versions of the same graphic
List of all options
Examples
open allclose allBasic Examples (4)
Plot a parametric curve:
Plot a parametric region:
Plot several parametric curves with a legend:
Plot overlapping regions:
Scope (34)
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 curve 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 curve:
The domain of the parameters may be specified by a region:
For two parameters:
The domain of the parameters may be specified by a MeshRegion :
Labeling and Legending (13)
Use Callout to add the expressions as a label:
Use any text as a label:
Label a region:
Place the label along the curve:
Place the label at a scaled position:
Place the labels relative to the inside of the curve:
Place the labels relative to the outside of the curve:
Place the label inside a region:
Label the curve with PlotLabels :
Label multiple curves:
Use a scaled position:
Specify the text position relative to the point:
Specify the label at {x,y} position:
Place the label outside of a region:
Include legends for each curve:
Include legends for each region:
Use Legended to provide a legend for a specific curve:
Use Placed to change the legend location:
Curves usually have interactive callouts showing the coordinates when you mouse over them:
Including specific wrappers or interactions, such as tooltips, turns off the interactive features:
Choose from multiple interactive highlighting effects:
Use Highlighted to emphasize specific points in a plot:
Highlight multiple points:
Presentation (12)
Multiple curves and regions are automatically colored to be distinct:
Identify curves and regions with legends:
Add labels to the curves:
Provide explicit styling to different curves and regions:
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 a plot theme:
Reverse the direction of the x axis:
Scale u space parameter to affect sampling, but not the general shape:
Scale v space parameter:
Options (88)
BoundaryStyle (3)
Use a red boundary around the edges of the surface:
BoundaryStyle applies to regions cut by RegionFunction :
BoundaryStyle does not apply to holes cut by Exclusions :
ColorFunction (5)
Color the curve by scaled , , or values:
Color by scaled and parameter values:
Use a named color gradient:
ColorFunction has higher priority than PlotStyle :
Use red for the parameter :
ColorFunctionScaling (2)
Color the curve by angle:
Color the region by angle and vary opacity across the region:
EvaluationMonitor (3)
Find the list of parameter values evaluated:
Find the parametric coordinate values:
Count how many times the function is evaluated:
Exclusions (5)
Automatically determine exclusions:
Specify exclusions using equations:
Exclude a fixed set of points:
Use no exclusions:
Exclude an equation and the automatically chosen points:
ExclusionsStyle (3)
Specify explicit styling for lines joining exclusion points:
Provide styling for both exclusion points and the lines joining them:
Draw red lines where the region is cut by excluded curves:
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)
Each level of MaxRecursion will adaptively subdivide the initial mesh into a finer mesh:
Subdivision for parametric regions:
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 (3)
Use a mesh evenly spaced in the , , and directions:
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 can be used with PlotStyle :
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:
MeshStyle (4)
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:
Use big red mesh levels in the direction:
PerformanceGoal (2)
Generate a higher-quality plot:
Emphasize performance, possibly at the cost of quality:
PlotHighlighting (8)
Plots have interactive coordinate callouts with the default setting PlotHighlighting Automatic :
Use PlotHighlighting None to disable the highlighting for the entire plot:
Use Highlighted […,None ] to disable highlighting for a single curve:
Move the mouse over the curve to highlight it with a ball and label:
Use a ball and label to highlight parts that match specific points on the curve:
Move the mouse over the curve to highlight it with a label and droplines to the axes:
Use a ball and label to highlight a specific point on the curve:
Move the mouse over the plot to highlight it with a slice showing values corresponding to the position:
Highlight the curves at a fixed value:
Move the mouse over the plot to highlight it with a slice showing values corresponding to the position:
Use a component that shows the points on the curve closest to the position of the mouse cursor:
Specify the style for the points:
Use a component that shows the coordinates on the curve closest to the mouse cursor:
Use Callout options to change the appearance of the label:
Combine components to create a custom effect:
PlotLabels (6)
Specify the text to label the curves:
Place the labels above the curves:
Place the labels differently for each curve:
PlotLabels->"Expressions" uses functions as curve labels:
Use callouts to identify the curves:
Put labels relative to the outside of the curves:
Use None to not add a label:
PlotLegends (7)
No legends are used by default:
Create a legend based on the functions:
Create a legend with placeholder text:
Create a legend with specific labels:
PlotLegends picks up PlotStyle values automatically:
Use Placed to position legends:
Place legends inside:
Use LineLegend to modify the appearance of the legend:
PlotPoints (2)
Use more initial points to get a smoother plot:
Use fewer plot points in directions that do not change much:
PlotRange (2)
Show the plot where and :
With the natural range of values, the fine detail around the origin is not visible:
Use PlotRange to focus in on areas of interest:
PlotStyle (4)
Use different style directives:
By default different styles are chosen for multiple curves and regions:
Explicitly specify the style for different curves and regions:
PlotStyle can be combined with ColorFunction :
PlotTheme (2)
Use a theme with simple ticks and grid lines in a bright color scheme:
Change the color scheme:
RegionFunction (1)
Show the plot where :
ScalingFunctions (3)
By default, ParametricPlot uses a natural scale:
Use a sign-aware log scale for the y axis:
Use ScalingFunctions to reverse the direction of axes:
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 (9)
Simple parametric curves including a line:
Circle:
Ellipse:
Circle segment:
Ellipse segment:
Simple parametric regions including a rectangle:
Disk:
Ellipse:
Disk sector:
Disk annulus:
Disk sector annulus:
Rotated ellipses:
Plot a whole family of rotated ellipses:
Different parametrizations of circles:
This rational parametrization is for :
Plot Lissajous curves:
Plot a Nyquist curve:
Make a phase space plot of a solution to the Lotka–Volterra predator-prey equations:
Plot complex mappings:
A Joukowski map:
Model a two-link planar robot:
Plot the range of motion of the end effector for and :
Properties & Relations (7)
Plot is a special case of ParametricPlot for curves:
PolarPlot is a special case of ParametricPlot for curves:
Use ListPlot and ListLinePlot for data:
Use ContourPlot and RegionPlot for implicit curves and regions:
Use LogPlot , LogLinearPlot , and LogLogPlot for logarithmic plots:
Use Plot3D and ParametricPlot3D for function and parametric surfaces:
Use RevolutionPlot3D and SphericalPlot3D for cylindrical and spherical coordinates:
Possible Issues (1)
By default, the argument is not evaluated and is styled as one composite function:
Use Evaluate to get an explicit list of curves:
Neat Examples (1)
Forced undersampling:
See Also
PolarPlot ContourPlot RegionPlot Plot StreamPlot ParametricPlot3D ComplexPlot Graphics
Function Repository: DirectionParametricPlot ApproximatedCurve CurvatureTorsionPlot3D
Tech Notes
Related Guides
History
Introduced in 1988 (1.0) | Updated in 2007 (6.0) ▪ 2010 (8.0) ▪ 2012 (9.0) ▪ 2014 (10.0) ▪ 2019 (12.0) ▪ 2022 (13.1) ▪ 2023 (13.3)
Text
Wolfram Research (1988), ParametricPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/ParametricPlot.html (updated 2023).
CMS
Wolfram Language. 1988. "ParametricPlot." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2023. https://reference.wolfram.com/language/ref/ParametricPlot.html.
APA
Wolfram Language. (1988). ParametricPlot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ParametricPlot.html
BibTeX
@misc{reference.wolfram_2025_parametricplot, author="Wolfram Research", title="{ParametricPlot}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/ParametricPlot.html}", note=[Accessed: 23-April-2025 ]}
BibLaTeX
@online{reference.wolfram_2025_parametricplot, organization={Wolfram Research}, title={ParametricPlot}, year={2023}, url={https://reference.wolfram.com/language/ref/ParametricPlot.html}, note=[Accessed: 23-April-2025 ]}