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.

Line Properties

Chart line appearance and behavior

Line properties control the appearance and behavior of a Line object. By changing property values, you can modify certain aspects of the line chart.

Starting in R2014b, you can use dot notation to query and set properties.

p = plot(1:10);
c = p.Color;
p.Color = 'red';

If you are using an earlier release, use the get and set functions instead.

Line

expand all

Line color, specified as an RGB triplet or one of the color options listed in the table. The default value of [0 0 0] corresponds to black.

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: '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

Style of line corners, specified as 'round', 'miter', or 'chamfer'. This table illustrates the appearance of the different values.

'round''miter''chamfer'

The appearance of the 'round' option might look different if the Renderer property of the figure is set to 'opengl' instead of 'painters'.

Sharp vertical and horizontal lines, specified as 'off' or 'on'.

If the associated figure has a GraphicsSmoothing property set to 'on' and a Renderer property set to 'opengl', then the figure applies a smoothing technique to plots. In some cases, this smoothing technique can cause vertical and horizontal lines to appear uneven in thickness or color. Use the AlignVertexCenters property to eliminate the uneven appearance.

  • 'off' — Do not sharpen vertical or horizontal lines. The lines might appear uneven in thickness or color.

  • 'on' — Sharpen vertical and horizontal lines to eliminate an uneven appearance.

Note

You must have a graphics card that supports this feature. To see if the feature is supported, type opengl info. If it is supported, then the returned fields contain the line SupportsAlignVertexCenters: 1.

Markers

expand all

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.

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

Indices of data points at which to display markers, specified as a vector of positive integers. If you do not specify the indices, then MATLAB® displays a marker at every data point.

Note

To see the markers, you must also specify a marker symbol.

Example: plot(x,y,'-o','MarkerIndices',[1 5 10]) displays a circle marker at the first, fifth, and tenth data points.

Example: plot(x,y,'-x','MarkerIndices',1:3:length(y)) displays a cross marker every three data points.

Example: plot(x,y,'Marker','square','MarkerIndices',5) displays one square marker at the fifth data point.

Marker size, specified as a positive value in points.

Example: 10

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 Color property for the axes.

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'

Cartesian Coordinate Data

expand all

x values, specified as a vector.

  • For 2-D line plots, if you do not specify the x values, then MATLAB uses the indices of YData as the x values for the plot. XData and YData must have equal lengths.

  • For 3-D line plots, if you do not specify the x values, then MATLAB uses the indices of ZData as the x values for the plot. XData, YData, and ZData must have equal lengths.

Example: [1:10]

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

Selection mode for XData, specified as one of these values:

  • 'auto' — Use the indices of the values in YData (or ZData for 3-D plots).

  • 'manual' — Use manually specified values. To specify the values, set the XData property or specify the input argument X to the plotting function.

Variable linked to XData, specified as a character vector or string containing a MATLAB workspace variable name. MATLAB evaluates the variable in the base workspace to generate the XData.

By default, there is no linked variable so the value is an empty character vector, ''. If you link a variable, then MATLAB does not update the XData values immediately. To force an update of the data values, use the refreshdata function.

Note

If you change one data source property to a variable that contains data of a different dimension, you might cause the function to generate a warning and not render the graph until you have changed all data source properties to appropriate values.

Example: 'x'

y values, specified as a vector. For 2-D line plots, XData and YData must have equal lengths. For 3-D line plots, XData, YData, and ZData must have equal lengths.

Example: [1:10]

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

Variable linked to YData, specified as a character vector or string containing a MATLAB workspace variable name. MATLAB evaluates the variable in the base workspace to generate the YData.

By default, there is no linked variable so the value is an empty character vector, ''. If you link a variable, then MATLAB does not update the YData values immediately. To force an update of the data values, use the refreshdata function.

Note

If you change one data source property to a variable that contains data of a different dimension, you might cause the function to generate a warning and not render the graph until you have changed all data source properties to appropriate values.

Example: 'y'

z values for the 3-D line plot, specified as a vector. XData, YData, and ZData must have equal lengths.

Example: [1:10]

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

Variable linked to ZData, specified as a character vector or string containing a MATLAB workspace variable name. MATLAB evaluates the variable in the base workspace to generate the ZData.

By default, there is no linked variable so the value is an empty character vector, ''. If you link a variable, then MATLAB does not update the ZData values immediately. To force an update of the data values, use the refreshdata function.

Note

If you change one data source property to a variable that contains data of a different dimension, you might cause the function to generate a warning and not render the graph until you have changed all data source properties to appropriate values.

Example: 'z'

Polar Coordinate Data

expand all

Angle values, specified as a vector. ThetaData and RData must be vectors of equal length.

This property applies only to lines in a polar axes.

Selection mode for the ThetaData property value, specified as one of these values:

  • 'auto' — Automatically select the value.

  • 'manual' — Use the specified values. To specify the value, set the ThetaData property or specify the input argument theta to the plotting function.

This property applies only to lines in a polar axes.

Variable linked to ThetaData, specified as a character vector containing a MATLAB workspace variable name. MATLAB evaluates the variable in the base workspace to generate the RData.

By default, there is no linked variable so the value is an empty character vector, ''. If you link a variable, then MATLAB does not update the ThetaData values immediately. To force an update of the data values, use the refreshdata function.

Note

If you change one data source property to a variable that contains data of a different dimension, you might cause the function to generate a warning and not render the graph until you have changed all data source properties to appropriate values.

This property applies only to lines in a polar axes.

Radius values, specified as a vector. ThetaData and RData must be vectors of equal length.

This property applies only to lines in a polar axes.

Variable linked to RData, specified as a character vector containing a MATLAB workspace variable name. MATLAB evaluates the variable in the base workspace to generate the RData.

By default, there is no linked variable so the value is an empty character vector, ''. If you link a variable, then MATLAB does not update the RData values immediately. To force an update of the data values, use the refreshdata function.

Note

If you change one data source property to a variable that contains data of a different dimension, you might cause the function to generate a warning and not render the graph until you have changed all data source properties to appropriate values.

This property applies only to lines in a polar axes.

Legend

expand all

Legend label, specified as a character vector or string. If you do not specify the text, then the legend uses a label of the form 'dataN'. The legend does not display until you call the legend command.

Example: 'Label Text'

Data Types: char | string

This property is read-only.

Control for including or excluding the object from a legend, returned as an Annotation object. Set the underlying IconDisplayStyle property to one of these values:

  • 'on' — Include the object in the legend (default).

  • 'off' — Do not include the object in the legend.

For example, exclude a stem chart from the legend.

p = plot(1:10,'DisplayName','Line Chart');
hold on
s = stem(1:10,'DisplayName','Stem Chart');
hold off
s.Annotation.LegendInformation.IconDisplayStyle = 'off';
legend('show')

Alternatively, you can control the items in a legend using the legend function. Specify the first input argument as a vector of the graphics objects to include.

p = plot(1:10,'DisplayName','Line Chart');
hold on
s = stem(1:10,'DisplayName','Stem Chart');
hold off
legend(p)

Interactivity

expand all

State of visibility, specified as one of these values:

  • 'on' — Display the object.

  • 'off' — Hide the object without deleting it. You still can access the properties of an invisible object.

Context menu, specified as a ContextMenu object. Use this property to display a context menu when you right-click the object. Create the context menu using the uicontextmenu function.

Note

If the PickableParts property is set to 'none' or if the HitTest property is set to 'off', then the context menu does not appear.

Selection state, specified as one of these values:

  • 'on' — Selected. If you click the object when in plot edit mode, then MATLAB sets its Selected property to 'on'. If the SelectionHighlight property also is set to 'on', then MATLAB displays selection handles around the object.

  • 'off' — Not selected.

Display of selection handles when selected, specified as one of these values:

  • 'on' — Display selection handles when the Selected property is set to 'on'.

  • 'off' — Never display selection handles, even when the Selected property is set to 'on'.

Clipping of the object to the axes limits, specified as one of these values:

  • 'on' — Do not display parts of the object that are outside the axes limits.

  • 'off' — Display the entire object, even if parts of it appear outside the axes limits. Parts of the object might appear outside the axes limits if you create a plot, set hold on, freeze the axis scaling, and then create the object so that it is larger than the original plot.

The Clipping property of the axes that contains the object must be set to 'on'. Otherwise, this property has no effect. For more information about the clipping behavior, see the Clipping property of the axes.

Callbacks

expand all

Mouse-click callback, specified as one of these values:

  • Function handle

  • Cell array containing a function handle and additional arguments

  • Character vector that is a valid MATLAB command or function, which is evaluated in the base workspace (not recommended)

Use this property to execute code when you click the object. If you specify this property using a function handle, then MATLAB passes two arguments to the callback function when executing the callback:

  • Clicked object — Access properties of the clicked object from within the callback function.

  • Event data — Empty argument. Replace it with the tilde character (~) in the function definition to indicate that this argument is not used.

For more information on how to use function handles to define callback functions, see Callback Definition.

Note

If the PickableParts property is set to 'none' or if the HitTest property is set to 'off', then this callback does not execute.

Creation callback, specified as one of these values:

  • Function handle

  • Cell array containing a function handle and additional arguments

  • Character vector that is a valid MATLAB command or function, which is evaluated in the base workspace (not recommended)

Use this property to execute code when you create the object. MATLAB executes the callback after creating the object and setting all of its properties. Setting the CreateFcn property on an existing object has no effect. To have an effect, you must specify the CreateFcn property during object creation. One way to specify the property during object creation is to set the default property value for the object. See Default Property Values for more information.

If you specify this callback using a function handle, then MATLAB passes two arguments to the callback function when executing the callback:

  • Created object — Access properties of the object from within the callback function. You also can access the object through the CallbackObject property of the root, which can be queried using the gcbo function.

  • Event data — Empty argument. Replace it with the tilde character (~) in the function definition to indicate that this argument is not used.

For more information on how to use function handles to define callback functions, see Callback Definition.

Deletion callback, specified as one of these values:

  • Function handle

  • Cell array containing a function handle and additional arguments

  • Character vector that is a valid MATLAB command or function, which is evaluated in the base workspace (not recommended)

Use this property to execute code when you delete the object MATLAB executes the callback before destroying the object so that the callback can access its property values.

If you specify this callback using a function handle, then MATLAB passes two arguments to the callback function when executing the callback:

  • Deleted object — Access properties of the object from within the callback function. You also can access the object through the CallbackObject property of the root, which can be queried using the gcbo function.

  • Event data — Empty argument. Replace it with the tilde character (~) in the function definition to indicate that this argument is not used.

For more information on how to use function handles to define callback functions, see Callback Definition.

Callback Execution Control

expand all

Callback interruption, specified as 'on' or 'off'. The Interruptible property determines if a running callback can be interrupted.

Note

Consider these callback states where:

  • The running callback is the currently executing callback.

  • The interrupting callback is a callback that tries to interrupt the running callback.

Whenever MATLAB invokes a callback, that callback attempts to interrupt a running callback. The Interruptible property of the object owning the running callback determines if interruption is permitted. If interruption is not permitted, then the BusyAction property of the object owning the interrupting callback determines if it is discarded or put in the queue.

The Interruptible property determines if another callback can interrupt the ButtonDownFcn callback of the Line object. The Interruptible property has two values:

  • 'on' — Interruptible. Interruption occurs at the next point where MATLAB processes the queue. For example, when you have a command such as drawnow, figure, getframe, waitfor, or pause.

    • If the running callback contains one of these commands, then MATLAB stops the execution of the callback at this point and executes the interrupting callback. MATLAB resumes executing the running callback when the interrupting callback completes. For more information, see Interrupt Callback Execution.

    • If the running callback does not contain one of these commands, then MATLAB finishes executing the callback without interruption.

  • 'off' — Not interruptible. MATLAB finishes executing the running callback without any interruptions.

Callback queuing specified as 'queue' or 'cancel'. The BusyAction property determines how MATLAB handles the execution of interrupting callbacks.

Consider these callback states where:

  • The running callback is the currently executing callback.

  • The interrupting callback is a callback that tries to interrupt the running callback.

Whenever MATLAB invokes a callback, that callback attempts to interrupt a running callback. The Interruptible property of the object owning the running callback determines if interruption is permitted. If interruption is not permitted, then the BusyAction property of the object owning the interrupting callback determines if it is discarded or put in the queue.

If a callback of the Line object tries to interrupt a running callback that cannot be interrupted, then the BusyAction property determines if it is discarded or put in the queue. Specify the BusyAction property as one of these values:

  • 'queue' — Put the interrupting callback in a queue to be processed after the running callback finishes execution. (default behavior)

  • 'cancel' — Discard the interrupting callback.

Ability to capture mouse clicks, specified as one of these values:

  • 'visible' — Capture mouse clicks when visible. The Visible property must be set to 'on' and you must click a part of the Line object that has a defined color. You cannot click a part that has an associated color property set to 'none'. If the plot contains markers, then the entire marker is clickable if either the edge or the fill has a defined color. The HitTest property determines if the Line object responds to the click or if an ancestor does.

  • 'all' — Capture mouse clicks regardless of visibility. The Visible property can be set to 'on' or 'off' and you can click a part of the Line object that has no color. The HitTest property determines if the Line object responds to the click or if an ancestor does.

  • 'none' — Cannot capture mouse clicks. Clicking the Line object passes the click through it to the object below it in the current view of the figure window. The HitTest property has no effect.

Response to captured mouse clicks, specified as one of these values:

  • 'on' — Trigger the ButtonDownFcn callback of the Line object. If you have defined the UIContextMenu property, then invoke the context menu.

  • 'off' — Trigger the callbacks for the nearest ancestor of the Line object that has:

    • HitTest property set to 'on'

    • PickableParts property set to a value that enables the ancestor to capture mouse clicks.

Note

The PickableParts property determines if the Line object can capture mouse clicks. If it cannot, then the HitTest property has no effect.

This property is read-only.

Deletion status, returned as 'off' or 'on'. MATLAB sets the BeingDeleted property to 'on' when the delete function of the object begins execution (see the DeleteFcn property). The BeingDeleted property remains set to 'on' until the object no longer exists.

Check the value of the BeingDeleted property if you need to verify that the object is not about to be deleted before querying or modifying it.

Parent/Child

expand all

Parent, specified as an Axes, PolarAxes, Group, or Transform object.

The object has no children. You cannot set this property.

Visibility of the object handle in the Children property of the parent, specified as one of these values:

  • 'on' — Object handle is always visible.

  • 'off' — Object handle is invisible at all times. This option is useful for preventing unintended changes to the UI by another function. Set the HandleVisibility to 'off' to temporarily hide the handle during the execution of that function.

  • 'callback' — Object handle is visible from within callbacks or functions invoked by callbacks, but not from within functions invoked from the command line. This option blocks access to the object at the command line, but permits callback functions to access it.

If the object is not listed in the Children property of the parent, then functions that obtain object handles by searching the object hierarchy or querying handle properties cannot return it. For example, when you have a function such as get, findobj, gca, gcf, gco, newplot, cla, clf, and close.

Hidden object handles are still valid. Set the root ShowHiddenHandles property to 'on' to list all object handles regardless of their HandleVisibility property setting.

Identifiers

expand all

This property is read-only.

Type of graphics object, returned as 'line'. Use this property to find all objects of a given type within a plotting hierarchy, for example, searching for the type using findobj.

Tag to associate with the line object, specified as a character vector or string scalar.

Use this property to find line objects in a hierarchy. For example, you can use the findobj function to find line objects that have a specific Tag property value.

Example: 'January Data'

User data to associate with the line object, specified as any MATLAB data, for example, a scalar, vector, matrix, cell array, character array, table, or structure. MATLAB does not use this data.

To associate multiple sets of data or to attach a field name to the data, use the getappdata and setappdata functions.

Example: 1:100

Introduced before R2006a

Was this topic helpful?