Main Content

line

Create primitive line

Description

line(x,y) plots a line in the current axes using the data in vectors x and y. If either x or y, or both are matrices, then line draws multiple lines. Unlike the plot function, line adds the line to the current axes without deleting other graphics objects or resetting axes properties.

example

line(x,y,z) plots a line in three-dimensional coordinates.

example

line draws a line from the point (0,0) to (1,1) with the default property settings.

line(___,Name,Value) modifies the appearance of the line using one or more name-value argument pairs. For example, 'LineWidth',3 sets the line width to 3 points. Specify name-value pairs after all other input arguments. If you specify the data using name-value pairs, for example line('XData',x,'YData',y), then you must specify vector data.

example

line(ax,___) creates the line in the Cartesian, polar, or geographic axes specified by ax instead of in the current axes (gca). Specify ax as the first input argument.

pl = line(___) returns all primitive Line objects created. Use pl to modify properties of a specific Line object after it is created. For a list, see Line Properties.

example

Examples

collapse all

Create x and y as vectors. Then plot y versus x.

x = linspace(0,10);
y = sin(x);
line(x,y)

Figure contains an axes object. The axes object contains an object of type line.

Plot two lines by specifying x and y as matrices. Use line to plot columns of y versus columns of x as separate lines.

x = linspace(0,10)';
y = [sin(x) cos(x)];
line(x,y)

Figure contains an axes object. The axes object contains 2 objects of type line.

Plot a line in 3-D coordinates by specifying x, y, and z values. Change the axes to a 3-D view using view(3).

t = linspace(0,10*pi,200);
x = sin(t);
y = cos(t);
z = t;
line(x,y,z)
view(3)

Figure contains an axes object. The axes object contains an object of type line.

Create x and y as vectors. Then call the low-level version of the line function by specifying the data as name-value pair arguments. When you call the function this way, the resulting line is black.

x = linspace(0,10);
y = sin(x);
line('XData',x,'YData',y)

Figure contains an axes object. The axes object contains an object of type line.

Draw a red, dashed line between the points (1,2) and (9,12). Set the Color and LineStyle properties as name-value pairs.

x = [1 9];
y = [2 12];
line(x,y,'Color','red','LineStyle','--')

Figure contains an axes object. The axes object contains an object of type line.

First, draw a line from the point (3,15) to (2,12) and return the Line object. Then change the line to a green, dashed line. Use dot notation to set properties.

x = [3 2];
y = [15 12];
pl = line(x,y);

Figure contains an axes object. The axes object contains an object of type line.

pl.Color = 'green';
pl.LineStyle = '--';

Figure contains an axes object. The axes object contains an object of type line.

Input Arguments

collapse all

First coordinate, specified as a vector or a matrix. Matrix inputs are supported for Cartesian axes only.

The interpretation of the first coordinate depends on the type of axes. For Cartesian axes, the first coordinate is x-axis position in data units.

  • If x and y are both vectors with the same length, then line plots a single line.

  • If x and y are matrices with the same size, then line plots multiple lines. The function plots columns of y versus x.

  • If one of x or y is a vector and the other is a matrix, then line plots multiple lines. The length of the vector must equal one of the matrix dimensions:

    • If the vector length equals the number of matrix rows, then line plots each matrix column versus the vector.

    • If the vector length equals the number of matrix columns, then line plots each matrix row versus the vector.

    • If the matrix is square, then line plots each column versus the vector.

For polar axes, the first coordinate is the polar angle θ in radians. For geographic axes, the first coordinate is latitude in degrees. To plot lines in these types of axes, x and y must be the same size.

Example: x = linspace(0,10,25)

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

Second coordinate, specified as a vector or a matrix. Matrix inputs are supported for Cartesian axes only.

The interpretation of the second coordinate depends on the type of axes. For Cartesian axes, the second coordinate is y-axis position in data units.

  • If x and y are both vectors with the same length, then line plots a single line.

  • If x and y are matrices with the same size, then line plots multiple lines. The function plots columns of y versus x.

  • If one of x or y is a vector and the other is a matrix, then line plots multiple lines. The length of the vector must equal one of the matrix dimensions:

    • If the vector length equals the number of matrix rows, then line plots each matrix column versus the vector.

    • If the vector length equals the number of matrix columns, then line plots each matrix row versus the vector.

    • If the matrix is square, then line plots each column versus the vector.

For polar axes, the second coordinate is the radius in data units. For geographic axes, the second coordinate is longitude in degrees. To plot lines in these types of axes, x and y must be the same size.

Example: y = sin(x)

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

Third coordinate, specified as a vector or a matrix. Matrix inputs are supported for Cartesian axes only.

The interpretation of the third coordinate depends on the type of axes. For Cartesian axes, the third coordinate is z-axis position in data units.

  • If x, y, and z are all vectors with the same length, then line plots a single 3-D line.

  • If x, y, and z are all matrices with the same size, then line plots multiple 3-D lines using the matrix columns.

  • If one or two of x, y, and z is a vector and the others are matrices of the same size, then line plots multiple 3-D lines. The length of the vector must equal one of the matrix dimensions.

For polar and geographic axes, the third coordinate affects the layering of 2-D lines on the axes. To use the third coordinate in these types of axes, x, y, and z must be the same size.

Example: z = sin(x) + cos(y)

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

Target axes, specified as an Axes object, a PolarAxes object, or a GeographicAxes object. If you do not specify the axes, then the line function plots in the current axes.

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: line(x,y,'Color','red','LineWidth',3) creates a red line that is 3 points wide.

The properties listed here are only a subset. For a full list, see Line Properties.

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 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].

  • 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 from 0 to F. 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 NameShort NameRGB TripletHexadecimal Color CodeAppearance
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"Not applicableNot applicableNot applicableNo color

Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB® uses in many types of plots.

RGB TripletHexadecimal Color CodeAppearance
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

Example: line(x,y,'Color','blue')

Example: line(x,y,'Color',[0.5 0.5 1])

Example: line(x,y,'Color','#D9A2E9')

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

Line StyleDescriptionResulting Line
"-"Solid line

Sample of solid line

"--"Dashed line

Sample of dashed line

":"Dotted line

Sample of dotted line

"-."Dash-dotted line

Sample of dash-dotted line, with alternating dashes and dots

"none"No lineNo line

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 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.

MarkerDescriptionResulting Marker
"o"Circle

Sample of circle marker

"+"Plus sign

Sample of plus sign marker

"*"Asterisk

Sample of asterisk marker

"."Point

Sample of point marker

"x"Cross

Sample of cross marker

"_"Horizontal line

Sample of horizontal line marker

"|"Vertical line

Sample of vertical line marker

"square"Square

Sample of square marker

"diamond"Diamond

Sample of diamond marker

"^"Upward-pointing triangle

Sample of upward-pointing triangle marker

"v"Downward-pointing triangle

Sample of downward-pointing triangle marker

">"Right-pointing triangle

Sample of right-pointing triangle marker

"<"Left-pointing triangle

Sample of left-pointing triangle marker

"pentagram"Pentagram

Sample of pentagram marker

"hexagram"Hexagram

Sample of hexagram marker

"none"No markersNot applicable

Marker size, specified as a positive value in points, where 1 point = 1/72 of an inch.

Output Arguments

collapse all

Primitive line object. Use pl to query or modify properties of the line after it is created. For a list, see Line Properties.

Tips

  • Unlike the plot function, the line function does not call newplot before plotting and does not respect the value of the NextPlot property for the figure or axes. It simply adds the line to the current axes without deleting other graphics objects or resetting axes properties. However, some axes properties, such as the axis limits, can update to accommodate the line.

Extended Capabilities

Version History

Introduced before R2006a

expand all