GraphPlot - Graph plot appearance and behavior - MATLAB (original) (raw)
GraphPlot Properties
Graph plot appearance and behavior
GraphPlot
properties control the appearance and behavior of plotted graphs. By changing property values, you can modify aspects of the graph display. Use dot notation to refer to a particular object and property:
G = graph([1 1 1 1 5 5 5 5],[2 3 4 5 6 7 8 9]); h = plot(G); c = h.EdgeColor; h.EdgeColor = 'k';
Color
Node color, specified as one of these values:
'none'
— Nodes are not drawn.'flat'
— Color of each node depends on the value ofNodeCData
.- matrix — Each row is an RGB triplet representing the color of one node. The size of the matrix is
numnodes(G)
-by-3
. - RGB triplet, hexadecimal color code, or color name — All nodes use the specified color.
RGB triplets and hexadecimal color codes are useful for specifying custom colors.- 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 character vector or a string scalar that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Thus, 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 Name Short Name RGB Triplet Hexadecimal Color Code Appearance "red" "r" [1 0 0] "#FF0000" "green" "g" [0 1 0] "#00FF00" "blue" "b" [0 0 1] "#0000FF" "cyan" "c" [0 1 1] "#00FFFF" "magenta" "m" [1 0 1] "#FF00FF" "yellow" "y" [1 1 0] "#FFFF00" "black" "k" [0 0 0] "#000000" "white" "w" [1 1 1] "#FFFFFF" This table lists the default color palettes for plots in the light and dark themes. Palette Palette Colors ----------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- "gem" — Light theme default_Before R2025a: Most plots use these colors by default._ "glow" — Dark theme default You can get the RGB triplets and hexadecimal color codes for these palettes using the orderedcolors and rgb2hex functions. For example, get the RGB triplets for the "gem"
palette and convert them to hexadecimal color codes.RGB = orderedcolors("gem"); H = rgb2hex(RGB); Before R2023b: Get the RGB triplets using RGB = get(groot,"FactoryAxesColorOrder")
.Before R2024a: Get the hexadecimal color codes using H = compose("#%02X%02X%02X",round(RGB*255))
.
- 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
Example: plot(G,'NodeColor','k')
creates a graph plot with black nodes.
Control how the NodeColor
property is set, specified as one of these values:
'auto'
— MATLAB® controls the value of theNodeColor
property by using theSeriesIndex
property of theGraphPlot
object and theColorOrder
property of the axes.'manual'
— You control the value of theNodeColor
property manually, either by setting the value of theNodeColor
property directly on the object, or by including a color in theLineSpec
argument when you call a plotting function.
If you change the value of the NodeColor
orNodeCData
property manually, MATLAB changes the value of the NodeColorMode
property to'manual'
.
Edge color, specified as one of these values:
'none'
— Edges are not drawn.'flat'
— Color of each edge depends on the value ofEdgeCData
.- matrix — Each row is an RGB triplet representing the color of one edge. The size of the matrix is
numedges(G)
-by-3
. - RGB triplet, hexadecimal color code, or color name — All edges use the specified color.
RGB triplets and hexadecimal color codes are useful for specifying custom colors.- 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 character vector or a string scalar that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Thus, 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 Name Short Name RGB Triplet Hexadecimal Color Code Appearance "red" "r" [1 0 0] "#FF0000" "green" "g" [0 1 0] "#00FF00" "blue" "b" [0 0 1] "#0000FF" "cyan" "c" [0 1 1] "#00FFFF" "magenta" "m" [1 0 1] "#FF00FF" "yellow" "y" [1 1 0] "#FFFF00" "black" "k" [0 0 0] "#000000" "white" "w" [1 1 1] "#FFFFFF" This table lists the default color palettes for plots in the light and dark themes. Palette Palette Colors ----------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- "gem" — Light theme default_Before R2025a: Most plots use these colors by default._ "glow" — Dark theme default You can get the RGB triplets and hexadecimal color codes for these palettes using the orderedcolors and rgb2hex functions. For example, get the RGB triplets for the "gem"
palette and convert them to hexadecimal color codes.RGB = orderedcolors("gem"); H = rgb2hex(RGB); Before R2023b: Get the RGB triplets using RGB = get(groot,"FactoryAxesColorOrder")
.Before R2024a: Get the hexadecimal color codes using H = compose("#%02X%02X%02X",round(RGB*255))
.
- 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
Example: plot(G,'EdgeColor','r')
creates a graph plot with red edges.
Control how the EdgeColor
property is set, specified as one of these values:
'auto'
— MATLAB controls the value of theEdgeColor
property by using theSeriesIndex
property of theGraphPlot
object and theColorOrder
property of the axes.'manual'
— You control the value of theEdgeColor
property manually, either by setting the value of theEdgeColor
property directly on the object, or by including a color in theLineSpec
argument when you call a plotting function.
If you change the value of the EdgeColor
orEdgeCData
property manually, MATLAB changes the value of the EdgeColorMode
property to'manual'
.
Color data of node markers, specified as a vector with length equal to the number of nodes in the graph. The values in NodeCData
map linearly to the colors in the current colormap, resulting in different colors for each node in the plotted graph.
Color data of edge lines, specified as a vector with length equal to the number of edges in the graph. The values in EdgeCData
map linearly to the colors in the current colormap, resulting in different colors for each edge in the plotted graph.
Series index, specified as a positive whole number or "none"
. This property is useful for reassigning the node or edge colors of severalGraphPlot
objects so that they match each other. By default, theSeriesIndex
property of a GraphPlot
object is a number that corresponds to its order of creation, starting at 1
. MATLAB uses the number to calculate indices for assigning colors when you call plotting functions. The indices refer to the rows of the arrays stored in theColorOrder
property of the axes.
A SeriesIndex
value of"none"
corresponds to a neutral color that does not participate in the indexing scheme. (since R2023b)
MATLAB automatically updates the node and edge colors of theGraphPlot
object when you change its SeriesIndex
, or when you change the ColorOrder
property on the axes. However, the following conditions must be true for the changes to have any effect:
- If
NodeColorMode
is'auto'
, thenSeriesIndex
affects the color of the nodes. - If
EdgeColorMode
is'auto'
, thenSeriesIndex
affects the color of the edges. - The
SeriesIndex
property of theGraphPlot
object must have a value greater than 0. - The
NextSeriesIndex
property of theAxes
object must have a value greater than 0.
Node and Edge Styling
Node marker symbol, specified as one of the values listed in this table, or as a cell array or string vector of such values. The default is to use circular markers for the graph nodes. Specify a cell array of character vectors or string vector to use different markers for each node.
Marker | Description | Resulting Marker |
---|---|---|
"o" | Circle | ![]() |
"+" | Plus sign | ![]() |
"*" | Asterisk | ![]() |
"." | Point | ![]() |
"x" | Cross | ![]() |
"_" | Horizontal line | ![]() |
"|" | Vertical line | ![]() |
"square" | Square | ![]() |
"diamond" | Diamond | ![]() |
"^" | Upward-pointing triangle | ![]() |
"v" | Downward-pointing triangle | ![]() |
">" | Right-pointing triangle | ![]() |
"<" | Left-pointing triangle | ![]() |
"pentagram" | Pentagram | ![]() |
"hexagram" | Hexagram | ![]() |
"none" | No markers | Not applicable |
Example: '+'
Example: 'diamond'
Node marker size, specified as a positive value in point units or as a vector of such values. Specify a vector to use different marker sizes for each node in the graph. The default value of MarkerSize
is 4 for graphs with 100 or fewer nodes, and2
for graphs with more than 100 nodes.
Example: 10
Line style, specified as one of the line styles listed in this table, or as a cell array or string vector of such values. Specify a cell array of character vectors or string vector to use different line styles for each edge.
Character(s) | Line Style | Resulting Line |
---|---|---|
'-' | Solid line | ![]() |
'--' | Dashed line | ![]() |
':' | Dotted line | ![]() |
'-.' | Dash-dotted line | ![]() |
'none' | No line | No line |
Edge line width, specified as a positive value in point units, or as a vector of such values. Specify a vector to use a different line width for each edge in the graph.
Example: 0.75
Transparency of graph edges, specified as a scalar value between 0
and1
inclusive. A value of 1
means fully opaque and0
means completely transparent (invisible).
Example: 0.25
Arrow size, specified as a positive value in point units or as a vector of such values. As a vector, ArrowSize
specifies the size of the arrow for each edge in the graph. The default value of ArrowSize
is 7
for graphs with 100 or fewer nodes, and 4
for graphs with more than 100 nodes.
ArrowSize
only affects directed graphs.
Example: 15
Position of arrow along edge, specified as a value in the range [0 1]
or as a vector of such values with length equal to the number of edges. A value near 0 places arrows closer to the source node, and a value near 1 places arrows closer to the target node. The default value is 0.5
so that the arrows are halfway between the source and target nodes.
ArrowPosition
only affects directed graphs.
Toggle display of arrows on directed edges, specified as 'off'
or'on'
, or as numeric or logical 1
(true
) or 0
(false
). A value of'on'
is equivalent to true
, and'off'
is equivalent to false
. Thus, you can use the value of this property as a logical value. The value is stored as an on/off logical value of type matlab.lang.OnOffSwitchState.
For directed graphs the default value is 'on'
so that arrows are displayed, but you can specify a value of 'off'
to hide the arrows on the directed edges. For undirected graphs ShowArrows
is always'off'
.
Position
Note
XData
and YData
must be specified together so that each node has a valid (x,y) coordinate. Optionally, you can specify ZData
for 3-D coordinates.
x-coordinate of nodes, specified as a vector with length equal to the number of nodes in the graph.
Note
XData
and YData
must be specified together so that each node has a valid (x,y) coordinate. Optionally, you can specify ZData
for 3-D coordinates.
y-coordinate of nodes, specified as a vector with length equal to the number of nodes in the graph.
Note
XData
and YData
must be specified together so that each node has a valid (x,y) coordinate. Optionally, you can specify ZData
for 3-D coordinates.
z-coordinate of nodes, specified as a vector with length equal to the number of nodes in the graph.
Node and Edge Labels
Node labels, specified as a numeric vector or cell array of character vectors. The length of NodeLabel
must be equal to the number of nodes in the graph. By defaultNodeLabel
is a cell array containing the node IDs for the graph nodes:
- For nodes without names (that is,
G.Nodes
does not contain aName
variable), the node labels are the valuesunique(G.Edges.EndNodes)
contained in a cell array. - For named nodes, the node labels are
G.Nodes.Name'
.
Example: {'A', 'B', 'C'}
Example: [1 2 3]
Example: plot(G,'NodeLabel',G.Nodes.Name)
labels the nodes with their names.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| cell
Selection mode for node labels, specified as 'auto'
(default) or'manual'
. Specify NodeLabelMode
as'auto'
to populate NodeLabel
with the node IDs for the graph nodes (numeric node indices or node names). Specifying NodeLabelMode
as 'manual'
does not change the values inNodeLabel
.
Node label color, specified as one of these values:
- matrix — Each row is an RGB triplet representing the color of one node label. The size of the matrix is
numnodes(G)
-by-3
. - RGB triplet, hexadecimal color code, or color name — All node labels use the specified color.
RGB triplets and hexadecimal color codes are useful for specifying custom colors.- 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 character vector or a string scalar that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Thus, 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 Name Short Name RGB Triplet Hexadecimal Color Code Appearance "red" "r" [1 0 0] "#FF0000" "green" "g" [0 1 0] "#00FF00" "blue" "b" [0 0 1] "#0000FF" "cyan" "c" [0 1 1] "#00FFFF" "magenta" "m" [1 0 1] "#FF00FF" "yellow" "y" [1 1 0] "#FFFF00" "black" "k" [0 0 0] "#000000" "white" "w" [1 1 1] "#FFFFFF" This table lists the default color palettes for plots in the light and dark themes. Palette Palette Colors ----------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- "gem" — Light theme default_Before R2025a: Most plots use these colors by default._ "glow" — Dark theme default You can get the RGB triplets and hexadecimal color codes for these palettes using the orderedcolors and rgb2hex functions. For example, get the RGB triplets for the "gem"
palette and convert them to hexadecimal color codes.RGB = orderedcolors("gem"); H = rgb2hex(RGB); Before R2023b: Get the RGB triplets using RGB = get(groot,"FactoryAxesColorOrder")
.Before R2024a: Get the hexadecimal color codes using H = compose("#%02X%02X%02X",round(RGB*255))
.
- 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
Example: plot(G,'NodeLabel',C,'NodeLabelColor','m')
creates a graph plot with magenta node labels.
Edge labels, specified as a numeric vector or cell array of character vectors. The length of EdgeLabel
must be equal to the number of edges in the graph. By defaultEdgeLabel
is an empty cell array (no edge labels are displayed).
Example: {'A', 'B', 'C'}
Example: [1 2 3]
Example: plot(G,'EdgeLabels',G.Edges.Weight)
labels the graph edges with their weights.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| cell
Selection mode for edge labels, specified as 'manual'
(default) or'auto'
. Specify EdgeLabelMode
as'auto'
to populate EdgeLabel
with the edge weights inG.Edges.Weight
(if available), or the edge indicesG.Edges(k,:)
(if no weights are available). SpecifyingEdgeLabelMode
as 'manual'
does not change the values inEdgeLabel
.
Edge label color, specified as one of these values:
- matrix — Each row is an RGB triplet representing the color of one edge label. The size of the matrix is
numedges(G)
-by-3
. - RGB triplet, hexadecimal color code, or color name — All edge labels use the specified color.
RGB triplets and hexadecimal color codes are useful for specifying custom colors.- 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 character vector or a string scalar that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Thus, 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 Name Short Name RGB Triplet Hexadecimal Color Code Appearance "red" "r" [1 0 0] "#FF0000" "green" "g" [0 1 0] "#00FF00" "blue" "b" [0 0 1] "#0000FF" "cyan" "c" [0 1 1] "#00FFFF" "magenta" "m" [1 0 1] "#FF00FF" "yellow" "y" [1 1 0] "#FFFF00" "black" "k" [0 0 0] "#000000" "white" "w" [1 1 1] "#FFFFFF" This table lists the default color palettes for plots in the light and dark themes. Palette Palette Colors ----------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- "gem" — Light theme default_Before R2025a: Most plots use these colors by default._ "glow" — Dark theme default You can get the RGB triplets and hexadecimal color codes for these palettes using the orderedcolors and rgb2hex functions. For example, get the RGB triplets for the "gem"
palette and convert them to hexadecimal color codes.RGB = orderedcolors("gem"); H = rgb2hex(RGB); Before R2023b: Get the RGB triplets using RGB = get(groot,"FactoryAxesColorOrder")
.Before R2024a: Get the hexadecimal color codes using H = compose("#%02X%02X%02X",round(RGB*255))
.
- 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
Example: plot(G,'EdgeLabel',C,'EdgeLabelColor','m')
creates a graph plot with magenta edge labels.
Interpretation of text characters, specified as one of these values:
'tex'
— Interpret characters using a subset of TeX markup.'latex'
— Interpret characters using LaTeX markup.'none'
— Display literal characters.
TeX Markup
By default, MATLAB supports a subset of TeX markup. Use TeX markup to add superscripts and subscripts, modify the font type and color, and include special characters in the text.
Modifiers remain in effect until the end of the text. Superscripts and subscripts are an exception because they modify only the next character or the characters within the curly braces. When you set the interpreter to "tex"
, the supported modifiers are as follows.
Modifier | Description | Example |
---|---|---|
^{ } | Superscript | "text^{superscript}" |
_{ } | Subscript | "text_{subscript}" |
\bf | Bold font | "\bf text" |
\it | Italic font | "\it text" |
\sl | Oblique font (usually the same as italic font) | "\sl text" |
\rm | Normal font | "\rm text" |
\fontname{specifier} | Font name — Replace_specifier_ with the name of a font family. You can use this in combination with other modifiers. | "\fontname{Courier} text" |
\fontsize{specifier} | Font size —Replace_specifier_ with a numeric scalar value in point units. | "\fontsize{15} text" |
\color{specifier} | Font color — Replace_specifier_ with one of these colors: red, green,yellow, magenta,blue, black,white, gray,darkGreen, orange, orlightBlue. | "\color{magenta} text" |
\color[rgb]{specifier} | Custom font color — Replace_specifier_ with a three-element RGB triplet. | "\color[rgb]{0,0.5,0.5} text" |
This table lists the supported special characters for the"tex"
interpreter.
Character Sequence | Symbol | Character Sequence | Symbol | Character Sequence | Symbol |
---|---|---|---|---|---|
\alpha | α | \upsilon | υ | \sim | ~ |
\angle | ∠ | \phi | ϕ | \leq | ≤ |
\ast | * | \chi | χ | \infty | ∞ |
\beta | β | \psi | ψ | \clubsuit | ♣ |
\gamma | γ | \omega | ω | \diamondsuit | ♦ |
\delta | δ | \Gamma | Γ | \heartsuit | ♥ |
\epsilon | ϵ | \Delta | Δ | \spadesuit | ♠ |
\zeta | ζ | \Theta | Θ | \leftrightarrow | ↔ |
\eta | η | \Lambda | Λ | \leftarrow | ← |
\theta | θ | \Xi | Ξ | \Leftarrow | ⇐ |
\vartheta | ϑ | \Pi | Π | \uparrow | ↑ |
\iota | ι | \Sigma | Σ | \rightarrow | → |
\kappa | κ | \Upsilon | ϒ | \Rightarrow | ⇒ |
\lambda | λ | \Phi | Φ | \downarrow | ↓ |
\mu | µ | \Psi | Ψ | \circ | º |
\nu | ν | \Omega | Ω | \pm | ± |
\xi | ξ | \forall | ∀ | \geq | ≥ |
\pi | π | \exists | ∃ | \propto | ∝ |
\rho | ρ | \ni | ∍ | \partial | ∂ |
\sigma | σ | \cong | ≅ | \bullet | • |
\varsigma | ς | \approx | ≈ | \div | ÷ |
\tau | τ | \Re | ℜ | \neq | ≠ |
\equiv | ≡ | \oplus | ⊕ | \aleph | ℵ |
\Im | ℑ | \cup | ∪ | \wp | ℘ |
\otimes | ⊗ | \subseteq | ⊆ | \oslash | ∅ |
\cap | ∩ | \in | ∈ | \supseteq | ⊇ |
\supset | ⊃ | \lceil | ⌈ | \subset | ⊂ |
\int | ∫ | \cdot | · | \o | ο |
\rfloor | ⌋ | \neg | ¬ | \nabla | ∇ |
\lfloor | ⌊ | \times | x | \ldots | ... |
\perp | ⊥ | \surd | √ | \prime | ´ |
\wedge | ∧ | \varpi | ϖ | \0 | ∅ |
\rceil | ⌉ | \rangle | 〉 | \mid | | |
\vee | ∨ | \langle | 〈 | \copyright | © |
LaTeX Markup
To use LaTeX markup, set the Interpreter
property to'latex'
. Use dollar symbols around the text, for example, use'$\int_1^{20} x^2 dx$'
for inline mode or '$$\int_1^{20} x^2 dx$$'
for display mode.
The displayed text uses the default LaTeX font style. The FontName
,FontWeight
, and FontAngle
properties do not have an effect. To change the font style, use LaTeX markup.
The maximum size of the text that you can use with the LaTeX interpreter is 1200 characters.
For more information about the LaTeX system, see The LaTeX Project website at https://www.latex-project.org/.
Font
Font name for node labels, specified as a supported font name or'FixedWidth'
. For labels to display and print properly, you must choose a font that your system supports. The default font depends on the specific operating system and locale. For example, Windows® and Linux® systems in English localization use the Helvetica font by default.
To use a fixed-width font that looks good in any locale, specify'FixedWidth'
.
Example: 'Cambria'
Font size for node labels, specified as a positive number or a vector of positive numbers. If NodeFontSize
is a vector, then each element specifies the font size of one node label. The default font size depends on the specific operating system and locale.
Thickness of text in node labels, specified as 'normal'
,'bold'
, or as a string vector or cell array of character vectors specifying 'normal'
or 'bold'
for each node.
'bold'
— Thicker character outlines than normal'normal'
— Normal weight as defined by the particular font
Not all fonts have a bold font weight.
Data Types: cell
| char
| string
Character slant of text in node labels, specified as 'normal'
,'italic'
, or as a string vector or cell array of character vectors specifying 'normal'
or 'italic'
for each node.
'italic'
— Slanted characters'normal'
— No character slant
Not all fonts have both font styles.
Data Types: cell
| char
| string
Font name for edge labels, specified as a supported font name or'FixedWidth'
. For labels to display and print properly, you must choose a font that your system supports. The default font depends on the specific operating system and locale. For example, Windows and Linux systems in English localization use the Helvetica font by default.
To use a fixed-width font that looks good in any locale, specify'FixedWidth'
.
Example: 'Cambria'
Font size for edge labels, specified as a positive number or a vector of positive numbers. If EdgeFontSize
is a vector, then each element specifies the font size of one edge label. The default font size depends on the specific operating system and locale.
Thickness of text in edge labels, specified as 'normal'
,'bold'
, or as a string vector or cell array of character vectors specifying 'normal'
or 'bold'
for each edge.
'bold'
— Thicker character outlines than normal'normal'
— Normal weight as defined by the particular font
Not all fonts have a bold font weight.
Data Types: cell
| char
| string
Character slant of text in edge labels, specified as 'normal'
,'italic'
, or as a string vector or cell array of character vectors specifying 'normal'
or 'italic'
for each edge.
'italic'
— Slanted characters'normal'
— No character slant
Not all fonts have both font styles.
Data Types: cell
| char
| string
Legend
Text used by the legend, specified as a character vector. The text appears next to an icon of the GraphPlot.
Example: 'Text Description'
For multiline text, create the character vector using sprintf
with the new line character \n
.
Example: sprintf('line one\nline two')
Alternatively, you can specify the legend text using the legend function.
- If you specify the text as an input argument to the legend function, then the legend uses the specified text and sets the
DisplayName
property to the same value. - If you do not specify the text as an input argument to the legend function, then the legend uses the text in the
DisplayName
property. If theDisplayName
property does not contain any text, then the legend generates a character vector. The character vector has the form'dataN'
, whereN
is the number assigned to the GraphPlot object based on its location in the list of legend entries.
If you edit interactively the character vector in an existing legend, then MATLAB updates the DisplayName
property to the edited character vector.
This property is read-only.
Legend icon display style, returned as an Annotation
object. Use this object to include or exclude the GraphPlot from a legend.
- Query the
Annotation
property to get theAnnotation
object. - Query the
LegendInformation
property of theAnnotation
object to get theLegendEntry
object. - Specify the
IconDisplayStyle
property of theLegendEntry
object to one of these values:'on'
— Include the GraphPlot object in the legend as one entry (default).'off'
— Do not include the GraphPlot object in the legend.'children'
— Include only children of the GraphPlot object as separate entries in the legend.
If a legend already exists and you change theIconDisplayStyle
setting, then you must call legend
to update the display.
Interactivity
Data tip content, specified as a DataTipTemplate
object. You can control the content that appears in a data tip by modifying the properties of the underlying DataTipTemplate
object. For a list of properties, seeDataTipTemplate Properties.
For an example of modifying data tips, see Create Custom Data Tips.
Note
The DataTipTemplate
object is not returned byfindobj
or findall
, and it is not copied by copyobj
.
Callbacks
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 GraphPlot. If you specify this property using a function handle, then MATLAB passes two arguments to the callback function when executing the callback:
- The GraphPlot object — You can access properties of the GraphPlot object from within the callback function.
- Event data — This argument is empty for this property. 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 Create Callbacks for Graphics Objects.
Note
If the PickableParts
property is set to 'none'
or if the HitTest
property is set to 'off'
, then this callback does not execute.
Example: @myCallback
Example: {@myCallback,arg3}
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 GraphPlot. Setting the CreateFcn
property on an existing GraphPlot has no effect. You must define a default value for this property, or define this property using a Name,Value
pair during GraphPlot creation. MATLAB executes the callback after creating the GraphPlot and setting all of its properties.
If you specify this callback using a function handle, then MATLAB passes two arguments to the callback function when executing the callback:
- The GraphPlot object — You can access properties of the GraphPlot object from within the callback function. You also can access the GraphPlot object through the
CallbackObject
property of the root, which can be queried using thegcbo
function. - Event data — This argument is empty for this property. 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 Create Callbacks for Graphics Objects.
Example: @myCallback
Example: {@myCallback,arg3}
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 GraphPlot. MATLAB executes the callback before destroying the GraphPlot 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:
- The GraphPlot object — You can access properties of the GraphPlot object from within the callback function. You also can access the GraphPlot object through the
CallbackObject
property of the root, which can be queried using thegcbo
function. - Event data — This argument is empty for this property. 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 Create Callbacks for Graphics Objects.
Example: @myCallback
Example: {@myCallback,arg3}
Callback Execution Control
Callback queuing specified as 'queue'
or 'cancel'
. The BusyAction
property determines how MATLAB handles the execution of interrupting callbacks.
Note
There are two callback states to consider:
- 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. TheInterruptible
property of the object owning the running callback determines if interruption is allowed. If interruption is not allowed, then theBusyAction
property of the object owning the interrupting callback determines if it is discarded or put in the queue.
If the ButtonDownFcn
callback of the GraphPlot tries to interrupt a running callback that cannot be interrupted, then theBusyAction
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. This is the default behavior.'cancel'
— Discard the interrupting callback.
Ability to capture mouse clicks, specified as one of these values:
'visible'
— Can capture mouse clicks only when visible. TheVisible
property must be set to'on'
. TheHitTest
property determines if the GraphPlot responds to the click or if an ancestor does.'none'
— Cannot capture mouse clicks. Clicking the GraphPlot passes the click to the object below it in the current view of the figure window. TheHitTest
property of the GraphPlot has no effect.
This property is read-only.
Parent/Child
Parent of GraphPlot, specified as an axes, group, or transform object.
Visibility of GraphPlot object handle in theChildren
property of the parent, specified as one of these values:
'on'
— The GraphPlot object handle is always visible.'off'
— The GraphPlot object handle is invisible at all times. This option is useful for preventing unintended changes to the UI by another function. Set theHandleVisibility
to'off'
to temporarily hide the handle during the execution of that function.'callback'
— The GraphPlot 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 GraphPlot at the command-line, but allows callback functions to access it.
If the GraphPlot object is not listed in theChildren
property of the parent, then functions that obtain object handles by searching the object hierarchy or querying handle properties cannot return it. This includes get, findobj, gca, gcf, gco, newplot, cla, clf, and close.
Hidden object handles are still valid. Set the rootShowHiddenHandles
property to 'on'
to list all object handles regardless of their HandleVisibility
property setting.
Identifiers
This property is read-only.
Type of graphics object, returned as 'graphplot'
. Use this property to find all objects of a given type within a plotting hierarchy, such as searching for the type using findobj.
Tag to associate with the GraphPlot, specified as a character vector. Tags provide a way to identify graphics objects. Use this property to find all objects with a specific tag within a plotting hierarchy, for example, searching for the tag using findobj.
Example: 'January Data'
Data Types: char
Data to associate with the GraphPlot object, specified as 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 thegetappdata and setappdata functions.
Example: 1:100
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| struct
| table
| cell
Version History
Introduced in R2015b
Opt out of automatic color selection for GraphPlot
objects by setting theSeriesIndex
property to "none"
. When you specify"none"
, the GraphPlot
object has a neutral color.
To enable automatic color selection again, set the SeriesIndex
property to a positive whole number.
Control how GraphPlot
objects vary in color by setting theSeriesIndex
property. This property is useful when you want to match the colors of different objects in the axes.
Starting in R2020a, using the UIContextMenu
property to assign a context menu to a graphics object or UI component is not recommended. Use theContextMenu
property instead. The property values are the same.
There are no plans to remove support for the UIContextMenu
property at this time. However, the UIContextMenu
property no longer appears in the list returned by calling the get
function on a graphics object or UI component.