# UIAxes Properties

UI axes appearance and behavior

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

ax = uiaxes; c = ax.Color; ax.Color = 'blue';

The properties listed here are valid for axes in App Designer, or in figures created with the uifigure function. For axes used in GUIDE, or in apps created with the figure function, see Axes Properties.

## Font

expand all

Font name, specified as a system supported font name. The default font depends on the specific operating system and locale.

If the specified font is not available, then MATLAB® uses the best match among the fonts available on the system where the app is running.

Example: 'Arial'

Font size, specified as a scalar numeric value. The font size affects the title, axis labels, and tick labels. It also affects any legends or colorbars associated with the axes. The units of measurement are pixels. The default font size depends on the specific operating system and locale.

MATLAB automatically scales some of the text to a percentage of the axes font size.

• Titles and axis labels — 110% of the axes font size by default. To control the scaling, use the TitleFontSizeMultiplier and LabelFontSizeMultiplier properties.

• Legends and colorbars — 90% of the axes font size by default. To specify a different font size, set the FontSize property for the Legend or Colorbar object instead.

Example: ax.FontSize = 12

Character thickness, specified as 'normal' or 'bold'.

MATLAB uses the FontWeight property to select a font from those available on your system. Not all fonts have a bold weight. Therefore, specifying a bold font weight can still result in the normal font weight.

Character slant, specified as 'normal' or 'italic'.

Not all fonts have both font styles. Therefore, the italic font might look the same as the normal font.

Scale factor for the label font size, specified as a numeric value greater than 0. The scale factor is applied to the value of the FontSize property to determine the font size for the x-axis, y-axis, and z-axis labels.

Example: ax.LabelFontSizeMultiplier = 1.5

Scale factor for the title font size, specified as a numeric value greater than 0. The scale factor is applied to the value of the FontSize property to determine the font size for the title.

Example: ax.TitleFontSizeMultiplier = 1.75

Title character thickness, specified as one of these values:

• 'bold' — Thicker characters outlines than normal

• 'normal' — Default weight as defined by the particular font

Example: ax.TitleFontWeight = 'normal'

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

UnitsDescription
'points'Points. One point equals 1/72 inch.
'inches'Inches.
'centimeters'Centimeters.
'normalized' Interpret font size as a fraction of the axes height. If you resize the axes, the font size modifies accordingly. For example, if the FontSize is 0.1 in normalized units, then the text is 1/10 of the height value stored in the axes Position property.
'pixels'

Pixels.

Starting in R2015b, distances in pixels are independent of your system resolution on Windows® and Macintosh systems.

• On Windows systems, a pixel is 1/96th of an inch.

• On Macintosh systems, a pixel is 1/72nd of an inch.

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

To set both the font size and the font units in a single function call, you first must set the FontUnits property so that the UIAxes object correctly interprets the specified font size.

Character smoothing, specified as 'on' or 'off'.

ValueDescriptionResult
'on'

Use antialiasing to make text appear smoother on the screen.

Example: ax.FontSmoothing = 'on'

'off'

Do not use antialiasing. Use this setting if the text seems blurry.

Example: ax.FontSmoothing = 'off'

## Ticks

expand all

Tick values, specified as a vector of increasing values. If you do not want tick marks along the axis, then specify an empty vector []. The tick values are the locations along the axis where the tick marks appear. The tick labels are the labels that you see next to each tick mark. Use the XTickLabels, YTickLabels, and ZTickLabels properties to specify the associated labels.

Example: ax.XTick = [2 4 6 8 10]

Example: ax.YTick = 0:10:100

Alternatively, use the xticks, yticks, and zticks functions to specify the tick values. For an example, see Specify Axis Tick Values and Labels.

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

Selection mode for the tick values, specified as one of these values:

• 'auto' — Automatically select the tick values based on the range of data for the axis.

• 'manual' — Manually specify the tick values. To specify the values, set the XTick, YTick, or ZTick property.

Example: ax.XTickMode = 'auto'

Tick labels, specified as a cell array of character vectors, string array, or categorical array. If you do not want tick labels to show, then specify an empty cell array {}. If you do not specify enough labels for all the ticks values, then the labels repeat.

Tick labels support TeX and LaTeX markup. See the TickLabelInterpreter property for more information.

If you specify this property as a categorical array, MATLAB uses the values in the array, not the categories.

As an alternative to setting this property, you can use the xticklabels, yticklabels, and zticklabels functions. For an example, see Specify Axis Tick Values and Labels.

Example: ax.XTickLabel = {'Jan','Feb','Mar','Apr'}

Selection mode for the tick labels, specified as one of these values:

• 'auto' — Automatically select the tick labels.

• 'manual' — Manually specify the tick labels. To specify the labels, set the XTickLabel, YTickLabel, or ZTickLabel property.

Example: ax.XTickLabelMode = 'auto'

Tick label interpretation, specified as one of these values:

• 'tex' — Interpret labels using a subset of TeX markup.

• 'latex' — Interpret labels using a subset of 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 text type and color, and include special characters in the text.

The table that follows lists the supported modifiers when the TickLabelInterpreter property is set to 'tex', which is the default value. Modifiers remain in effect until the end of the text, except for superscripts and subscripts which only modify the next character or the text within the curly braces {}.

ModifierDescriptionExample
^{ }Superscript'text^{superscript}'
_{ }Subscript'text_{subscript}'
\bfBold font'\bf text'
\itItalic font'\it text'
\slOblique font (rarely available)'\sl text'
\rmNormal font'\rm text'
\fontname{specifier}Set specifier as the name of a font family to change the font style. You can use this with other modifiers.'\fontname{Courier} text'
\fontsize{specifier}Set specifier as a scalar numeric value to change the font size.'\fontsize{15} text'
\color{specifier}Set specifer as one of these colors: red, green, yellow, magenta, blue, black, white, gray, darkGreen, orange, or lightBlue.'\color{magenta} text'
\color[rgb]{specifier}Set specifier as a three-element RGB triplet to change the font color.'\color[rgb]{0,0.5,0.5} text'

This table lists the supported special characters with the Interpreter property set to 'tex'.

Character SequenceSymbolCharacter SequenceSymbolCharacter SequenceSymbol

\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 TickLabelInterpreter 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. To change the font style, use LaTeX markup within the text. The FontName, FontWeight, and FontAngle properties have no effect.

The maximum size of the text that you can use with the LaTeX interpreter is 1200 characters. For multiline text, this limit reduces by about 10 characters per line. For more information about the LaTeX system, see The LaTeX Project website at www.latex-project.org.

Tick label rotation, specified as a numeric value in degrees. Positive values give counterclockwise rotation. Negative values give clockwise rotation.

Example: ax.XTickLabelRotation = 45

Example: ax.YTickLabelRotation = 90

Alternatively, use the xtickangle, ytickangle, and ztickangle functions.

Minor tick marks, specified as one of these values:

• 'off' — Do not display minor tick marks. This value is the default for an axis with a linear scale.

• 'on' — Display minor tick marks between the major tick marks on the axis. The space between the major tick marks determines the number of minor tick marks. This value is the default for an axis with a log scale.

Example: ax.XMinorTick = 'on'

Tick mark direction, specified as one of these values:

• 'in' — Direct the tick marks inward from the axis lines. (Default for 2-D views)

• 'out' — Direct the tick marks outward from the axis lines. (Default for 3-D views)

• 'both' — Center the tick marks over the axis lines.

Example: ax.TickDir = 'out'

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

• 'auto' — Automatically select the tick direction based on the current view.

• 'manual' — Manually specify the tick direction. To specify the tick direction, set the TickDir property.

Example: ax.TickDirMode = 'auto'

Tick mark length, specified as a two-element vector of the form [2Dlength 3Dlength]. The first element is the tick mark length in 2-D views and the second element is the tick mark length in 3-D views. Specify the values in units normalized relative to the longest of the visible x-axis, y-axis, or z-axis lines.

Example: ax.TickLength = [0.02 0.035]

## Rulers

expand all

Minimum and maximum limits, specified as a two-element vector of the form [min max], where max is greater than min. You can specify the limits as numeric, categorical, datetime, or duration values. However, the type of values that you specify must match the type of values along the axis.

You can specify both limits or you can specify one limit and let the axes automatically calculate the other. For an automatically calculated minimum or maximum limit, use -inf or inf, respectively.

Example: ax.XLim = [0 10]

Example: ax.YLim = [-inf 10]

Example: ax.ZLim = [0 inf]

Alternatively, use the xlim, ylim, and zlim functions to set the limits. For an example, see Specify Axis Limits.

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

Selection mode for the axis limits, specified as one of these values:

• 'auto' — Automatically select the axis limits based on the data plotted, which is, the total span of the XData, YData, or ZData of all the objects displayed in the axes.

• 'manual' — Manually specify the axis limits. To specify the axis limits, set the XLim, YLim, or ZLim property.

Example: ax.XLimMode = 'auto'

Axis ruler, returned as a ruler object. The ruler controls the appearance and behavior of the x-axis, y-axis, or z-axis. Modify the appearance and behavior of a particular axis by accessing the associated ruler and setting ruler properties. The type of ruler that MATLAB creates for each axis depends on the plotted data. For a list of ruler properties, see:

For example, access the ruler for the x-axis through the XAxis property. Then, change the Color property of the ruler, and thus the color of the x-axis, to red. Similarly, change the color of the y-axis to green.

ax = gca; ax.XAxis.Color = 'r'; ax.YAxis.Color = 'g';
If the Axes object has two y-axes, then the YAxis property stores two ruler objects.

x-axis location, specified as one of the values in this table. This property applies only to 2-D views.

ValueDescriptionResult
'bottom'

Bottom of the axes.

Example: ax.XAxisLocation = 'bottom'

'top'

Top of the axes.

Example: ax.XAxisLocation = 'top'

'origin'

Through the origin point (0,0).

Example: ax.XAxisLocation = 'origin'

y-axis location, specified as one of the values in this table. This property applies only to 2-D views.

ValueDescriptionResult
'left'

Left side of the axes.

Example: ax.YAxisLocation = 'left'

'right'

Right side of the axes.

Example: ax.YAxisLocation = 'right'

'origin'

Through the origin point (0,0).

Example: ax.YAxisLocation = 'origin'

Color of the axis line, tick values, and labels in the x, y, or z direction, specified as an RGB triplet, a hexadecimal color code, a color name, or a short name. The color also affects the grid lines, unless you specify the grid line color using the GridColor or MinorGridColor property.

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 character vector or a string scalar 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. 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 NameShort NameRGB TripletHexadecimal Color CodeAppearance
'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'

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

[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Example: ax.XColor = [1 1 0]

Example: ax.YColor = 'yellow'

Example: ax.ZColor = '#FFFF00'

Property for setting the x-axis grid color, specified as 'auto' or 'manual'. The mode value only affects the x-axis grid color. The x-axis line, tick values, and labels always use the XColor value, regardless of the mode.

The x-axis grid color depends on both the XColorMode property and the GridColorMode property, as shown here.

XColorModeGridColorModex-Axis Grid Color
'auto''auto'GridColor property
'manual'GridColor property
'manual''auto'XColor property
'manual'GridColor property

The x-axis minor grid color depends on both the XColorMode property and the MinorGridColorMode property, as shown here.

XColorModeMinorGridColorModex-Axis Minor Grid Color
'auto''auto'MinorGridColor property
'manual'MinorGridColor property
'manual''auto'XColor property
'manual'MinorGridColor property

Property for setting the y-axis grid color, specified as 'auto' or 'manual'. The mode value only affects the y-axis grid color. The y-axis line, tick values, and labels always use the YColor value, regardless of the mode.

The y-axis grid color depends on both the YColorMode property and the GridColorMode property, as shown here.

YColorModeGridColorModey-Axis Grid Color
'auto''auto'GridColor property
'manual'GridColor property
'manual''auto'YColor property
'manual'GridColor property

The y-axis minor grid color depends on both the YColorMode property and the MinorGridColorMode property, as shown here.

YColorModeMinorGridColorModey-Axis Minor Grid Color
'auto''auto'MinorGridColor property
'manual'MinorGridColor property
'manual''auto'YColor property
'manual'MinorGridColor property

Property for setting the z-axis grid color, specified as 'auto' or 'manual'. The mode value only affects the z-axis grid color. The z-axis line, tick values, and labels always use the ZColor value, regardless of the mode.

The z-axis grid color depends on both the ZColorMode property and the GridColorMode property, as shown here.

ZColorModeGridColorModez-Axis Grid Color
'auto''auto'GridColor property
'manual'GridColor property
'manual''auto'ZColor property
'manual'GridColor property

The z-axis minor grid color depends on both the ZColorMode property and the MinorGridColorMode property, as shown here.

ZColorModeMinorGridColorModez-Axis Minor Grid Color
'auto''auto'MinorGridColor property
'manual'MinorGridColor property
'manual''auto'ZColor property
'manual'MinorGridColor property

x-axis direction, specified as one of these values.

ValueDescriptionResult in 2-DResult in 3-D
'normal'

Values increase from left to right.

Example: ax.XDir = 'normal'

'reverse'

Values increase from right to left.

Example: ax.XDir = 'reverse'

y-axis direction, specified as one of these values.

ValueDescriptionResult in 2-DResult in 3-D
'normal'

Values increase from bottom to top (2-D view) or front to back (3-D view).

Example: ax.YDir = 'normal'

'reverse'

Values increase from top to bottom (2-D view) or back to front (3-D view).

Example: ax.YDir = 'reverse'

z-axis direction, specified as one of these values.

ValueDescriptionResult in 3-D
'normal'

Values increase pointing out of the screen (2-D view) or from bottom to top (3-D view).

Example: ax.ZDir = 'normal'

'reverse'

Values increase pointing into the screen (2-D view) or from top to bottom (3-D view).

Example: ax.ZDir = 'reverse'

Axis scale, specified as one of these values.

ValueDescriptionResult
'linear'

Linear scale

Example: ax.XScale = 'linear'

'log'

Log scale

Example: ax.XScale = 'log'

## Grids

expand all

Grid lines, specified as one of these values:

• 'off' — Do not display the grid lines.

• 'on' — Display grid lines perpendicular to the axis; for example, along lines of constant x, y, or z values.

Alternatively, use the grid on or grid off command to set all three properties to 'on' or 'off', respectively. For more information, see grid.

Example: ax.XGrid = 'on'

Placement of grid lines and tick marks in relation to graphic objects, specified as one of these values:

• 'bottom' — Display tick marks and grid lines under graphics objects.

• 'top' — Display tick marks and grid lines over graphics objects.

This property affects only 2-D views.

Example: ax.Layer = 'top'

Line style for grid lines, specified as one of the line styles in this table.

Line StyleDescriptionResulting Line
'-'Solid line

'--'Dashed line

':'Dotted line

'-.'Dash-dotted line

'none'No lineNo line

To display the grid lines, use the grid on command or set the XGrid, YGrid, or ZGrid property to 'on'.

Example: ax.GridLineStyle = '--'

Color of grid lines, 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 character vector or a string scalar 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. 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 NameShort NameRGB TripletHexadecimal Color CodeAppearance
'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'

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

[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

To set the colors for the axes box outline, use the XColor, YColor, and ZColor properties.

To display the grid lines, use the grid on command or set the XGrid, YGrid, or ZGrid property to 'on'.

Example: ax.GridColor = [0 0 1]

Example: ax.GridColor = 'blue'

Example: ax.GridColor = '#0000FF'

Property for setting the grid color, specified as one of these values:

• 'auto' — Check the values of the XColorMode, YColorMode, and ZColorMode properties to determine the grid line colors for the x, y, and z directions.

• 'manual' — Use GridColor to set the grid line color for all directions.

Grid-line transparency, specified as a value in the range [0,1]. A value of 1 means opaque and a value of 0 means completely transparent.

Example: ax.GridAlpha = 0.5

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

• 'auto' — Default transparency value of 0.15.

• 'manual' — Manually specify the transparency value. To specify the value, set the GridAlpha property.

Example: ax.GridAlphaMode = 'auto'

Minor grid lines, specified as one of these values:

• 'off' — Do not display grid lines.

• 'on' — Display grid lines aligned with the minor tick marks of the axis. You do not need to enable minor ticks to display minor grid lines.

Alternatively, use the grid minor command to toggle the visibility of the minor grid lines.

Example: ax.XMinorGrid = 'on'

Line style for minor grid lines, specified as one of the line styles shown in this table.

Line StyleDescriptionResulting Line
'-'Solid line

'--'Dashed line

':'Dotted line

'-.'Dash-dotted line

'none'No lineNo line

To display minor grid lines, use the grid minor command or set the XMinorGrid, YMinorGrid, or ZMinorGrid property to 'on'.

Example: ax.MinorGridLineStyle = '-.'

Color of minor grid lines, 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 character vector or a string scalar 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. 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 NameShort NameRGB TripletHexadecimal Color CodeAppearance
'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'

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

[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

To display minor grid lines, use the grid minor command or set the XMinorGrid, YMinorGrid, or ZMinorGrid property to 'on'.

Example: ax.MinorGridColor = [0 0 1]

Example: ax.MinorGridColor = 'blue'

Example: ax.MinorGridColor = '#0000FF'

Property for setting the minor grid color, specified as one of these values:

• 'auto' — Check the values of the XColorMode, YColorMode, and ZColorMode properties to determine the grid line colors for the x, y, and z directions.

• 'manual' — Use MinorGridColor to set the minor grid line color for all directions.

Minor grid line transparency, specified as a value in the range [0,1]. A value of 1 means opaque and a value of 0 means completely transparent.

Example: ax.MinorGridAlpha = 0.5

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

• 'auto' — Default transparency value of 0.25.

• 'manual' — Manually specify the transparency value. To specify the value, set the MinorGridAlpha property.

Example: ax.MinorGridAlphaMode = 'auto'

## Labels

expand all

Text object for axes title. To add a title, set the String property of the text object. To change the title appearance, such as the font style or color, set other properties. For a complete list, see Text Properties.

ax = uiaxes; ax.Title.String = 'My Graph Title'; ax.Title.FontWeight = 'normal';

Alternatively, use the title function to add a title and control the appearance.

title(ax,'My Title','FontWeight','normal')

Text object for axis label. To add an axis label, set the String property of the text object. To change the label appearance, such as the font size, set other properties. For a complete list, see Text Properties.

ax = uiaxes; ax.YLabel.String = 'y-Axis Label'; ax.YLabel.FontSize = 12;

Alternatively, use the xlabel, ylabel, and zlabel functions to add an axis label and control the appearance.

ylabel(ax,'My y-Axis Label','FontSize',12)

Legend associated with the UIAxes object, specified as a Legend object. To add a legend to the axes, use the legend function. Then, you can use this property to modify the legend. For a complete list of properties, see Legend Properties.

ax = uiaxes; ax.Legend.TextColor = 'red';

You also can use this property to determine if the axes has a legend.

ax = uiaxes; lgd = ax.Legend if ~isempty(lgd) disp('Legend Exists') end

## Multiple Plots

expand all

Color order, specified as a three-column matrix of RGB triplets. This property defines the palette of colors MATLAB uses to create plot objects such as Line, Scatter, and Bar objects. Each row of the array is an RGB triplet. An RGB triplet is a three-element vector whose elements specify the intensities of the red, green, and blue components of a color. The intensities must be in the range [0, 1]. This table lists the default colors.

ColorsColorOrder Matrix

 [ 0 0.4470 0.7410 0.8500 0.3250 0.0980 0.9290 0.6940 0.1250 0.4940 0.1840 0.5560 0.4660 0.6740 0.1880 0.3010 0.7450 0.9330 0.6350 0.0780 0.1840]

MATLAB assigns colors to objects according to their order of creation. For example, when plotting lines, the first line uses the first color, the second line uses the second color, and so on. If there are more lines than colors, then the cycle repeats.

#### Changing the Color Order Before or After Plotting

Starting in R2019b, you can change the color order in either of the following ways:

• Call the colororder function to change the color order for all the axes in a figure. The colors of existing plots in the figure update immediately. If you place additional axes into the figure, those axes also use the new color order. If you continue to call plotting commands, those commands also use the new colors.

• Set the ColorOrder property on the axes, call the hold function to set the axes hold state to 'on', and then call the desired plotting functions. This is like calling the colororder function, but in this case you are setting the color order for the specific axes, not the entire figure. Setting the hold state to 'on' is necessary to ensure that subsequent plotting commands do not reset the axes to use the default color order.

If you are using R2019a or an earlier release, changing the color order matrix does not affect existing plots. To change colors in an existing plot, you must set the ColorOrder property, and then set the axes hold state to 'on' before calling any plotting functions.

The behavior of this property changed in R2019b. For more information, see:

Color order index, specified as a positive integer. This property specifies the next color MATLAB selects from the axes ColorOrder property when it creates the next plot object such as a Line, Scatter, or Bar object. For example, if the color order index value is 1, then the next object added to the axes uses the first color in the ColorOrder matrix. If the index value exceeds the number of colors in the ColorOrder matrix, then the index value modulo of the number of colors in the ColorOrder matrix determines the color of the next object.

When the NextPlot property of the axes is set to 'add', then the color order index value increases every time you add a new plot to the axes. To start again with first color, set the ColorOrderIndex property to 1.

The behavior of this property changed in R2019b. For more information, see Indexing scheme for ColorOrder and LineStyleOrder might change plot colors and line styles.

Line style order, specified as a character vector, a cell array of character vectors, or a string array. This property lists the line styles that MATLAB uses to display multiple plot lines in the axes. MATLAB assigns styles to lines according to their order of creation. It changes to the next line style only after cycling through all the colors in the ColorOrder property with the current line style. The default LineStyleOrder has only one line style, '-'.

To customize the line style order, create a cell array of character vectors or a string array. Specify each element of the array as a line specifier or marker specifier from the following tables. You can combine a line and a marker specifier into a single element, such as '-*'.

Line SpecifierDescription
'-' (default) Solid line
'--'Dashed line
':'Dotted line
'-.'Dash-dotted line

Marker SpecifierDescription
'+'Plus sign markers
'o'Circle markers
'*'Star markers
'.'Point markers
'x'Cross markers
's'Square markers
'd'Diamond markers
'^'Upward-pointing triangle markers
'v'Downward-pointing triangle markers
'>'Right-pointing triangle markers
'<'Left-pointing triangle markers
'p'Five-pointed star (pentagram) markers
'h'Six-pointed star (hexagram) markers

#### Changing Line Style Order Before or After Plotting

Starting in R2019b, you can change the line style order before or after plotting into the axes. When you set the LineStyleOrder property to a new value, MATLAB updates the styles of any lines that are in the axes. If you continue plotting into the axes, your plotting commands continue using the line styles from the updated list.

If you are using R2019a or an earlier release, you must change the line style order before plotting. Set the value of the LineStyleOrder property, and then call the hold function to set the axes hold state to 'on' before calling any plotting functions.

The behavior of this property changed in R2019b. For more information, see:

Line style order index, specified as a positive integer. This property specifies the next line style MATLAB selects from the axes LineStyleOrder property to create the next plot line. For example, if this property is set to 1, then the next plot line you add to the axes uses the first item in the LineStyleOrder property. If the index value exceeds the number of line styles in the LineStyleOrder array, then the index value modulo of the number of elements in the LineStyleOrder array determines the style of the next line.

When the NextPlot property of the axes is set to 'add', MATLAB increments the index value after cycling through all the colors in the ColorOrder property with the current line style. To start again with first line style, set the LineStyleOrderIndex property to 1.

The behavior of this property changed in R2019b. For more information, see Indexing scheme for ColorOrder and LineStyleOrder might change plot colors and line styles.

Properties to reset when adding a new plot to the axes, specified as one of these values:

• 'add' — Add new plots to the existing axes. Do not delete existing plots or reset axes properties before displaying the new plot.

• 'replacechildren' — Delete existing plots before displaying the new plot. Reset the ColorOrderIndex and LineStyleOrderIndex properties to 1, but do not reset other axes properties. The next plot added to the axes uses the first color and line style based on the ColorOrder and LineStyle order properties. This value is similar to using cla before every new plot.

• 'replace' — Delete existing plots and reset axes properties, except Position and Units, to their default values before displaying the new plot.

• 'replaceall' — Delete existing plots and reset axes properties, except Position and Units, to their default values before displaying the new plot. This value is similar to using cla reset before every new plot.

### Note

For UIAxes objects with only one y-axis, the 'replace' and 'replaceall' property values are equivalent. For Axes objects with two y-axes, the 'replace' value affects only the active side while the 'replaceall' value affects both sides.

Figures created with the uifigure function also have a NextPlot property. Alternatively, you can use the newplot function to prepare figures and axes for subsequent graphics commands.

Order for rendering objects, specified as one of these values:

• 'depth' — Draw objects in back-to-front order based on the current view. Use this value to ensure that objects in front of other objects are drawn correctly.

• 'childorder' — Draw objects in the order in which they are created by graphics functions, without considering the relationship of the objects in three dimensions. This value can result in faster rendering, particularly if the figure is very large, but also can result in improper depth sorting of the objects displayed.

## Color and Transparency Maps

expand all

Color map, specified as an m-by-3 array of RGB (red, green, blue) triplets that define m individual colors.

Example: ax.Colormap = [1 0 1; 0 0 1; 1 1 0] sets the color map to three colors: magenta, blue, and yellow.

MATLAB accesses these colors by their row number.

Alternatively, use the colormap function to change the color map.

Scale for color mapping, specified as one of these values:

• 'linear' — Linear scale. The tick values along the colorbar also use a linear scale.

• 'log' — Log scale. The tick values along the colorbar also use a log scale.

Example: ax.ColorScale = 'log'

Color limits for objects in axes that use the colormap, specified as a two-element vector of the form [cmin cmax]. This property determines how data values map to the colors in the colormap where:

• cmin specifies the data value that maps to the first color in the colormap.

• cmax specifies the data value that maps to the last color in the colormap.

The Axes object interpolates data values between cmin and cmax across the colormap. Values outside this range use either the first or last color, whichever is closest.

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

• 'auto' — Automatically select the limits based on the color data of the graphics objects contained in the axes.

• 'manual' — Manually specify the values. To specify the values, set the CLim property. The values do not change when the limits of the axes children change.

Transparency map, specified as an array of finite alpha values that progress linearly from 0 to 1. The size of the array can be m-by-1 or 1-by-m. MATLAB accesses alpha values by their index in the array. Alphamaps can be any length.

Scale for transparency mapping, specified as one of these values:

• 'linear' — Linear scale

• 'log' — Log scale

Example: ax.AlphaScale = 'log'

Alpha limits, specified as a two-element vector of the form [amin amax]. This property affects the AlphaData values of graphics objects, such as surface, image, and patch objects. This property determines how the AlphaData values map to the figure alpha map, where:

• amin specifies the data value that maps to the first alpha value in the figure alpha map.

• amax specifies the data value that maps to the last alpha value in the figure alpha map.

The UIAxes object interpolates data values between amin and amax across the figure alpha map. Values outside this range use either the first or last alpha map value, whichever is closest.

The Alphamap property of the figure contains the alpha map. For more information, see the alpha function.

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

• 'auto' — Automatically select the limits based on the AlphaData values of the graphics objects contained in the axes.

• 'manual' — Manually specify the alpha limits. To specify the alpha limits, set the ALim property.

## Box Styling

expand all

Color of plot area, specified as an RGB triplet, a hexadecimal color code, a color name, or a short name. The color affects the area defined by the InnerPosition property value.

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 character vector or a string scalar 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. 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 NameShort NameRGB TripletHexadecimal Color CodeAppearance
'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'

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

[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Example: ax.Color = [0 0 1]

Example: ax.Color = 'blue'

Example: ax.Color = '#0000FF'

Color of margin around plot area, specified as an RGB triplet, a hexadecimal color code, a color name, or a short name. The color affects the margin between the areas defined by the InnerPosition and OuterPosition property values.

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 from 0 to F. 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 NameShort NameRGB TripletHexadecimal Color CodeAppearance
'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'

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

[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Example: ax.BackgroundColor = [0 0 1]

Example: ax.BackgroundColor = 'blue'

Example: ax.BackgroundColor = '#0000FF'

Line width of axes outline, tick marks, and grid lines, specified as a positive numeric value in point units. One point equals 1/72 inch.

Example: ax.LineWidth = 1.5

Box outline, specified as 'off' or 'on'.

ValueDescription2-D Result3-D Result
'off'

Do not display the box outline around the axes.

Example: ax.Box = 'off'

'on'

Display the box outline around the axes. For 3-D views, use the BoxStyle property to change extent of the outline.

Example: ax.Box = 'on'

The XColor, YColor, and ZColor properties control the color of the outline.

Example: ax.Box = 'on'

Box outline style, specified as 'back' or 'full'. This property affects only 3-D views.

ValueDescriptionResult
'back'

Outline the back planes of the 3-D box.

Example: ax.BoxStyle = 'back'

'full'

Outline the entire 3-D box.

Example: ax.BoxStyle = 'full'

Clipping of objects to the axes limits, specified as either 'on' or 'off'. The clipping behavior of an object within the Axes object depends on both the Clipping property of the Axes object and the Clipping property of the individual object. The property value of the Axes object has these effects:

• 'on' — Enable each individual object within the axes to control its own clipping behavior based on the Clipping property value for the object.

• 'off' — Disable clipping for all objects within the axes, regardless of the Clipping property value for the individual objects. Parts of objects can appear outside of the axes limits. For example, parts can appear outside the limits if you create a plot, use the hold on command, freeze the axis scaling, and then add a plot that is larger than the original plot.

This table lists the results for different combinations of Clipping property values.

Clipping Property for Axes ObjectClipping Property for Individual ObjectResult
'on''on'Individual object is clipped. Others might or might not be.
'on''off'Individual object is not clipped. Others might or might not be.
'off''on'All objects are unclipped.
'off''off'All objects are unclipped.

Clipping boundaries, specified as one of the values in this table. If a plot contains markers, then as long as the data point lies within the axes limits, MATLAB draws the entire marker.

The ClippingStyle property has no effect if the Clipping property is set to 'off'.

ValueDescriptionsIllustration of Boundary Region
'3dbox'

Clip plotted objects to the six sides of the axes box defined by the axis limits.

Thick lines might display outside the axes limits.

'rectangle'

Clip plotted objects to a rectangular boundary enclosing the axes in any given view.

Clip thick lines at the axes limits.

Background light color, specified as an RGB triplet, a hexadecimal color code, a color name, or a short name. The background light is a directionless light that shines uniformly on all objects in the axes. To add light, use the light function.

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 character vector or a string scalar 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. 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 NameShort NameRGB TripletHexadecimal Color CodeAppearance
'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'

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

[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Example: ax.AmbientLightColor = [1 0 1]

Example: ax.AmbientLightColor = 'magenta'

Example: ax.AmbientLightColor = '#FF00FF'

## Position

expand all

Size and location of axes, including the labels and margins, specified as a four-element vector of the form [left bottom width height]. This vector defines a rectangle that encloses the outer bounds of the axes. The left and bottom elements define the position of the rectangle, measured from the lower left corner to the lower left corner of the parent container. The width and height define the size of the rectangle. The values are measured in units determined by the Units property. By default, the units are pixels.

Size and position of the inner axes, excluding labels and margins, returned as a four-element vector of the form [left bottom width height]. The left and bottom elements define the position of the rectangle, measured from the lower left corner to the lower left corner of the parent container. The width and height define the size of the rectangle. The values are measured in units determined by the Units property. By default, the units are pixels.

MATLAB automatically sets InnerPosition to the largest possible values that conform to all other properties. Other UIAxes properties that affect the axes size and shape include Position, DataAspectRatio and PlotBoxAspectRatio.

Size and location of the axes, including the labels and margins, specified as a four-element vector of the form [left bottom width height]. Position values are relative to the parent container. By default, the values are measured in pixels.

This property value is identical to the Position property value.

Margin for text labels, specified as a four-element vector of the form [left bottom right top]. The elements define the distances between the bounds of the InnerPosition property and the extent of the axes text labels and title. By default, the values are measured in pixels. To change the units, set the Units property.

Position units, specified as 'pixels'.

• On Windows systems, a pixel is 1/96th of an inch.

• On Macintosh systems, a pixel is 1/72nd of an inch.

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

Relative length of data units along each axis, specified as a three-element vector of the form [dx dy dz]. This vector defines the relative x, y, and z data scale factors. For example, specifying this property as [1 2 1] sets the length of one unit of data in the x-direction to be the same length as two units of data in the y-direction and one unit of data in the z-direction.

Alternatively, use the daspect function to change the data aspect ratio.

Example: ax.DataAspectRatio = [1 1 1]

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

Data aspect ratio mode, specified as one of these values:

• 'auto' — Automatically select values that make best use of the available space. If PlotBoxAspectRatioMode and CameraViewAngleMode are also set to 'auto', then enable "stretch-to-fill" behavior. Stretch the axes so that it fills the available space as defined by the Position property.

• 'manual' — Disable the "stretch-to-fill" behavior and use the manually specified data aspect ratio. To specify the values, set the DataAspectRatio property.

Relative length of each axis, specified as a three-element vector of the form [px py pz] defining the relative x-axis, y-axis, and z-axis scale factors. The plot box is a box enclosing the axes data region as defined by the axis limits.

Alternatively, use the pbaspect function to change the data aspect ratio.

If you specify the axis limits, data aspect ratio, and plot box aspect ratio, then MATLAB ignores the plot box aspect ratio. It adheres to the axis limits and data aspect ratio.

Example: ax.PlotBoxAspectRatio = [1 0.75 0.75]

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

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

• 'auto' — Automatically select values that make best use of the available space. If DataAspectRatioMode and CameraViewAngleMode also are set to 'auto', then enable "stretch-to-fill" behavior. Stretch the Axes object so that it fills the available space as defined by the Position property.

• 'manual' — Disable the "stretch-to-fill" behavior and use the manually specified plot box aspect ratio. To specify the values, set the PlotBoxAspectRatio property.

Layout options, specified as a GridLayoutOptions object. This property specifies options for components that are children of grid layout containers. If the component is not a child of a grid layout container (for example, it is a child of a figure or panel), then this property is empty and has no effect. However, if the component is a child of a grid layout container, you can place the component in the desired row and column of the grid by setting the Row and Column properties on the GridLayoutOptions object.

For example, this code places a UI axes component in the third row and second column of its parent grid.

g = uigridlayout([4 3]); ax = uiaxes(g); ax.Layout.Row = 3; ax.Layout.Column = 2;

To make the axes span multiple rows or columns, specify the Row or Column property as a two-element vector. For example, this axes spans columns 2 through 3:

ax.Layout.Column = [2 3];

## View

expand all

Azimuth and elevation of view, specified as a two-element vector of the form [azimuth elevation] defined in degree units. Alternatively, use the view function to set the view.

Example: ax.View = [45 45]

Type of projection onto a 2-D screen, specified as one of these values:

• 'orthographic' — Maintain the correct relative dimensions of graphics objects regarding the distance of a given point from the viewer, and draw lines that are parallel in the data parallel on the screen.

• 'perspective' — Incorporate foreshortening, which enables you to perceive depth in 2-D representations of 3-D objects. Perspective projection does not preserve the relative dimensions of objects. Instead, it displays a distant line segment smaller than a nearer line segment of the same length. Lines that are parallel in the data might not appear parallel on screen.

Camera location, or the viewpoint, specified as a three-element vector of the form [x y z]. This vector defines the axes coordinates of the camera location, which is the point from which you view the axes. The camera is oriented along the view axis, which is a straight line that connects the camera position and the camera target. For an illustration, see Camera Graphics Terminology.

If the Projection property is set to 'perspective', then as you change the CameraPosition setting, the amount of perspective also changes.

Alternatively, use the campos function to set the camera location.

Example: ax.CameraPosition = [0.5 0.5 9]

Data Types: single | double

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

• 'auto' — Automatically set CameraPosition along the view axis. Calculate the position so that the camera lies a fixed distance from the target along the azimuth and elevation specified by the current view, as returned by the view function. Functions like rotate3d, zoom, and pan, change this mode to 'auto' to perform their actions.

• 'manual' — Manually specify the value. To specify the value, set the CameraPosition property.

Camera target point, specified as a three-element vector of the form [x y z]. This vector defines the axes coordinates of the point. The camera is oriented along the view axis, which is a straight line that connects the camera position and the camera target. For an illustration, see Camera Graphics Terminology.

Alternatively, use the camtarget function to set the camera target.

Example: ax.CameraTarget = [0.5 0.5 0.5]

Data Types: single | double

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

• 'auto' — Position the camera target at the centroid of the axes plot box.

• 'manual' — Use the manually specified camera target value. To specify a value, set the CameraTarget property.

Vector defining upwards direction, specified as a three-element direction vector of the form [x y z]. For 2-D views, the default value is [0 1 0]. For 3-D views, the default value is [0 0 1]. For an illustration, see Camera Graphics Terminology.

Alternatively, use the camup function to set the upwards direction.

Example: ax.CameraUpVector = [sin(45) cos(45) 1]

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

• 'auto' — Automatically set the value to [0 0 1] for 3-D views so that the positive z-direction is up. Set the value to [0 1 0] for 2-D views so that the positive y-direction is up.

• 'manual' — Manually specify the vector defining the upwards direction. To specify a value, set the CameraUpVector property.

Field of view, specified as a scalar angle greater than 0 and less than or equal to 180. Changing the camera view angle affects the size of graphics objects displayed in the axes, but does not affect the degree of perspective distortion. The greater the angle, the larger the field of view and the smaller objects appear in the scene. For an illustration, see Camera Graphics Terminology.

Example: ax.CameraViewAngle = 15

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

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

• 'auto' — Automatically select the field of view as the minimum angle that captures the entire scene, up to 180 degrees.

• 'manual' — Manually specify the field of view. To specify a value, set the CameraViewAngle property.

## Interactivity

expand all

Data exploration toolbar, which is an AxesToolbar object. The toolbar appears at the top-right corner of the UI axes when you hover over it.

The toolbar buttons depend on the contents of the UI axes, but typically include zooming, panning, rotating, exporting, and restoring the original view. You can customize the toolbar buttons using the axtoolbar and axtoolbarbtn functions.

If you do not want the toolbar to appear when you hover over the UI axes, set the Visible property of the AxesToolbar object to 'off'.

ax = uiaxes; ax.Toolbar.Visible = 'off';

Interactions, specified as an array of interaction objects or an empty array. The interactions you specify are available within your chart through gestures. You do not have to select any axes toolbar buttons to use them. For example, a panInteraction object enables dragging to pan within a chart. For a list of interaction objects, see Control Chart Interactivity.

The default set of interactions depends on the type of chart you are displaying. You can replace the default set with a new set of interactions, but you cannot access or modify any of the interactions in the default set. For example, this code replaces the default set of interactions with the panInteraction and zoomInteraction objects.

ax = uiaxes; ax.Interactions = [panInteraction zoomInteraction];

To remove all interactions from the axes, set this property to an empty array. To temporarily disable the current set of interactions, call the disableDefaultInteractivity function. You can reenable them by calling the enableDefaultInteractivity function.

### Note

Interaction objects are not returned by findobj or findall, and they are not copied by copyobj.

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.

Location of mouse pointer, specified as a 2-by-3 array. The CurrentPoint property contains the (x,y,z) coordinates of the mouse pointer with respect to the axes. The returned array is of the form:

[xfront yfront zfront xback yback zback]

The two points indicate the location of the last mouse click. However, if the figure has a WindowButtonMotionFcn callback defined, then the points indicate the last location of the mouse pointer. The figure also has a CurrentPoint property.

The values of the current point when using perspective projection can be different from the same point in orthographic projection because the shape of the axes volume can be different.

#### Orthogonal Projection

When using orthogonal projection, the values depend on whether the click is within the axes or outside the axes.

• If the click is inside the axes, the two points lie on the line that is perpendicular to the plane of the screen and that passes through the pointer. The coordinates are the points where this line intersects the front and back surfaces of the axes volume (which is defined by the axes x, y, and z limits). The first row is the point nearest to the camera position. The second row is the point farthest from the camera position. This is true for both 2-D and 3-D views.

• If the click is outside the axes, but within the figure, then the points lie on a line that passes through the pointer and is perpendicular to the camera target and camera position planes. The first row is the point in the camera position plane. The second row is the point in the plane of the camera target.

#### Perspective Projection

Clicking outside of the UIAxes object in perspective projection returns the front point as the current camera position. Only the back point updates with the coordinates of a point that lies on a line extending from the camera position through the pointer and intersecting the camera target at that point.

## Callbacks

expand all

UI axes resize callback function, specified as one of these values:

• Function handle

• Cell array in which the first element is a function handle. Subsequent elements in the cell array are the arguments to pass to the callback function.

• Character vector that is a valid MATLAB expression. MATLAB evaluates this expression in the base workspace.

Define this callback function to control the layout when the size of the UI axes change.

The SizeChangedFcn callback executes under these circumstances:

• The axes becomes visible for the first time.

• The axes is visible while its drawable area changes. The drawable area is the area inside the outer bounds of the axes.

• The axes becomes visible for the first time after its drawable area changes. This situation occurs when the drawable area changes while the axes is invisible, and then it becomes visible later.

These are some of the important characteristics of the SizeChangedFcn callback and some recommended best practices:

• Consider delaying the display of the figure until after all the variables that the callback uses are defined. This practice can prevent the SizeChangedFcn callback from returning an error. To delay the display of the figure, set its Visible property to 'off'. Then, set the Visible property to 'on' after you define the variables that your SizeChangedFcn callback uses.

• Use the gcbo function in your SizeChangedFcn code to get the UIAxes object that is resizing.

Example: @myfun

Example: {@myfun,x}

Object creation function, specified as one of these values:

• Function handle.

• Cell array in which the first element is a function handle. Subsequent elements in the cell array are the arguments to pass to the callback function.

• Character vector containing a valid MATLAB expression (not recommended). MATLAB evaluates this expression in the base workspace.

For more information about specifying a callback as a function handle, cell array, or character vector, see Write Callbacks in App Designer.

This property specifies a callback function to execute when MATLAB creates the object. MATLAB initializes all property values before executing the CreateFcn callback. If you do not specify the CreateFcn property, then MATLAB executes a default creation function.

Setting the CreateFcn property on an existing component has no effect.

If you specify this property as a function handle or cell array, you can access the object that is being created using the first argument of the callback function. Otherwise, use the gcbo function to access the object.

Object deletion function, specified as one of these values:

• Function handle.

• Cell array in which the first element is a function handle. Subsequent elements in the cell array are the arguments to pass to the callback function.

• Character vector containing a valid MATLAB expression (not recommended). MATLAB evaluates this expression in the base workspace.

For more information about specifying a callback as a function handle, cell array, or character vector, see Write Callbacks in App Designer.

This property specifies a callback function to execute when MATLAB deletes the object. MATLAB executes the DeleteFcn callback before destroying the properties of the object. If you do not specify the DeleteFcn property, then MATLAB executes a default deletion function.

If you specify this property as a function handle or cell array, you can access the object that is being deleted using the first argument of the callback function. Otherwise, use the gcbo function to access the object.

## Callback Execution Control

expand all

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

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 the running callback (if one exists). The Interruptible property of the object owning the running callback determines if interruption is allowed. The Interruptible property has two possible values:

• 'on' — Allows other callbacks to interrupt the object's callbacks. The interruption occurs at the next point where MATLAB processes the queue, such as when there is a drawnow, figure, uifigure, getframe, waitfor, or pause command.

• If the running callback contains one of those commands, then MATLAB stops the execution of the callback at that point and executes the interrupting callback. MATLAB resumes executing the running callback when the interrupting callback completes.

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

• 'off' — Blocks all interruption attempts. The BusyAction property of the object owning the interrupting callback determines if the interrupting callback is discarded or put into a queue.

### Note

Callback interruption and execution behave differently in these situations:

• If the interrupting callback is a DeleteFcn, CloseRequestFcn or SizeChangedFcn callback, then the interruption occurs regardless of the Interruptible property value.

• If the running callback is currently executing the waitfor function, then the interruption occurs regardless of the Interruptible property value.

• Timer objects execute according to schedule regardless of the Interruptible property value.

When an interruption occurs, MATLAB does not save the state of properties or the display. For example, the object returned by the gca or gcf command might change when another callback executes.

Callback queuing, specified as 'queue' or 'cancel'. The BusyAction property determines how MATLAB handles the execution of interrupting callbacks. 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. 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. These are possible values of the BusyAction property:

• 'queue' — Puts the interrupting callback in a queue to be processed after the running callback finishes execution.

• 'cancel' — Does not execute the interrupting callback.

Deletion status, returned as 'off' or 'on'. MATLAB sets the BeingDeleted property to 'on' when the DeleteFcn callback begins execution. The BeingDeleted property remains set to 'on' until the component object no longer exists.

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

## Parent/Child

expand all

Parent container, specified as a Figure object created using the uifigure function, or one of its child containers: Tab, Panel, ButtonGroup, or GridLayout. If no container is specified, MATLAB calls the uifigure function to create a new Figure object that serves as the parent container.

Children, returned as an array of graphics objects. Use this property to view a list of the children or to reorder the children by setting the property to a permutation of itself.

You cannot add or remove children using the Children property. To add a child to this list, set the Parent property of the child graphics object to the UIAxes object.

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 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. Examples of such functions include the get, findobj, gca, gcf, gco, newplot, cla, clf, and close functions.

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

Type of graphics object returned as 'axes'.

Object identifier, specified as a character vector or string scalar. You can specify a unique Tag value to serve as an identifier for an object. When you need access to the object elsewhere in your code, you can use the findobj function to search for the object based on the Tag value.

User data, specified as any MATLAB array. For example, you can specify a scalar, vector, matrix, cell array, character array, table, or structure. Use this property to store arbitrary data on an object.

If you are working in App Designer, create public or private properties in the app to share data instead of using the UserData property. For more information, see Share Data Within App Designer Apps.

## Compatibility Considerations

expand all

Behavior changed in R2019b

Behavior changed in R2019b