generates a parametric plot of a curve with x and y coordinates fx and fy as a function of u.


plots several parametric curves.


plots a parametric region.


plots several parametric regions.


plots the curve {fx,fy} with features defined by the symbolic wrapper w.


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 curves
    w1[w2[]]use nested wrappers
  • Callout, Labeled and Placed can use the following positions pos:
  • Automaticautomatically placed labels
    Above, Below, Before, Afterpositions around the curve
    unear the curve at parameter u
    {x,y}position near {x,y}
    Scaled[s]scaled position s along the curve
    {s,Above},{s,Below},relative position at position s along the curve
    {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:
  • AspectRatioAutomaticratio of height to width
    AxesTruewhether to draw axes
    BoundaryStyle Automatichow to draw boundaries of regions
    ColorFunction Automatichow to apply coloring to curves or regions
    ColorFunctionScaling Truewhether to scale arguments to ColorFunction
    EvaluationMonitor Noneexpression to evaluate at every function evaluation
    Exclusions Automaticu points or u, v curves to exclude
    ExclusionsStyle Nonewhat to draw at excluded points or curves
    FrameAutomaticwhether to put a frame around the plot
    LabelingSize Automaticmaximum size of callouts and labels
    MaxRecursion Automaticthe maximum number of recursive subdivisions allowed
    Mesh Nonehow many mesh divisions to draw
    MeshFunctions Automatichow to determine the placement of mesh divisions
    MeshShading Nonehow to shade regions between mesh points or lines
    MeshStyle Automaticthe style for mesh divisions
    MethodAutomaticthe method to use for refining curves or regions
    PerformanceGoal $PerformanceGoalaspects of performance to try to optimize
    PlotLabels Nonelabels to use for curves
    PlotLegends Nonelegends for curves
    PlotPoints Automaticinitial number of sample points in each parameter
    PlotRange Automaticrange of values to include
    PlotRangeClippingTruewhether to clip at the plot range
    PlotStyle Automaticgraphics directives to specify the style for each object
    PlotTheme $PlotThemeoverall theme for the plot
    RegionFunction (True&)how to determine whether a point should be included
    ScalingFunctions Nonehow to scale individual coordinates
    TextureCoordinateFunction Automatichow to determine texture coordinates
    TextureCoordinateScaling Truewhether to scale arguments to TextureCoordinateFunction
    WorkingPrecision MachinePrecisionthe precision used in internal computations
  • 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:
  • Noneno legend
    Automaticautomatically determine the legend
    "Expressions"use {fx, fy}, {gx, gy} as legend labels
    {lbl1,lbl2,}use lbl1, lbl2, as legend labels
    Placed[lspec,]specify placement for legend
  • 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 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.


open allclose all

Basic Examples  (4)

Plot a parametric curve:

Plot a parametric region:

Plot several parametric curves with a legend:

Plot overlapping regions:

Scope  (31)

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

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:

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

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:

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

Ellipse segment:

Simple parametric regions including a rectangle:



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

Wolfram Research (1988), ParametricPlot, Wolfram Language function, (updated 2022).


Wolfram Research (1988), ParametricPlot, Wolfram Language function, (updated 2022).


Wolfram Language. 1988. "ParametricPlot." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022.


Wolfram Language. (1988). ParametricPlot. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2023_parametricplot, author="Wolfram Research", title="{ParametricPlot}", year="2022", howpublished="\url{}", note=[Accessed: 29-May-2023 ]}


@online{reference.wolfram_2023_parametricplot, organization={Wolfram Research}, title={ParametricPlot}, year={2022}, url={}, note=[Accessed: 29-May-2023 ]}