fplot
Plot symbolic expression or function
Syntax
Description
fplot(
plots f
,[xmin xmax]
)f
over
the interval [xmin xmax]
.
fplot(
plots xt
,yt
,[tmin
tmax]
)xt = x(t)
and yt = y(t)
over the specified range [tmin tmax]
.
fplot(___,
specifies
line properties using one or more Name,Value
)Name,Value
pair
arguments. Use this option with any of the input argument combinations
in the previous syntaxes. Name,Value
pair settings
apply to all the lines plotted. To set options for individual lines,
use the objects returned by fplot
.
fplot(
plots
into the axes specified by ax
,___)ax
instead of the
current axes gca
.
returns
a function line object or parameterized line object, depending on
the type of plot. Use the object to query and modify properties of
a specific line. For details, see FunctionLine Properties and ParameterizedFunctionLine Properties.fp
= fplot(___)
Examples
Plot Symbolic Expression
Plot tan(x)
over the default range [5 5]
. fplot
shows poles by default. For details, see the ShowPoles
argument in NameValue Arguments.
syms x
fplot(tan(x))
Plot Symbolic Function
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
Plot the parametric curve x = cos(3*t)
and y = sin(2*t)
.
syms t
x = cos(3*t);
y = sin(2*t);
fplot(x,y)
Specify Plotting Interval
Plot sin(x)
over [pi/2 pi/2]
by specifying the plotting interval as the second input to fplot
.
syms x
fplot(sin(x),[pi/2 pi/2])
Plot Multiple Lines on Same Figure
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 NameValue 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 x subplot(2,1,1) fplot([sin(x) cos(x)]) title('Multiple Lines Using Vector Inputs') subplot(2,1,2) fplot(sin(x)) hold on fplot(cos(x)) title('Multiple Lines Using hold on Command') hold off
Change Line Properties and Display Markers
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, dashdot line style with asterisk markers. Display the legend.
syms x fplot(sin(x+pi/5),'Linewidth',2) hold on fplot(sin(xpi/5),'or') fplot(sin(x),'.*c') legend('show','Location','best') hold off
Control Resolution of Plot
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 x stepFn = 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
Plot sin(x)
. Specify an output to make fplot
return the plot object.
syms x
h = 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
Plot sin(x)
over the interval [2*pi 2*pi]
. Add a title and axis labels. Create the $$x$$axis ticks by spanning the $$x$$axis limits at intervals of pi/2
. Display these ticks by using the XTick
property. Create $$x$$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 x fplot(sin(x),[2*pi 2*pi]) grid on title('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
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 smallerscale details.
syms x fplot(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
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 stopmotion animation object of the time snapshots by using fanimator
. Set the axis and axis to be equal length.
syms k t fanimator(@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
f
— Expression or function to plot
symbolic expression  symbolic function
Expression or function to plot, specified as a symbolic expression or function.
[xmin xmax]
— Plotting interval for xcoordinates
[–5 5] (default)  vector of two numbers
Plotting interval for xcoordinates, 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 xcoordinates
symbolic expression  symbolic function
Parametric input for xcoordinates, specified as a
symbolic expression or function. fplot
uses
symvar
to find the parameter.
yt
— Parametric input for yaxis
symbolic expression  symbolic function
Parametric input for yaxis, 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
, specified
as 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
uses
the 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 

"."  Dashdotted line 

Marker  Description  Resulting Marker 

"o"  Circle 

"+"  Plus sign 

"*"  Asterisk 

"."  Point 

"x"  Cross 

"_"  Horizontal line 

""  Vertical line 

"square"  Square 

"diamond"  Diamond 

"^"  Upwardpointing triangle 

"v"  Downwardpointing triangle 

">"  Rightpointing triangle 

"<"  Leftpointing 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] 

NameValue Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Namevalue 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.
MeshDensity
— Number of evaluation points
23 (default)  number
Number of evaluation points, specified as a number. The default
is 23
. Because fplot
uses
adaptive evaluation, the actual number of evaluation points is greater.
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.
Color
— Line color
[0 0.4470 0.7410]
(default)  RGB triplet  hexadecimal color code  "r"
 "g"
 "b"
 ...
Line color, specified as an RGB triplet, a hexadecimal color code, a color name, or a short name.
For a custom color, specify an RGB triplet or a hexadecimal color code.
An RGB triplet is a threeelement row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range
[0,1]
, for example,[0.4 0.6 0.7]
.A hexadecimal color code is a string scalar or character vector that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Therefore, the color codes"#FF8800"
,"#ff8800"
,"#F80"
, and"#f80"
are equivalent.
Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.
Color Name  Short Name  RGB Triplet  Hexadecimal Color Code  Appearance 

"red"  "r"  [1 0 0]  "#FF0000"  
"green"  "g"  [0 1 0]  "#00FF00"  
"blue"  "b"  [0 0 1]  "#0000FF"  
"cyan"
 "c"  [0 1 1]  "#00FFFF"  
"magenta"  "m"  [1 0 1]  "#FF00FF"  
"yellow"  "y"  [1 1 0]  "#FFFF00"  
"black"  "k"  [0 0 0]  "#000000"  
"white"  "w"  [1 1 1]  "#FFFFFF" 
Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB^{®} uses in many types of plots.
RGB Triplet  Hexadecimal Color Code  Appearance 

[0 0.4470 0.7410]  "#0072BD"  
[0.8500 0.3250 0.0980]  "#D95319"  
[0.9290 0.6940 0.1250]  "#EDB120"  
[0.4940 0.1840 0.5560]  "#7E2F8E"  
[0.4660 0.6740 0.1880]  "#77AC30"  
[0.3010 0.7450 0.9330]  "#4DBEEE"  
[0.6350 0.0780 0.1840]  "#A2142F" 
Example: "blue"
Example: [0
0 1]
Example: "#0000FF"
LineStyle
— Line style
""
(default)  ""
 ":"
 "."
 "none"
Line style, specified as one of the options listed in this table.
Line Style  Description  Resulting Line 

""  Solid line 

""  Dashed line 

":"  Dotted line 

"."  Dashdotted line 

"none"  No line  No line 
LineWidth
— Line width
0.5
(default)  positive value
Line width, specified as a positive value in points, where 1 point = 1/72 of an inch. If the line has markers, then the line width also affects the marker edges.
The line width cannot be thinner than the width of a pixel. If you set the line width to a value that is less than the width of a pixel on your system, the line displays as one pixel wide.
Marker
— Marker symbol
"none"
(default)  "o"
 "+"
 "*"
 "."
 ...
Marker symbol, specified as one of the values listed in this table. By default, the object does not display markers. Specifying a marker symbol adds markers at each data point or vertex.
Marker  Description  Resulting Marker 

"o"  Circle 

"+"  Plus sign 

"*"  Asterisk 

"."  Point 

"x"  Cross 

"_"  Horizontal line 

""  Vertical line 

"square"  Square 

"diamond"  Diamond 

"^"  Upwardpointing triangle 

"v"  Downwardpointing triangle 

">"  Rightpointing triangle 

"<"  Leftpointing triangle 

"pentagram"  Pentagram 

"hexagram"  Hexagram 

"none"  No markers  Not applicable 
MarkerEdgeColor
— Marker outline color
"auto"
(default)  RGB triplet  hexadecimal color code  "r"
 "g"
 "b"
 ...
Marker outline color, specified as "auto"
, an RGB triplet, a
hexadecimal color code, a color name, or a short name. The default value of
"auto"
uses the same color as the Color
property.
For a custom color, specify an RGB triplet or a hexadecimal color code.
An RGB triplet is a threeelement row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range
[0,1]
, for example,[0.4 0.6 0.7]
.A hexadecimal color code is a string scalar or character vector that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Therefore, the color codes"#FF8800"
,"#ff8800"
,"#F80"
, and"#f80"
are equivalent.
Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.
Color Name  Short Name  RGB Triplet  Hexadecimal Color Code  Appearance 

"red"  "r"  [1 0 0]  "#FF0000"  
"green"  "g"  [0 1 0]  "#00FF00"  
"blue"  "b"  [0 0 1]  "#0000FF"  
"cyan"
 "c"  [0 1 1]  "#00FFFF"  
"magenta"  "m"  [1 0 1]  "#FF00FF"  
"yellow"  "y"  [1 1 0]  "#FFFF00"  
"black"  "k"  [0 0 0]  "#000000"  
"white"  "w"  [1 1 1]  "#FFFFFF"  
"none"  Not applicable  Not applicable  Not applicable  No color 
Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB uses in many types of plots.
RGB Triplet  Hexadecimal Color Code  Appearance 

[0 0.4470 0.7410]  "#0072BD"  
[0.8500 0.3250 0.0980]  "#D95319"  
[0.9290 0.6940 0.1250]  "#EDB120"  
[0.4940 0.1840 0.5560]  "#7E2F8E"  
[0.4660 0.6740 0.1880]  "#77AC30"  
[0.3010 0.7450 0.9330]  "#4DBEEE"  
[0.6350 0.0780 0.1840]  "#A2142F" 
MarkerFaceColor
— Marker fill color
"none"
(default)  "auto"
 RGB triplet  hexadecimal color code  "r"
 "g"
 "b"
 ...
Marker fill color, specified as "auto"
, an RGB triplet, a hexadecimal color
code, a color name, or a short name. The "auto"
value uses the same
color as the MarkerEdgeColor
property.
For a custom color, specify an RGB triplet or a hexadecimal color code.
An RGB triplet is a threeelement row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range
[0,1]
, for example,[0.4 0.6 0.7]
.A hexadecimal color code is a string scalar or character vector that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Therefore, the color codes"#FF8800"
,"#ff8800"
,"#F80"
, and"#f80"
are equivalent.
Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.
Color Name  Short Name  RGB Triplet  Hexadecimal Color Code  Appearance 

"red"  "r"  [1 0 0]  "#FF0000"  
"green"  "g"  [0 1 0]  "#00FF00"  
"blue"  "b"  [0 0 1]  "#0000FF"  
"cyan"
 "c"  [0 1 1]  "#00FFFF"  
"magenta"  "m"  [1 0 1]  "#FF00FF"  
"yellow"  "y"  [1 1 0]  "#FFFF00"  
"black"  "k"  [0 0 0]  "#000000"  
"white"  "w"  [1 1 1]  "#FFFFFF"  
"none"  Not applicable  Not applicable  Not applicable  No color 
Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB uses in many types of plots.
RGB Triplet  Hexadecimal Color Code  Appearance 

[0 0.4470 0.7410]  "#0072BD"  
[0.8500 0.3250 0.0980]  "#D95319"  
[0.9290 0.6940 0.1250]  "#EDB120"  
[0.4940 0.1840 0.5560]  "#7E2F8E"  
[0.4660 0.6740 0.1880]  "#77AC30"  
[0.3010 0.7450 0.9330]  "#4DBEEE"  
[0.6350 0.0780 0.1840]  "#A2142F" 
Example: [0.3 0.2 0.1]
Example: "green"
Example: "#D2F9A7"
MarkerSize
— Marker size
6
(default)  positive value
Marker size, specified as a positive value in points, where 1 point = 1/72 of an inch.
Output Arguments
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)
syntax or a variation of this syntax, thenfplot
returns function line objects.If you use the
fplot(xt,yt)
syntax or a variation of this syntax, thenfplot
returns parameterized line objects.
You can use these objects to query and modify properties of a specific line. For a list of properties, see FunctionLine Properties and ParameterizedFunctionLine Properties.
Tips
If
fplot
detects a finite number of discontinuities inf
, 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 MATLABfplot
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
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:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
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
 United Kingdom (English)