plot

2-D line plot

Syntax

  • plot(X,Y) example
  • plot(X,Y,LineSpec)
  • plot(X1,Y1,...,Xn,Yn) example
  • plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn) example

Description

example

plot(X,Y) creates a 2-D line plot of the data in Y versus the corresponding values in X.

  • If X and Y are both vectors, then they must have equal length. The plot function plots Y versus X.

  • If X and Y are both matrices, then they must have equal size. The plot function plots columns of Y versus columns of X.

  • If one of X or Y is a vector and the other is a matrix, then the matrix must have dimensions such that one of its dimensions equals the vector length. If the number of matrix rows equals the vector length, then the plot function plots each matrix column versus the vector. If the number of matrix columns equals the vector length, then the function plots each matrix row versus the vector. If the matrix is square, then the function plots each column versus the vector.

  • If one of X or Y is a scalar and the other is a vector, then the plot function plots the vector as discrete points at the scalar value.

plot(X,Y,LineSpec) sets the line style, marker symbol, and color.

example

plot(X1,Y1,...,Xn,Yn) plots multiple X, Y pairs using the same axes for all lines.

example

plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn) sets the line style, marker type, and color for each line. You can mix X, Y, LineSpec triplets with X, Y pairs. For example, plot(X1,Y1,X2,Y2,LineSpec2,X3,Y3).

example

plot(Y) creates a 2-D line plot of the data in Y versus the index of each value.

  • If Y is a vector, then the x-axis scale ranges from 1 to length(Y).

  • If Y is a matrix, then the plot function plots the columns of Y versus their row number. The x-axis scale ranges from 1 to the number of rows in Y.

  • If Y is complex, then the plot function plots the imaginary part of Y versus the real part of Y, such that plot(Y) is equivalent to plot(real(Y),imag(Y)).

plot(Y,LineSpec) sets the line style, marker symbol, and color.

example

plot(___,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. You cannot specify different Name,Value pairs for each line using this syntax.

example

plot(ax,___) plots into the axes specified by ax instead of into the current axes (gca). The option, ax can precede any of the input combinations in the previous syntaxes.

example

h = plot(___) returns a column vector of chart line objects. Use h to modify a specific chart lines after it is created.

Examples

expand all

Create Line Plot

Define x as a vector of linearly spaced values between 0 and $2\pi$. Use an increment of $\pi/100$ between the values. Define y as sine values of x.

x = 0:pi/100:2*pi;
y = sin(x);

Create a line plot of the data.

figure % opens new figure window
plot(x,y)

Plot Multiple Lines

Define x as 100 linearly spaced values between $-2\pi$ and $2\pi$. Define y1 and y2 as sine and cosine values of x. Create a line plot of both sets of data.

x = linspace(-2*pi,2*pi);
y1 = sin(x);
y2 = cos(x);

figure
plot(x,y1,x,y2)

Create Line Plot From Matrix

Define Y as the 4-by-4 matrix returned by the magic function.

Y = magic(4)
Y =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

Create a 2-D line plot of Y. MATLAB® plots each matrix column as a separate line.

figure
plot(Y)

Specify Line Style

Plot three sine curves with a small phase shift between each line. Use the default line style for the first line. Specify a dashed line style for the second line and a dotted line style for the third line.

x = 0:pi/100:2*pi;
y1 = sin(x);
y2 = sin(x-0.25);
y3 = sin(x-0.5);

figure
plot(x,y1,x,y2,'--',x,y3,':')

MATLAB® cycles the line color through the default color order.

Specify Line Style, Color, and Marker

Plot three sine curves with a small phase shift between each line. Use a green line with no markers for the first sine curve. Use a blue dashed line with circle markers for the second sine curve. Use only cyan star markers for the third sine curve.

x = 0:pi/10:2*pi;
y1 = sin(x);
y2 = sin(x-0.25);
y3 = sin(x-0.5);

figure
plot(x,y1,'g',x,y2,'b--o',x,y3,'c*')

Specify Line Width, Marker Size, and Marker Color

Create a line plot and use the LineSpec option to specify a dashed green line with square markers. Use Name,Value pairs to specify the line width, marker size, and marker colors. Set the marker edge color to blue and set the marker face color using an RGB color value.

x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));

figure
plot(x,y,'--gs',...
    'LineWidth',2,...
    'MarkerSize',10,...
    'MarkerEdgeColor','b',...
    'MarkerFaceColor',[0.5,0.5,0.5])

Add Title and Axis Labels

Use the linspace function to define x as a vector of 150 values between 0 and 10. Define y as cosine values of x.

x = linspace(0,10,150);
y = cos(5*x);

Create a 2-D line plot of the cosine curve. Change the line color to a shade of blue-green using an RGB color value. Add a title and axis labels to the graph using the title, xlabel, and ylabel functions.

figure
plot(x,y,'Color',[0,0.7,0.9])

title('2-D Line Plot')
xlabel('x')
ylabel('cos(5x)')

Plot Durations and Specify Tick Format

Define t as seven linearly spaced duration values between 0 and 3 minutes. Plot random data and specify the format of the duration tick marks using the 'DurationTickFormat' name-value pair argument.

t = 0:seconds(30):minutes(3);
y = rand(1,7);

plot(t,y,'DurationTickFormat','mm:ss')

Specify Axes for Line Plot

Create a figure with two subplots and return the handle to each subplot axes, ax1 and ax1.

figure % new figure
ax1 = subplot(2,1,1); % top subplot
ax2 = subplot(2,1,2); % bottom subplot

Create a 2-D line plot in each axes by referring to the axes handles. Add a title and y-axis label to each axes by passing the axes handles to the title and ylabel functions.

x = linspace(0,3);
y1 = sin(5*x);
y2 = sin(15*x);

plot(ax1,x,y1)
title(ax1,'Top Subplot')
ylabel(ax1,'sin(5x)')

plot(ax2,x,y2)
title(ax2,'Bottom Subplot')
ylabel(ax2,'sin(15x)')

Change Line Properties Using Handles

Define x as 100 linearly spaced values between $-2\pi$ and $2\pi$. Define y1 and y2 as sine and cosine values of x. Create a line plot of both sets of data and return the handles of the two lines in h.

x = linspace(-2*pi,2*pi);
y1 = sin(x);
y2 = cos(x);

figure
h = plot(x,y1,x,y2);

Use the handle of the first line, h(1), to change the line width to 2. Use the handle of the second line, h(2), to add star markers to the plotted line.

h(1).LineWidth = 2;
h(2).Marker = '*';

Input Arguments

expand all

Y — y valuesscalar | vector | matrix

y values, specified as a scalar, a vector, or a matrix. Y can be a numeric array, logical array, datetime array, or duration array. To plot against specific x values you must also specify X.

X — x valuesscalar | vector | matrix

x values, specified as a scalar, a vector, or a matrix. X can be a numeric array, logical array, datetime array, or duration array.

LineSpec — Line style, marker symbol, and colorstring

Line style, marker symbol, and color, specified as a string. The elements of the string can appear in any order, and you can omit one or more options from the string specifier. If you omit the line style and specify the marker character, then the plot shows only the marker and no line.

If Y is a matrix and you specify a color with LineSpec, then all the lines use the specified color. If you specify a marker type or line style and do not specify a color, then the lines cycle through the color order.

Example: '--or' is a red dashed line with circle markers

SpecifierLine Style
-Solid line (default)
--Dashed line
:Dotted line
-.Dash-dot line

SpecifierMarker
oCircle
+Plus sign
*Asterisk
.Point
xCross
sSquare
dDiamond
^Upward-pointing triangle
vDownward-pointing triangle
>Right-pointing triangle
<Left-pointing triangle
pPentagram
hHexagram

SpecifierColor

y

yellow

m

magenta

c

cyan

r

red

g

green

b

blue

w

white

k

black

ax — Axes objectaxes object

Axes object. If you do not specify an axes, then the plot function uses the current axes.

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 chart line properties listed here are only a submit. For a complete list, see Chart Line Properties.

'Color' — Line color[0 0.4470 0.7410] (default) | RGB triplet | color string | 'none'

Line color, specified as an RGB triplet, a color string, or 'none'. If you specify the Color as 'none', then the line is invisible.

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]. This table lists RGB triplet values that have equivalent color strings.

Long NameShort NameRGB Triplet
'yellow''y'[1 1 0]
'magenta''m'[1 0 1]
'cyan''c'[0 1 1]
'red''r'[1 0 0]
'green''g'[0 1 0]
'blue''b'[0 0 1]
'white''w'[1 1 1]
'black'k'[0 0 0]

Example: 'blue'

Example: [0 0 1]

'DatetimeTickFormat' — Format for datetime tick labelsstring

Format for datetime tick labels, specified as the comma-separated pair consisting of 'DatetimeTickFormat' and a string. Use the letters A-Z and a-z to construct a custom string value. These letters correspond to the Unicode® Locale Data Markup Language (LDML) standard for dates. You can include non-ASCII letter characters such as a hyphen, space, or colon to separate the fields.

If you do not specify a value for 'DatetimeTickFormat', then plot automatically optimizes and updates the tick labels based on the axis limits.

Example: 'DatetimeTickFormat','eeee, MMMM d, yyyy HH:mm:ss' displays a date and time such as Saturday, April 19, 2014 21:41:06.

The following table shows several common display formats and examples of the formatted output for the date, Saturday, April 19, 2014 at 9:41:06 PM in New York City.

Value of DatetimeTickFormatExample
'yyyy-MM-dd'2014-04-19
'dd/MM/yyyy'19/04/2014
'dd.MM.yyyy'19.04.2014
'yyyy年 MM月 dd日'2014年 04月 19日
'MMMM d, yyyy'April 19, 2014
'eeee, MMMM d, yyyy HH:mm:ss'Saturday, April 19, 2014 21:41:06
'MMMM d, yyyy HH:mm:ss Z'April 19, 2014 21:41:06 -0400

For a complete list of valid letter identifiers, see the Format property for datetime arrays.

DatetimeTickFormat is not a chart line property. You must set the tick format using the name-value pair argument when creating a plot.

'DurationTickFormat' — Format for duration tick labelsstring

Format for duration tick labels, specified as the comma-separated pair consisting of 'DurationTickFormat' and a string.

If you do not specify a value for 'DurationTickFormat', then plot automatically optimizes and updates the tick labels based on the axis limits.

To display a duration as a single number that includes a fractional part, for example, 1.234 hours, specify one of the following strings.

Value of DurationTickFormatDescription
'y'Number of exact fixed-length years. A fixed-length year is equal to 365.2425 days.
'd'Number of exact fixed-length days. A fixed-length day is equal to 24 hours.
'h'Number of hours
'm'Number of minutes
's'Number of seconds

Example: 'DurationTickFormat','h' displays duration values in terms of fixed-length days.

To display a duration in the form of a digital timer, specify one of the following strings.

  • 'dd:hh:mm:ss'

  • 'hh:mm:ss'

  • 'mm:ss'

  • 'hh:mm'

In addition, you can display up to nine fractional second digits by appending up to nine S characters.

Example: 'DurationTickFormat','hh:mm:ss.SSS' displays the milliseconds of a duration value to three digits.

DurationTickFormat is not a chart line property. You must set the tick format using the name-value pair argument when creating a plot.

'LineStyle' — Line style'-' (default) | '--' | ':' | '-.' | 'none'

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

StringLine StyleResulting Line
'-'Solid line

'--'Dashed line

':'Dotted line

'-.'Dash-dotted line

'none'No lineNo line

'LineWidth' — Line width0.5 (default) | positive value

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

Example: 0.75

'Marker' — Marker symbol'none' (default) | string

Marker symbol, specified as one of the marker strings in this table. By default, a chart line does not have markers. Add markers at each data point along the line by specifying a marker symbol.

StringMarker Symbol
'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

Example: 'Marker','+'

Example: 'Marker','diamond'

'MarkerEdgeColor' — Marker outline color'auto' (default) | 'none' | RGB triplet | color string

Marker outline color, specified as one of these values:

  • 'auto' — Use the same color as the Color property.

  • 'none' — Use no color, which makes unfilled markers invisible.

  • RGB triplet or color string — Use the specified color.

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]. This table lists RGB triplet values that have equivalent color strings.

Long NameShort NameRGB Triplet
'yellow''y'[1 1 0]
'magenta''m'[1 0 1]
'cyan''c'[0 1 1]
'red''r'[1 0 0]
'green''g'[0 1 0]
'blue''b'[0 0 1]
'white''w'[1 1 1]
'black'k'[0 0 0]

Example: [0.5 0.5 0.5]

Example: 'blue'

'MarkerFaceColor' — Marker fill color'none' (default) | 'auto' | RGB triplet | color string

Marker fill color, specified as one of these values:

  • 'none' — Use no color, which makes the interior invisible.

  • 'auto' — Use the same color as the Color property for the axes.

  • RGB triplet or color string — Use the specified color.

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]. This table lists RGB triplet values that have equivalent color strings.

Long NameShort NameRGB Triplet
'yellow''y'[1 1 0]
'magenta''m'[1 0 1]
'cyan''c'[0 1 1]
'red''r'[1 0 0]
'green''g'[0 1 0]
'blue''b'[0 0 1]
'white''w'[1 1 1]
'black'k'[0 0 0]

Example: [0.3 0.2 0.1]

Example: 'green'

'MarkerSize' — Marker size6 (default) | positive value

Marker size, specified as a positive value in point units.

Example: 10

Output Arguments

expand all

h — One or more chart line objectsscalar | vector

One or more chart line objects, returned as a scalar or a vector. These are unique identifiers, which you can use to query and modify properties of a specific chart line.

More About

expand all

Tips

  • plot uses colors and line styles based on the ColorOrder and LineStyleOrder properties for the current axes. plot cycles through the colors with the first line style. Then, it cycles through the colors again with each additional line style.

    To change the colors and line styles for the current axes, set the ColorOrder and LineStyleOrder properties. For example, to set the line style order for the current axes to a solid line with asterisk markers, a dotted line, and circle markers with no line, use this command:

    ax = gca;
    ax.LineStyleOrder = '-*|:|o';
  • Use NaN and Inf values to create breaks in the lines. For example, this code plots the first two elements, skips the third element, and draws another line using the last two elements: plot([1,2,NaN,4,5]).

See Also

Functions

Properties

Was this topic helpful?