Main Content

DoubleEndArrow

Double-ended arrow annotation on figure

  • Double-ended arrow annotation

Description

Draw a double-ended arrow annotation anywhere on a figure. Set properties of a DoubleEndArrow object to control its appearance.

Creation

Create a double-ended arrow annotation on a figure using the annotation function.

annotation("doublearrow")

Alternatively, create a double-ended arrow annotation by clicking the figure and selecting Double Arrow in the gallery on the Figure tab.

Properties

expand all

Color and Styling

Arrow color, specified as an RGB triplet, hexadecimal color code, a color name, or a short name. The default RGB triplet value of [0 0 0] corresponds to black.

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

This table lists the default color palettes for plots in the light and dark themes.

PalettePalette Colors

"gem" — Light theme default

Before R2025a: Most plots use these colors by default.

Sample of the "gem" color palette

"glow" — Dark theme default

Sample of the "glow" color palette

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

Example: "blue"

Example: [0 0 1]

Example: "#0000FF"

Style of arrow stem, specified as one of the line styles 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

Width of arrow stem, specified as a positive value in point units. One point equals 1/72 inch.

Example: 0.75

Style of the first arrowhead, specified as one of the head style options in this table. The first arrowhead is located at the point (x_begin,y_begin) determined by the X and Y properties.

StyleResultStyleResult
"plain"

Sample of plain arrowhead

"fourstar"

Sample of fourstar arrowhead

"ellipse"

Sample of ellipse arrowhead

"rectangle"

Sample of rectangle arrowhead

"vback1"

Sample of vback1 arrowhead

"diamond"

Sample of diamond arrowhead

"vback2" (default)

Sample of vback2 arrowhead

"rose"

Sample of rose arrowhead

"vback3"

Sample of vback3 arrowhead

"hypocycloid"

Sample of hypocycloid arrowhead

"cback1"

Sample of cback1 arrowhead

"astroid"

Sample of astroid arrowhead

"cback2"

Sample of cback2 arrowhead

"deltoid"

Sample of deltoid arrowhead

"cback3"

Sample of cback3 arrowhead

"none"No arrowhead

Style of the second arrowhead, specified as one of the head style options in this table. The second arrowhead is located at the point (x_end,y_end) determined by the X and Y properties.

StyleResultStyleResult
"plain"

Sample of plain arrowhead

"fourstar"

Sample of fourstar arrowhead

"ellipse"

Sample of ellipse arrowhead

"rectangle"

Sample of rectangle arrowhead

"vback1"

Sample of vback1 arrowhead

"diamond"

Sample of diamond arrowhead

"vback2" (default)

Sample of vback2 arrowhead

"rose"

Sample of rose arrowhead

"vback3"

Sample of vback3 arrowhead

"hypocycloid"

Sample of hypocycloid arrowhead

"cback1"

Sample of cback1 arrowhead

"astroid"

Sample of astroid arrowhead

"cback2"

Sample of cback2 arrowhead

"deltoid"

Sample of deltoid arrowhead

"cback3"

Sample of cback3 arrowhead

"none"No arrowhead

Length of the first arrowhead, specified as a scalar numeric value in point units. One point equals 1/72 inch. The first arrowhead extends backward from the point (x_begin,y_begin) determined by the X and Y properties.

Example: 15

Length of the second arrowhead, specified as a scalar numeric value in point units. One point equals 1/72 inch. The second arrowhead extends backward from the point (x_end,y_end) determined by the X and Y properties.

Example: 15

Width of the first arrowhead, specified as a scalar numeric value in point units. One point equals 1/72 inch. The first arrowhead is located at the point (x_begin,y_begin) determined by the X and Y properties.

Example: 15

Width of the second arrowhead, specified as a scalar numeric value in point units. One point equals 1/72 inch. The second arrowhead is located at the point (x_end,y_end) determined by the X and Y properties.

Example: 15

Position

Beginning and ending x-coordinates, specified as a two-element vector of the form [x_begin x_end].

By default, the units are normalized to the figure. The lower-left corner of the figure maps to (0,0) and the upper-right corner maps to (1,1). To change the units, use the Units property.

Example: [0.2 0.3]

Beginning and ending y-coordinates, specified as a two-element vector of the form [y_begin y_end].

By default, the units are normalized to the figure. The lower-left corner of the figure maps to (0,0) and the upper-right corner maps to (1,1). To change the units, use the Units property.

Example: [0.2 0.3]

Size and location, specified as a four-element vector of the form [x_begin y_begin dx dy]. The first two elements specify the coordinates for the beginning of the arrow. The second two elements specify the slope of the arrow.

By default, the units are normalized to the figure. The lower-left corner of the figure maps to (0,0) and the upper-right corner maps to (1,1). To change the units, use the Units property.

Example: [0.5 0.5 0.2 0.3]

Position units, specified as one of the values in this table.

UnitsDescription
"normalized" (default)Normalized with respect to the figure, uipanel, or uitab that contains the annotation. The lower-left corner of the container maps to (0,0) and the upper-right corner maps to (1,1).
"inches"Inches.
"centimeters"Centimeters.
"characters"

Based on the default system font character size.

  • Character width = width of letter x.

  • Character height = distance between the baselines of two lines of text.

"points"Points. One point equals 1/72 inch.
"pixels"

Pixels.

On Windows® and Macintosh systems, the size of a pixel is 1/96th of an inch. This size is independent of your system resolution.

On Linux® systems, the size of a pixel is determined by your system resolution.

All units are measured from the lower-left corner of the figure window.

This property affects the Position property. If you change the units, then it is good practice to return it to the default value after completing your computation to prevent affecting other functions that assume Units is set to the default value.

If you specify the Position and Units properties using name-value arguments when creating the object, then the order of specification matters. If you want to define the position with particular units, then you must set the Units property before the Position property.

Examples

collapse all

Create a double-ended arrow annotation on a figure. Specify the horizontal range of the arrow stem using the form [x_begin x_end] and vertical range of the arrow stem using the form [y_begin y_end]. By default, the units are normalized to the figure. So, the lower-left corner of the figure maps to (0,0) and the upper-right corner maps to (1,1).

x = linspace(0,4*pi);
y = sin(x);
plot(x,y)
axis padded

xint = [0.26 0.61];
yint = [0.88 0.88];
annotation("doublearrow",xint,yint);

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

Create a double-ended arrow annotation on a figure. Customize the double-ended arrow annotation by setting the line style and line width.

x = linspace(0,4*pi);
y = sin(x);
plot(x,y)
axis padded

xint = [0.26 0.61];
yint = [0.88 0.88];
an = annotation("doublearrow",xint,yint);

an.LineStyle = "--";
an.LineWidth = 2;

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

Create a double-ended arrow annotation on a figure. Change the head styles to be rectangles and make the rectangle arrowheads thin.

x = linspace(-pi/2,pi/2);
y1 = sin(x);
plot(x,y1)
hold on
y2 = cos(x);
plot(x,y2)
hold off

xint1 = [0.21 0.21];
yint1 = [0.52 0.11];
an1 = annotation("doublearrow",xint1,yint1);
an1.Head1Style = "rectangle";
an1.Head2Style = "rectangle";
an1.Head1Length = 2;
an1.Head2Length = 2;

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

Create a second double-ended arrow annotation on the same figure. Use the same arrowhead style and length as in the first annotation.

xint2 = [0.82 0.82];
yint2 = [0.52 0.92];
an2 = annotation("doublearrow",xint2,yint2);

an2.Head1Style = "rectangle";
an2.Head2Style = "rectangle";
an2.Head1Length = 2;
an2.Head2Length = 2;

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

Version History

Introduced before R2006a