Plot symbolic expression or function
collapse all in page
Syntax
fplot(f)
fplot(f,[xmin xmax])
fplot(xt,yt)
fplot(xt,yt,[tmintmax])
fplot(___,LineSpec)
fplot(___,Name,Value)
fplot(ax,___)
fp = fplot(___)
Description
example
fplot(f)
plots symbolic input f
over the default interval [-5 5]
.
example
fplot(f,[xmin xmax])
plots f
overthe interval [xmin xmax]
.
example
fplot(xt,yt)
plots xt = x(t)
and yt = y(t)
over the default range of t
, which is [–5 5]
.
fplot(xt,yt,[tmintmax])
plots xt = x(t)
and yt = y(t)
over the specified range [tmin tmax].
example
fplot(___,LineSpec)
uses LineSpec
toset the line style, marker symbol, and line color.
example
fplot(___,Name,Value)
specifiesline properties using one or more Name,Value
pairarguments. Use this option with any of the input argument combinationsin the previous syntaxes. Name,Value
pair settingsapply to all the lines plotted. To set options for individual lines,use the objects returned by fplot
.
fplot(ax,___)
plotsinto the axes specified by ax
instead of thecurrent axes gca
.
example
fp = fplot(___)
returnsa function line object or parameterized line object, depending onthe type of plot. Use the object to query and modify properties ofa specific line. For details, see FunctionLine Properties and ParameterizedFunctionLine Properties.
Examples
collapse all
Plot Symbolic Expression
Open Live Script
Plot tan(x)
over the default range [-5 5]
. fplot
shows poles by default. For details, see the ShowPoles
argument in Name-Value Arguments.
syms xfplot(tan(x))
Plot Symbolic Function
Open Live Script
Plot the symbolic function f(x) = cos(x)
over the default range [-5 5]
.
syms f(x)f(x) = cos(x);fplot(f)
Plot Parametric Curve
Open Live Script
Plot the parametric curve x = cos(3*t)
and y = sin(2*t)
.
syms tx = cos(3*t);y = sin(2*t);fplot(x,y)
Specify Plotting Interval
Open Live Script
Plot sin(x)
over [-pi/2 pi/2]
by specifying the plotting interval as the second input to fplot
.
syms xfplot(sin(x),[-pi/2 pi/2])
Plot Multiple Lines on Same Figure
Open Live Script
You can plot multiple lines either by passing the inputs as a vector or by using hold on
to successively plot on the same figure. If you specify LineSpec
and Name-Value arguments, they apply to all lines. To set options for individual plots, use the function handles returned by fplot
.
Divide a figure into two subplots using subplot
. On the first subplot, plot sin(x)
and cos(x)
using vector input. On the second subplot, plot sin(x)
and cos(x)
using hold on
.
syms xsubplot(2,1,1)fplot([sin(x) cos(x)])title('Multiple Lines Using Vector Inputs')subplot(2,1,2)fplot(sin(x))hold onfplot(cos(x))title('Multiple Lines Using hold on Command')hold off
Change Line Properties and Display Markers
Open Live Script
Plot three sine curves with a phase shift between each line. For the first line, use a linewidth of 2
. For the second, specify a dashed red line style with circle markers. For the third, specify a cyan, dash-dot line style with asterisk markers. Display the legend.
syms xfplot(sin(x+pi/5),'Linewidth',2)hold onfplot(sin(x-pi/5),'--or')fplot(sin(x),'-.*c')legend('show','Location','best')hold off
Control Resolution of Plot
Open Live Script
Control the resolution of a plot by using the MeshDensity
option. Increasing MeshDensity
can make smoother, more accurate plots, while decreasing it can increase plotting speed.
Divide a figure into two by using subplot
. In the first subplot, plot a step function from x = 2.1
to x = 2.15
. The plot's resolution is too low to detect the step function. Fix this issue by increasing MeshDensity
to 39
in the second subplot. The plot now detects the step function and shows that by increasing MeshDensity
you increased the plot's resolution.
syms xstepFn = rectangularPulse(2.1, 2.15, x);subplot(2,1,1)fplot(stepFn);title('Default MeshDensity = 23')subplot(2,1,2)fplot(stepFn,'MeshDensity',39);title('Increased MeshDensity = 39')
Modify Plot After Creation
Open Live Script
Plot sin(x)
. Specify an output to make fplot
return the plot object.
syms xh = fplot(sin(x))
h = FunctionLine with properties: Function: sin(x) Color: [0 0.4470 0.7410] LineStyle: '-' LineWidth: 0.5000 Use GET to show all properties
Change the default blue line to a dashed red line by using dot notation to set properties. Similarly, add 'x'
markers and set the marker color to blue.
h.LineStyle = '--';h.Color = 'r';h.Marker = 'x';h.MarkerEdgeColor = 'b';
Add Title and Axis Labels and Format Ticks
Open Live Script
Plot sin(x)
over the interval [-2*pi 2*pi]
. Add a title and axis labels. Create the -axis ticks by spanning the -axis limits at intervals of pi/2
. Display these ticks by using the XTick
property. Create -axis labels by using arrayfun
to apply texlabel
to S
. Display these labels by using the XTickLabel
property.
To use LaTeX in plots, see latex.
syms xfplot(sin(x),[-2*pi 2*pi])grid ontitle('sin(x) from -2\pi to 2\pi')xlabel('x')ylabel('y')ax = gca;S = sym(ax.XLim(1):pi/2:ax.XLim(2));ax.XTick = double(S);ax.XTickLabel = arrayfun(@texlabel,S,'UniformOutput',false);
Zoom Into Plot
Open Script
When you zoom into a plot, fplot
reevaluates the plot automatically. The reevaluation when zooming reveals more details at smaller scales.
Plot the curve for
and
. Zoom into the plot using
zoom
and redraw the plot using drawnow
. Because of reevaluation on zoom, fplot
reveals more details. Repeat the zoom 6 times to view smaller-scale details.
syms xfplot(x^3*sin(1/x));axis([-2 2 -0.02 0.02]);for i=1:6 zoom(1.7) pause(0.5)end
Create Animation of Parametric Curve
Open Script
Create an animation of a parametric curve where one of the parameters changes with time. The - and
-coordinates of the parametric curve are given by
By varying the variable from 0.1 to 3, animate the parametric curve.
Create two symbolic variables k
and t
. Use the variable k
to parameterize the curve within the range [-5 5]
and use the variable t
to animate the curve as the time proceeds from 0.1 to 3. Create a stop-motion animation object of the time snapshots by using fanimator
. Set the -axis and
-axis to be equal length.
syms k tfanimator(@fplot,k*t*sin(k*t),k*t*cos(k*t),[-5 5],AnimationRange = [0.1 3])axis equal
Play the animation by using playAnimation
.
playAnimation
You can also save the animation as a GIF file by using writeAnimation
.
writeAnimation("parametricCurve.gif")
Input Arguments
collapse all
f
— Expression or function to plot
symbolic expression | symbolic function
Expression or function to plot, specified as a symbolic expressionor function.
[xmin xmax]
— Plotting interval for x-coordinates
[–5 5] (default) | vector of two numbers
Plotting interval for x-coordinates, specified as a vector of two numbers. The default range is [-5 5]
. However, if fplot
detects a finite number of discontinuities in f, then fplot
expands the range to show them.
xt
— Parametric input for x-coordinates
symbolic expression | symbolic function
Parametric input for x-coordinates, specified as a symbolic expression or function. fplot
uses symvar
to find the parameter.
yt
— Parametric input for y-axis
symbolic expression | symbolic function
Parametric input for y-axis, specified as a symbolic expression or function. fplot
uses symvar
to find the parameter.
[tmin tmax]
— Range of values of parameter t
[–5 5] (default) | vector of two numbers
Range of values of parameter t
, specifiedas a vector of two numbers. The default range is [-5 5]
.
ax
— Axes object
axes object
Axes object. If you do not specify an axes object, then fplot
usesthe current axes gca
.
LineSpec
— Line style, marker, and color
string scalar | character vector
Line style, marker, and color, specified as a string scalar or character vector containing symbols. The symbols can appear in any order. You do not need to specify all three characteristics (line style, marker, and color). For example, if you omit the line style and specify the marker, then the plot shows only the marker and no line.
Example: "--or"
is a red dashed line with circle markers.
Line Style | Description | Resulting Line |
---|---|---|
"-" | Solid line | |
"--" | Dashed line | |
":" | Dotted line | |
"-." | Dash-dotted line |
Marker | Description | Resulting Marker |
---|---|---|
"o" | Circle | |
"+" | Plus sign | |
"*" | Asterisk | |
"." | Point | |
"x" | Cross | |
"_" | Horizontal line | |
"|" | Vertical line | |
"square" | Square | |
"diamond" | Diamond | |
"^" | Upward-pointing triangle | |
"v" | Downward-pointing triangle | |
">" | Right-pointing triangle | |
"<" | Left-pointing triangle | |
"pentagram" | Pentagram | |
"hexagram" | Hexagram |
Color Name | Short Name | RGB Triplet | Appearance |
---|---|---|---|
"red" | "r" | [1 0 0] | |
"green" | "g" | [0 1 0] | |
"blue" | "b" | [0 0 1] | |
"cyan" | "c" | [0 1 1] | |
"magenta" | "m" | [1 0 1] | |
"yellow" | "y" | [1 1 0] | |
"black" | "k" | [0 0 0] | |
"white" | "w" | [1 1 1] | |
Name-Value Arguments
Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN
, where Name
is the argument name and Value
is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose Name
in quotes.
Example: 'Marker','o','MarkerFaceColor','red'
The function line properties listed here are only a subset.For a complete list, see FunctionLine Properties.
ShowPoles
— Display asymptotes at poles
'on'
(default) | on/off logical value
Display asymptotes at poles, specified as 'on'
or 'off'
, or as numeric or logical 1
(true
) or 0
(false
). A value of 'on'
is equivalent to true, and 'off'
is equivalent to false
. Thus, you can use the value of this property as a logical value. The value is stored as an on/off logical value of type matlab.lang.OnOffSwitchState.
The asymptotes display as gray, dashed vertical lines. fplot
displays asymptotes only with the fplot(f)
syntax or variants, and not with the fplot(xt,yt)
syntax.
Output Arguments
collapse all
fp
— One or more function or parameterized line objects
scalar | vector
One or more function or parameterized function line objects,returned as a scalar or a vector.
If you use the
fplot(f)
syntaxor a variation of this syntax, thenfplot
returnsfunction line objects.If you use the
fplot(xt,yt)
syntaxor a variation of this syntax, thenfplot
returnsparameterized line objects.
You can use these objects to query and modify properties ofa specific line. For a list of properties, see FunctionLine Properties and ParameterizedFunctionLine Properties.
Tips
If
fplot
detects a finite number of discontinuities in f, thenfplot
expands the range to show them.If
fplot
is used with a function handle to a named or anonymous function (that is not a symbolic expression or function), then the MATLAB fplot function is called. In this case, the function handle must accept a vector input argument and return a vector output argument of the same size. Use array operators instead of matrix operators for the best performance. For example, use.*
(times
) instead of*
(mtimes
) in the codefplot(@(x) x.*sin(2*pi*x))
.
Version History
Introduced in R2016a
See Also
Functions
- fcontour | fimplicit | fimplicit3 | fmesh | fplot3 | fpolarplot | fsurf
Properties
- FunctionLine Properties | ParameterizedFunctionLine Properties
Topics
- Create Plots of Symbolic Expressions
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- Deutsch
- English
- Français
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本 (日本語)
- 한국 (한국어)
Contact your local office