Create line object

`line`

line(X,Y)

line(X,Y,Z)

line(X,Y,Z,'* PropertyName*',propertyvalue,...)

line('XData',x,'YData',y,'ZData',z,...)

line(ax,...)

h = line(...)

For a list of properties, see Primitive Line Properties.

`line`

creates a line object in the current
axes with default values `x = [0 1]`

and ```
y
= [0 1]
```

. You can specify the color, width, line style, and
marker type, as well as other characteristics.

The `line`

function has two forms:

Automatic color and line style cycling. When you specify multiple line coordinate data as a column array using the informal syntax (i.e., the first three arguments are interpreted as the coordinates),

line(X,Y,Z)

MATLAB

^{®}cycles through the axes`ColorOrder`

and`LineStyleOrder`

property values the way the`plot`

function does. However, unlike`plot`

,`line`

does not call the`newplot`

function.Purely low-level behavior. When you call

`line`

with only property name/property value pairs,line('XData',x,'YData',y,'ZData',z)

MATLAB draws a line object in the current axes using the default line color (see the

`colordef`

function for information on color defaults). Note that you cannot specify matrix coordinate data with the low-level form of the`line`

function.

`line(X,Y)`

adds the line
defined in vectors `X`

and `Y`

to
the current axes. If `X`

and `Y`

are
matrices of the same size, `line`

draws one line
per column. The values in `X`

and `Y`

can
be numeric or datetime or duration values.

`line(X,Y,Z)`

creates lines
in three-dimensional coordinates. The values in `X`

, `Y`

,
and `Z`

can be numeric or datetime or duration values.

`line(X,Y,Z,'`

creates
a line using the values for the property name/property value pairs
specified and default values for all other properties. For a description
of the properties, see Primitive
Line Properties.* PropertyName*',propertyvalue,...)

`line('XData',x,'YData',y,'ZData',z,...)`

creates
a line in the current axes using the property values defined as arguments.
This is the low-level form of the `line`

function,
which does not accept matrix coordinate data as the other informal
forms described above. The values in `x`

, `y`

,
and `z`

can be numeric or datetime or duration values.

`line(ax,...)`

creates the line in the axes
specified by `ax`

instead of in the current axes
(`gca`

).

`h = line(...)`

returns a
column vector of primitive line handles corresponding to each line
object the function creates.

This example uses the `line`

function to
add a shadow to plotted data. First, plot some data and save the line's
handle:

```
t = 0:pi/20:2*pi;
hline1 = plot(t,sin(t),'k');
ax = gca;
```

Next, add a shadow by offsetting the *x*-coordinates.
Make the shadow line light gray and wider than the default `LineWidth`

:

hline2 = line(t+.06,sin(t),... 'LineWidth',4,... 'Color',[.8 .8 .8],... 'Parent',ax);

Finally, pull the first line to the front:

`set(gca,'Children',[hline1 hline2])`

You can use the `ginput`

function
to select points from a figure. For example:

[x,y] = ginput(5); line(x,y)

**Drawing with mouse motion**

You can use the axes `CurrentPoint`

property and
the figure `WindowButtonDownFcn`

and `WindowButtonMotionFcn`

properties
to select a point with a mouse click and draw a line to another point
by dragging the mouse, like a simple drawing program. The following
example illustrates a few useful techniques for doing this type of
interactive drawing.

Click to view in editor — This example enables you to click and drag the cursor to draw lines.

Click to run example — Click the left mouse button in the axes and move the cursor, left-click to define the line end point, right-click to end drawing mode.

This statement reuses the one-column matrix specified for `ZData`

to
produce two lines, each having four points.

line(rand(4,2),rand(4,2),rand(4,1))

If all the data has the same number of columns and one row each, MATLAB transposes the matrices to produce data for plotting. For example,

line(rand(1,4),rand(1,4),rand(1,4))

is changed to

line(rand(4,1),rand(4,1),rand(4,1))

This also applies to the case when just one or two matrices have one row. For example, the statement

line(rand(2,4),rand(2,4),rand(1,4))

is equivalent to

line(rand(4,2),rand(4,2),rand(4,1))

Was this topic helpful?