UIAxes - UI axes appearance and behavior - MATLAB (original) (raw)
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; 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
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. By default, the font size is measured in 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
andLabelFontSizeMultiplier
properties. - Legends and colorbars — 90% of the axes font size by default. To specify a different font size, set the
FontSize
property for theLegend
orColorbar
object instead.
Example: ax.FontSize = 12
Selection mode for the font size, specified as one of these values:
'auto'
— Font size specified by MATLAB. If you resize the axes to be smaller than the default size, the font size might scale down to improve readability and layout.'manual'
— Font size specified manually. Do not scale the font size as the axes size changes. To specify the font size, set theFontSize
property.
Scale factor for the label font size, specified as a numeric value greater than 0. The scale factor is applied to the value of theFontSize
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.
Subtitle character thickness, specified as one of these values:
'normal'
— Default weight as defined by the particular font'bold'
— Thicker characters than normal
Font size units, specified as one of the values in this table.
Units | Description |
---|---|
'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 theFontSize is0.1 in normalized units, then the text is 1/10 of the height value stored in the axesPosition property. |
'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. |
To set both the font size and the font units in a single function call, you first must set the FontUnits
property so that theUIAxes
object correctly interprets the specified font size.
Ticks
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 theXTick
,YTick
, orZTick
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 theTickLabelInterpreter
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 theXTickLabel
,YTickLabel
, orZTickLabel
property.
Example: ax.XTickLabelMode = 'auto'
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.
Selection mode for the tick label rotation, specified as one of these values:
'auto'
— Automatically select the tick label rotation.'manual'
— Use a tick label rotation that you specify. To specify the rotation, set theXTickLabelRotation
,YTickLabelRotation
, orZTickLabelRotation
property.
Minor tick marks, specified as 'on'
or'off'
, 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.
'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.'off'
— Do not display minor tick marks. This value is the default for an axis with a linear 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.'none'
— Do not display any tick marks.
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
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'
— Enable automatic limit selection, which is based on the total span of the plotted data and the value of theXLimitMethod
,YLimitMethod
, orZLimitMethod
property.'manual'
— Manually specify the axis limits. To specify the axis limits, set theXLim
,YLim
, orZLim
property.
Example: ax.XLimMode = 'auto'
Axis limit selection method, specified as a value from the table. The examples in the table show the approximate appearance for different values of the XLimitMethod
property. Your results might differ depending on your data, the size of the axes, and the type of plot you create.
Value | Description | Example (XLimitMethod) |
---|---|---|
'tickaligned' | In general, align the edges of the axes box with the tick marks that are closest to your data without excluding any data. The appearance might vary depending on the type of data you plot and the type of chart you create. | ![]() |
'tight' | Fit the axes box tightly around the data by setting the axis limits equal to the range of the data. | ![]() |
'padded' | Fit the axes box around the data with a thin margin of padding on each side. The width of the margin is approximately 7% of your data range. | ![]() |
Note
The axis limit method has no effect when the corresponding mode property (XLimMode
, YLimMode
, or ZLimMode
) is set to 'manual'
.
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:
- NumericRuler Properties
- DatetimeRuler Properties
- DurationRuler Properties
- CategoricalRuler Properties
For example, access the ruler for the _x_-axis through the XAxis
property. Then, change theColor
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 theYAxis
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.
Value | Description | Result |
---|---|---|
'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.
Value | Description | Result |
---|---|---|
'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 theGridColor
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 string scalar or character vector that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. 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 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" | ![]() |
"none" | Not applicable | Not applicable | Not applicable | No color |
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))
.
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 theXColor
value, regardless of the mode.
The _x_-axis grid color depends on both theXColorMode
property and theGridColorMode
property, as shown here.
XColorMode | GridColorMode | x-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 theXColorMode
property and theMinorGridColorMode
property, as shown here.
XColorMode | MinorGridColorMode | x-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 theYColor
value, regardless of the mode.
The _y_-axis grid color depends on both theYColorMode
property and theGridColorMode
property, as shown here.
YColorMode | GridColorMode | y-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 theYColorMode
property and theMinorGridColorMode
property, as shown here.
YColorMode | MinorGridColorMode | y-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 theZColor
value, regardless of the mode.
The _z_-axis grid color depends on both theZColorMode
property and theGridColorMode
property, as shown here.
ZColorMode | GridColorMode | z-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 theZColorMode
property and theMinorGridColorMode
property, as shown here.
ZColorMode | MinorGridColorMode | z-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.
Value | Description | Result in 2-D | Result 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.
Value | Description | Result in 2-D | Result 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.
Value | Description | Result 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' | ![]() |
Grids
Grid lines, specified as 'on'
or'off'
, 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.
'on'
— Display grid lines perpendicular to the axis; for example, along lines of constant_x_, y, or_z_ values.'off'
— Do not display the grid lines.
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'
Since R2023a
Grid line width, specified as a positive number. Set this property or the MinorGridLineWidth property to control the thickness of the grid lines independently of the box outline and tick marks.
Example
Create vectors x
and y
, and plot them. Display the grid lines in the axes by calling grid on
. Increase the thickness of the grid lines, box outline, and tick marks by setting theLineWidth
property of the axes to1.5
.
x = linspace(0,10); y = sin(x); plot(x,y) grid on ax = gca; ax.LineWidth = 1.5;
Make the grid lines thinner by setting the grid line width to 0.5
.
Since R2023a
How the grid line width is set, specified as one of these values:
"auto"
— Set theGridLineWidth
property to the same value as theLineWidth
property."manual"
— Hold the current value of theGridLineWidth
property.
MATLAB sets this property to "manual"
when you explicitly set the GridLineWidth
property to a value.
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 string scalar or character vector that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. 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 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" | ![]() |
"none" | Not applicable | Not applicable | Not applicable | No color |
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))
.
To set the colors for the axes box outline, use theXColor
, YColor
, andZColor
properties.
To display the grid lines, use the grid on
command or set the XGrid
, YGrid
, orZGrid
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 theXColorMode
,YColorMode
, andZColorMode
properties to determine the grid line colors for the x,y, and z directions.'manual'
— UseGridColor
to set the grid line color for all directions.
Minor grid lines, specified as 'on'
or'off'
, 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.
'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.'off'
— Do not display 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 Style | Description | Resulting Line |
---|---|---|
"-" | Solid line | ![]() |
"--" | Dashed line | ![]() |
":" | Dotted line | ![]() |
"-." | Dash-dotted line | ![]() |
"none" | No line | No line |
To display minor grid lines, use the grid minor
command or set the XMinorGrid
, YMinorGrid
, or ZMinorGrid
property to'on'
.
Example: ax.MinorGridLineStyle = '-.'
Since R2023a
Minor grid line width, specified as a positive number. Set this property or the GridLineWidth property to control the thickness of the grid lines independently of the box outline and tick marks.
Tip
- To see the minor grid lines, set the
XMinorGrid
,YMinorGrid
, orZMinorGrid
properties to"on"
. - When you set the
GridLineWidth
property, MATLAB also sets theMinorGridLineWidth
property to the same value. To avoid changing theMinorGridLineWidth
property, set theMinorGridLineWidthMode
property to"manual"
before setting theGridLineWidth
property.
Since R2023a
How the minor grid line width is set, specified as one of these values:
"auto"
— Set theMinorGridLineWidth
property to the same value as theGridLineWidth
property."manual"
— Hold the current value of theMinorGridLineWidth
property.
MATLAB sets this property to "manual"
when you explicitly set the MinorGridLineWidth
property to a value.
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 string scalar or character vector that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. 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 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" | ![]() |
"none" | Not applicable | Not applicable | Not applicable | No color |
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))
.
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 theXColorMode
,YColorMode
, andZColorMode
properties to determine the grid line colors for the x,y, and z directions.'manual'
— UseMinorGridColor
to set the minor grid line color for all directions.
Labels
Text object for axes title. To add a title, set theString
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 the axes subtitle. To add a subtitle, set theString
property of the text object. To change its appearance, such as the font angle, set other properties. For a complete list, see Text Properties.
ax = uiaxes; ax.Subtitle.String = 'An Insightful Subtitle'; ax.Subtitle.FontAngle = 'italic';
Alternatively, use either the subtitle function or the title function to add a subtitle and control the appearance.
% subtitle function subtitle(ax,'Insightful Subtitle','FontAngle','italic')
% title function [t,s] = title(ax,'Clever Title','Insightful Subtitle'); s.FontAngle = 'italic';
Note
This text object is not contained in the Children
property of the UIAxes
object. It cannot be returned by findobj, and it does not use the default values defined for text objects.
Title and subtitle horizontal alignment with the plot box, specified as one of the values from the table.
TitleHorizontalAlignment Value | Description | Appearance |
---|---|---|
'center' | The title and subtitle are centered over the plot box. | ![]() |
'left' | The title and subtitle are aligned with the left side of the plot box. | ![]() |
'right' | The title and subtitle are aligned with the right side of the plot box. | ![]() |
Text object for axis label. To add an axis label, set theString
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)
This property is read-only.
Legend associated with the UIAxes
object, specified as aLegend
object. To add a legend to the axes, use thelegend 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
Since R2023a
How to cycle through the line styles when there are multiple lines in the axes, specified as one of the values from this table.
The examples in this table were created using the default colors in theColorOrder
property and three line styles (["-","-o","--"]
) in the LineStyleOrder
property.
Value | Description | Example |
---|---|---|
"aftercolor" | Cycle through the line styles of the LineStyleOrder after the colors of the ColorOrder. | ![]() |
"beforecolor" | Cycle through the line styles of theLineStyleOrder before the colors of theColorOrder. | ![]() |
"withcolor" | Cycle through the line styles of theLineStyleOrder with the colors of theColorOrder. | ![]() |
This property is read-only.
SeriesIndex
value for the next plot object added to the axes, returned as a whole number greater than or equal to 0
. This property is useful when you want to track how the objects cycle through the colors and line styles. This property maintains a count of the objects in the axes that have a numericSeriesIndex
property value. MATLAB uses it to assign a SeriesIndex
value to each new object. The count starts at 1
when you create the axes, and it increases by 1
for each additional object. Thus, the count is typically n+1, where n is the number of objects in the axes.
If you manually change the ColorOrderIndex
orLineStyleOrderIndex
property on the axes, the value of theNextSeriesIndex
property changes to 0
. As a consequence, objects that have a SeriesIndex
property no longer update automatically when you change the ColorOrder
orLineStyleOrder
properties on the axes.
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 theColorOrderIndex
andLineStyleOrderIndex
properties to1
, but do not reset other axes properties. The next plot added to the axes uses the first color and line style based on theColorOrder
andLineStyle
order properties. This value is similar to using cla before every new plot.'replace'
— Delete existing plots and reset axes properties, exceptPosition
andUnits
, to their default values before displaying the new plot.'replaceall'
— Delete existing plots and reset axes properties, exceptPosition
andUnits
, to their default values before displaying the new plot. This value is similar to usingcla reset
before every new plot.
Note
- For
UIAxes
objects with only one_y_-axis, the'replace'
and'replaceall'
property values are equivalent. ForAxes
objects with two_y_-axes, the'replace'
value affects only the active side while the'replaceall'
value affects both sides. - Passing a
UIAxes
object to the cla function with the'reset'
option sets theNextPlot
property to'replace'
unless you define a different default for theNextPlot
property.
Figures created with the uifigure function also have a NextPlot
property. Alternatively, you can use thenewplot function to prepare figures and axes for subsequent graphics commands.
Color and Transparency Maps
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.
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.
Transparency map, specified as an array of finite alpha values that progress linearly from0
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. An alphamap can be any length.
Scale for transparency mapping, specified as one of these values:
'linear'
— Linear scale'log'
— Log scale
Alpha limits, specified as a two-element vector of the form [amin amax]
. This property affects theAlphaData
values of graphics objects, such as surface, image, and patch objects. This property determines how theAlphaData
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 betweenamin
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 thealpha function.
Box Styling
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 theInnerPosition
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 string scalar or character vector that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. 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 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" | ![]() |
"none" | Not applicable | Not applicable | Not applicable | No color |
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))
.
Example: ax.Color = [0 0 1]
Example: ax.Color = 'blue'
Example: ax.Color = '#0000FF'
Color of margin around plot area, returned as 'none'
.
Note
Setting this property has no effect.
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 'on'
or'off'
, 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.
Value | Description | 2-D Result | 3-D Result |
---|---|---|---|
'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' | ![]() |
![]() |
'off' | Do not display the box outline around the axes.Example: ax.Box = 'off' | ![]() |
![]() |
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.
Value | Description | Result |
---|---|---|
'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'on'
or 'off'
, or as numeric or logical 1
(true
) or0
(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.
The clipping behavior of an object within the Axes
object depends on both the Clipping
property of the Axes
object and theClipping
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 theClipping
property value for the object.'off'
— Disable clipping for all objects within the axes, regardless of theClipping
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 thehold 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 ofClipping
property values.
Clipping Property for Axes Object | Clipping Property for Individual Object | Result |
---|---|---|
'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 theClipping
property is set to'off'
.
Value | Descriptions | Illustration 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 string scalar or character vector that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. 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 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" | ![]() |
"none" | Not applicable | Not applicable | Not applicable | No color |
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))
.
Example: ax.AmbientLightColor = [1 0 1]
Example: ax.AmbientLightColor = 'magenta'
Example: ax.AmbientLightColor = '#FF00FF'
Position
Inner size and location, excluding labels and margins, specified as a four-element vector of the form [left bottom width height]
. The values are measured in the units specified by theUnits
property, which defaults to pixels.
- The
left
andbottom
elements define the position of the rectangle, measured from the lower left corner of the parent container. - The
width
andheight
define the size of the rectangle.
If you want to specify the position and account for the text around the axes, then set the either the Position
or theOuterPosition
property. These figures show the areas defined by the Position
(orOuterPosition
) in blue, and theInnerPosition
in red.
2-D View of Axes | 3-D View of Axes |
---|---|
![]() |
![]() |
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
andPlotBoxAspectRatio
.
Note
- When querying the inner position of axes with constrained aspect ratios (such as square axes or those containing images) consider using the tightPosition function for more accuracy.(since R2022b)
- Setting this property has no effect when the parent container is a
TiledChartLayout
Size and location of the axes, including the labels and margins, specified as a four-element vector of the form [left bottom width height]
.
This property value is identical to the Position
property value.
This property is read-only.
Margin for text labels, returned 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 theUnits
property.
Position property to hold constant when adding, removing, or changing decorations, specified as one of the following values:
"outerposition"
— TheOuterPosition
property remains constant when you add, remove, or change decorations such as a title or an axis label. If any positional adjustments are needed, MATLAB adjusts theInnerPosition
property."innerposition"
— TheInnerPosition
property remains constant when you add, remove, or change decorations such as a title or an axis label. If any positional adjustments are needed, MATLAB adjusts theOuterPosition
property.
Note
Setting this property has no effect when the parent container is aTiledChartLayout
object.
Position units, specified as one of these values.
Units | Description |
---|---|
'normalized' | Normalized with respect to the container, which is typically the figure or a panel. 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 uicontrol font of the graphics root object: Character width = width of letterx.Character height = distance between the baselines of two lines of text. |
'points' | Typography points. One point equals 1/72 inch. |
'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. |
When specifying the units as a Name,Value
pair during object creation, you must set the Units
property before specifying the properties that you want to use these units, such asPosition
.
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. IfPlotBoxAspectRatioMode
andCameraViewAngleMode
are also set to'auto'
, then enable "stretch-to-fill" behavior. Stretch the axes so that it fills the available space as defined by thePosition
property.'manual'
— Disable the "stretch-to-fill" behavior and use the manually specified data aspect ratio. To specify the values, set theDataAspectRatio
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. IfDataAspectRatioMode
andCameraViewAngleMode
also are set to'auto'
, then enable "stretch-to-fill" behavior. Stretch theAxes
object so that it fills the available space as defined by thePosition
property.'manual'
— Disable the "stretch-to-fill" behavior and use the manually specified plot box aspect ratio. To specify the values, set thePlotBoxAspectRatio
property.
Layout options, specified as aGridLayoutOptions
orTiledChartLayoutOptions
object. This property specifies options when the axes is in a grid layout or a tiled chart layout. If the axes is not in either type of layout, then this property is empty and has no effect.
To position the axes in a specific row and column of a grid layout, set the Row
and Column
properties on the GridLayoutOptions
object. For example, this code places the axes in the third row and second column of a grid layout.
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 theRow
or Column
property as a two-element vector. For example, this axes spans columns2
through3
:
ax.Layout.Column = [2 3];
View
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.
Note
Setting the azimuth and elevation angles might reset other camera-related properties. For best results, set the azimuth and elevation angles before setting other camera-related properties.
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 theCameraPosition
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 setCameraPosition
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 theCameraPosition
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 theCameraTarget
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 theCameraUpVector 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
Options to customize interaction behavior, specified as aCartesianAxesInteractionOptions
object. Use the properties of the CartesianAxesInteractionOptions
object to customize the behavior of interactions with the axes. For a complete list of properties, see CartesianAxesInteractionOptions Properties.
Before R2024a: Specify this property as anInteractionOptions
object instead of as aCartesianAxesInteractionOptions
object.
The options set by the CartesianAxesInteractionOptions
object apply to these interactions on the associated axes:
- The built-in interactions specified by the Interactions property of the axes
- Interactions enabled by using mode functions, such aspan andzoom
- Interactions enabled using the axes toolbar
Example: ax.InteractionOptions.LimitsDimensions = "x"
constrains all pan and zoom interactions to the_x_-dimension.
Toolbar with individual interaction buttons, specified as anAxesToolbar
object or an empty array. Use this property to customize the appearance and behavior of the toolbar. Create the toolbar using the axtoolbar function. 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, brushing, exporting, and restoring the original view. You can customize the toolbar buttons using the axtoolbar and axtoolbarbtn functions.
For a complete list of properties, see AxesToolbar Properties.
To remove the toolbar, set this property to an empty array.
Built-in interactions, specified as an array of interaction objects or an empty array. These interactions are available within your chart through gestures. You do not have to select any axes toolbar buttons to use them.
The default set of built-in interactions depends on the chart type. You can replace the default set with a new set of interactions, but you cannot access or modify the default set of interactions.
To remove all interactions from the axes, set this property to an empty array. To temporarily disable the current set of interactions, call thedisableDefaultInteractivity function. You can reenable them by calling the enableDefaultInteractivity function.
For a list of interaction objects, see Customize Built-In Interactions.
Example: ax.Interactions = [panInteraction zoomInteraction]
replaces the default set of built-in interactions with the panInteraction and zoomInteraction objects. This set of interactions enables dragging to pan within the chart and scrolling to zoom within the chart.
State of visibility, specified as 'on'
or 'off'
, 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.
'on'
— Display the axes and its children.'off'
— Hide the axes without deleting it. You still can access the properties of an invisible axes object.
Note
When the Visible
property is 'off'
, the axes object is invisible, but child objects such as lines remain visible.
Location of mouse pointer, specified as a 2-by-3 array. TheCurrentPoint
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
Callback Execution Control
This property is read-only.
Parent/Child
Parent container, specified as a Figure
,Panel
, Tab
, GridLayout
, or TiledChartLayout
object. If no container is specified, MATLAB calls the uifigure
function to create a new Figure
object that serves as the parent container.
Identifiers
This property is read-only.
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.
Version History
Introduced in R2016a
The default ColorOrder
, XColor
,YColor
, and ZColor
property values in the light theme have changed slightly. This table lists the changes.
Property | R2024b Color | R2025a Color |
---|---|---|
ColorOrder | RGB TripletSample[0.0000 0.4470 0.7410] ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
RGB TripletSample[0.0660 0.4430 0.7450] ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
XColor, YColor, andZColor | [0.15 0.15 0.15] | [0.1294 0.1294 0.1294] |
The InteractionOptions
object is now calledCartesianAxesInteractionOptions
. The behavior remains the same. The name of the InteractionOptions
property has not changed. Starting in R2024a, set the InteractionOptions
property using aCartesianAxesInteractionOptions
object.
Use the LineStyleCyclingMethod
property to control how different lines are distinguished from one another in the axes.
Change the thickness of grid lines independently of the box outline and tick marks by setting the GridLineWidth
andMinorGridLineWidth
properties of the axes. Before R2023a, the LineWidth
property of the axes was the only property for controlling the grid line width. However, that property controlled the grid lines, box outline, and tick marks together. Now you can control the thickness of the grid lines separately.
Use the InteractionOptions
property to control the behavior of axes interactions, such as pan, zoom, and rotate.
Control the selection mode for tick label rotation by setting theXTickLabelRotationMode
,YTickLabelRotationMode
, orZTickLabelRotationMode
property.
You can remove all the tick marks from the axes by setting theTickDir
property to "none"
.
Control the axis limits for your plots by setting theXLimitMethod
, YLimitMethod
, orZLimitMethod
on the axes.
Setting the BackgroundColor
property on aUIAxes
object no longer has any effect. Starting in R2020b, the area around the plot box is transparent regardless of the value of theBackgroundColor
property.
To produce the same effect as setting the background color in previous releases, create a panel with the desired BackgroundColor
value, and then place the UIAxes
in the panel.
The stacking order (also called the Z-order) of objects in the figure has changed so that UIAxes
objects and their contents appear behind all UI components in the figure. This behavior is consistent with the behavior of other types of axes.
For example, this code creates a figure, a button, and then aUIAxes
object.
fig = uifigure; b = uibutton(fig); uax = uiaxes(fig);
In R2020a, executing the preceding code displays the UIAxes
in front of the button, as shown in the figure on the left. The figure on the right shows the behavior in R2020b, where the UIAxes
appears behind UI components regardless of the order of creation.
The order of the objects listed in the Children
property of the figure also reflects this change. The UIAxes
object is always after UI components in the list.
ans =
2×1 graphics array:
Button (Button) UIAxes
Plot objects such as lines might not clip to the bounds defined by theOuterPosition
property of the UIAxes
. The lines extend beyond the bounds when the Clipping
property of each line is set to 'off'
. In previous releases, the lines clip to the OuterPosition
regardless of the value of theClipping
property. For example, the plot on the left shows the R2020a behavior, and the plot on the right shows the R2020b behavior. In both cases, the Clipping
properties of the lines are set to'off'
.
To prevent the axes content from overlapping with components in your app, set theClipping
property of each object in the axes to'on'
.
The SizeChangedFcn
callback for UIAxes
objects has been removed. If your app requires a callback that executes when the size of the axes changes, create a SizeChangedFCn
callback for the parent figure or another container.
When you create a plot in a UIAxes
object, and then create a colorbar or legend for that plot, the parent object of the colorbar or legend is the same as the parent object of the UIAxes
object. In previous releases, the parent object of the colorbar or legend is theUIAxes
object.
You can control the alignment of a plot title by setting theTitleHorizontalAlignment
property of the axes to"left"
, "right"
, or"center"
.
Add a subtitle to your plot by setting the Subtitle
property or calling the subtitle function. To control the appearance of the subtitle, set the SubtitleFontWeight
property.
Set the PositionConstraint
property of anAxes
object to control the space around the plot box when you add or modify decorations such as titles and axis labels.
If you change the axes ColorOrder
orLineStyleOrder
properties after plotting into the axes, the colors and line styles in your plot update immediately. In R2019a and previous releases, the new colors and line styles affect only subsequent plots, not the existing plots.
To preserve the original behavior, set the axes ColorOrderIndex
orLineStyleOrderIndex
property to any value (such as its current value) before changing the ColorOrder
orLineStyleOrder
property.
There is a new indexing scheme that enables you to change the colors and line styles of existing plots by setting the ColorOrder
orLineStyleOrder
properties. MATLAB applies this indexing scheme to all objects that have aColorMode
, FaceColorMode
,MarkerFaceColorMode
, or CDataMode
. As a result, your code might produce plots that cycle though the colors and line styles differently than in previous releases.
In R2019a and earlier releases, MATLAB uses a different indexing scheme which does not allow you to change the colors of existing plots.
To preserve the way your plots cycle through colors and line styles, set the axesColorOrderIndex
or LineStyleOrderIndex
property to any value (such as its current value) before plotting into the axes.