Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

fplot

Plot symbolic expression or function

Syntax

fplot(f)
fplot(f,[xmin xmax])
fplot(xt,yt)
fplot(xt,yt,[tmin tmax])
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 over the 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,[tmin tmax]) plots xt = x(t) and yt = y(t) over the specified range [tmin tmax].

example

fplot(___,LineSpec) uses LineSpec to set the line style, marker symbol, and line color.

example

fplot(___,Name,Value) specifies line properties using one or more 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(ax,___) plots into the axes specified by ax instead of the current axes gca.

example

fp = fplot(___) 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.

Examples

Plot Symbolic Expression

Plot tan(x) over the default range of [-5 5]. fplot shows poles by default. For details, see the ShowPoles argument in Name-Value Pair Arguments.

syms x
fplot(tan(x))

Plot Symbolic Function

Plot the symbolic function over the default range [-5 5].

syms f(x)
f(x) = cos(x);
fplot(f)

Plot Parametric Curve

Plot the parameteric curve and .

syms t
x = cos(3*t);
y = sin(2*t);
fplot(x,y)

Specify Plotting Interval

Plot over 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 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 and using vector input. On the second subplot, plot and 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, dash-dot line style with asterisk markers. Display the legend.

syms x
fplot(sin(x+pi/5),'Linewidth',2)
hold on
fplot(sin(x-pi/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: [1x1 sym]
        Color: [0 0.4470 0.7410]
    LineStyle: '-'
    LineWidth: 0.5000

  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

For from to , plot . 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);

Re-evaluation on Zoom

When you zoom into a plot, fplot re-evaluates the plot automatically. This re-evaluation on zoom reveals hidden detail at smaller scales.

Plot x^3*sin(1/x) for -2 < x < 2 and -0.02 < y < 0.02. Zoom in on the plot using zoom and redraw the plot using drawnow. Because of re-evaluation on zoom, fplot reveals smaller-scale detail. Repeat the zoom 6 times to view smaller-scale details. To play the animation, click the image.

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 Animations

Create animations by changing the displayed expression using the Function, XFunction, and YFunction properties and then by using drawnow to update the plot. To export to GIF, see imwrite.

By varying the variable i from 0.1 to 3, animate the parametric curve

x=itsin(it)y=itcos(it).

To play the animation, click the image.

syms t
fp = fplot(t, t);
axis([-15 15 -15 15])
for i=0.1:0.05:3
    fp.XFunction = i.*t.*sin(i*t);
    fp.YFunction = i.*t.*cos(i*t);
    drawnow
end

Input Arguments

collapse all

Expression or function to plot, specified as a symbolic expression or function.

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.

Parametric input for x-coordinates, specified as a symbolic expression or function. fplot uses symvar to find the parameter.

Parametric input for y-axis, specified as a symbolic expression or function. fplot uses symvar to find the parameter.

Range of values of parameter t, specified as a vector of two numbers. The default range is [-5 5].

Axes object. If you do not specify an axes object, then fplot uses the current axes gca.

Line specification, specified as a character vector or string with a line style, marker, and color. The elements can appear in any order, and you can omit one or more options. To show only markers with no connecting lines, specify a marker and omit the line style.

Example: 'r--o' specifies a red color, a dashed line, and circle markers

Line Style SpecifierDescription
-Solid line (default)
--Dashed line
:Dotted line
-.Dash-dot line
Marker SpecifierDescription
oCircle
+Plus sign
*Asterisk
.Point
xCross
sSquare
dDiamond
^Upward-pointing triangle
vDownward-pointing triangle
>Right-pointing triangle
<Left-pointing triangle
pPentagram
hHexagram
Color SpecifierDescription

y

yellow

m

magenta

c

cyan

r

red

g

green

b

blue

w

white

k

black

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: 'Marker','o','MarkerFaceColor','red'

The function line properties listed here are only a subset. For a complete list, see FunctionLine Properties.

collapse all

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.

Display asymptotes at poles, specified as 'on' (default) or 'off'. 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.

Line color, specified as an RGB triplet or one of the color options listed in the table.

For a custom color, specify an RGB triplet. An RGB triplet is a three-element 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]. Alternatively, you can specify some common colors by name. This table lists the long and short color name options and the equivalent RGB triplet values.

OptionDescriptionEquivalent RGB Triplet
'red' or 'r'Red[1 0 0]
'green' or 'g'Green[0 1 0]
'blue' or 'b'Blue[0 0 1]
'yellow' or 'y'Yellow[1 1 0]
'magenta' or 'm'Magenta[1 0 1]
'cyan' or 'c'Cyan[0 1 1]
'white' or 'w'White[1 1 1]
'black' or 'k'Black[0 0 0]

Example: 'blue'

Example: [0 0 1]

Line style, specified as one of the options listed in this table.

Line StyleDescriptionResulting Line
'-'Solid line

'--'Dashed line

':'Dotted line

'-.'Dash-dotted line

'none'No lineNo line

Line width, specified as a positive value in points. If the line has markers, then the line width also affects the marker edges.

Example: 0.75

Marker symbol, specified as one of the values in this table. By default, a line does not have markers. Add markers at selected points along the line by specifying a marker.

ValueDescription
'o'Circle
'+'Plus sign
'*'Asterisk
'.'Point
'x'Cross
'square' or 's'Square
'diamond' or 'd'Diamond
'^'Upward-pointing triangle
'v'Downward-pointing triangle
'>'Right-pointing triangle
'<'Left-pointing triangle
'pentagram' or 'p'Five-pointed star (pentagram)
'hexagram' or 'h'Six-pointed star (hexagram)
'none'No markers

Marker outline color, specified as 'auto', an RGB triplet, or one of the color options listed in the table. The default value of 'auto' uses the same color as the Color property.

For a custom color, specify an RGB triplet. An RGB triplet is a three-element 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]. Alternatively, you can specify some common colors by name. This table lists the long and short color name options and the equivalent RGB triplet values.

OptionDescriptionEquivalent RGB Triplet
'red' or 'r'Red[1 0 0]
'green' or 'g'Green[0 1 0]
'blue' or 'b'Blue[0 0 1]
'yellow' or 'y'Yellow[1 1 0]
'magenta' or 'm'Magenta[1 0 1]
'cyan' or 'c'Cyan[0 1 1]
'white' or 'w'White[1 1 1]
'black' or 'k'Black[0 0 0]
'none'No colorNot applicable

Example: [0.5 0.5 0.5]

Example: 'blue'

Marker fill color, specified as 'auto', an RGB triplet, or one of the color options listed in the table. The 'auto' value uses the same color as the MarkerEdgeColor property.

For a custom color, specify an RGB triplet. An RGB triplet is a three-element 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]. Alternatively, you can specify some common colors by name. This table lists the long and short color name options and the equivalent RGB triplet values.

OptionDescriptionEquivalent RGB Triplet
'red' or 'r'Red[1 0 0]
'green' or 'g'Green[0 1 0]
'blue' or 'b'Blue[0 0 1]
'yellow' or 'y'Yellow[1 1 0]
'magenta' or 'm'Magenta[1 0 1]
'cyan' or 'c'Cyan[0 1 1]
'white' or 'w'White[1 1 1]
'black' or 'k'Black[0 0 0]
'none'No colorNot applicable

Example: [0.3 0.2 0.1]

Example: 'green'

Marker size, specified as a positive value in points.

Example: 10

Output Arguments

collapse all

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, then fplot returns function line objects.

  • If you use the fplot(xt,yt) syntax or a variation of this syntax, then fplot 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 in f, then fplot expands the range to show them.

Introduced in R2016a

Was this topic helpful?