Main Content

figure

Create figure window

Description

figure creates a new figure window using default property values. The resulting figure is the current figure.

figure(Name,Value) modifies properties of the figure using one or more name-value pair arguments. For example, figure('Color','white') sets the background color to white.

example

f = figure(___) returns the Figure object. Use f to query or modify properties of the figure after it is created.

example

figure(f) makes the figure specified by f the current figure and displays it on top of all other figures.

example

figure(n) finds a figure in which the Number property is equal to n, and makes it the current figure. If no figure exists with that property value, MATLAB® creates a new figure and sets its Number property to n.

Examples

collapse all

Create a default figure. The figure appears as a tab in a figure container.

f = figure;

Figure window

Get the location, width, and height of the figure.

f.Position
ans =

    1    1    1070    620

This means that the figure is positioned with its bottom left corner adjacent to the corner of the figure container, and the figure is 1070 pixels wide and 620 pixels tall.

You can resize the figure container interactively. Alternatively, you can specify the figure size by setting its Position property, which undocks the figure from the figure container. For example, position the figure to be 100 pixels to the right and 200 pixels above the bottom left corner of the primary display, and specify its size to be 500 pixels wide and 300 pixels tall.

f.Position = [100 200 500 300];

Figure window with width and height halved

Create a figure, and specify the Name property. By default, the resulting title includes the figure number.

figure(Name="Measured Data");

Figure container with a tab titled "Figure 1: Measured Data"

Specify the Name property again, but this time, set the NumberTitle property to "off". The resulting title does not include the figure number.

figure(Name="Measured Data",NumberTitle="off");

Figure container with a tab titled "Measured Data"

Create two figures, and then create a line plot. The figures appear as tabs in a figure container. By default, the plot command targets the current figure.

f1 = figure;
f2 = figure;
plot([1 2 3],[2 4 6]);

Two figures in a figure container with tabs titled "Figure 1" and "Figure 2". Figure 2 is and contains a plot with some data.

Set the current figure to f1, so that it is the target for the next plot. Then create a scatter plot.

figure(f1);
scatter((1:20),rand(1,20));

Two figures in a figure container. Figure 1 is selected and contains a scatter plot with some data.

Input Arguments

collapse all

Target figure, specified as a Figure object.

Target figure number, specified as a scalar integer value. When you specify this argument, MATLAB searches for an existing figure in which the Number property is equal to n. If no figure exists with that property value, MATLAB creates a new figure and sets its Number property to n. By default, the Number property value is displayed in the title of the figure.

Data Types: double

Name-Value Arguments

collapse all

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: figure(Color="white") creates a figure with a white background.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: figure("Color","white") creates a figure with a white background.

Note

The properties listed here are only a subset. For a full list, see Figure.

Name of the figure, specified as a character vector or a string scalar.

Example: figure('Name','Results') sets the name of the figure to 'Results'.

By default, the name is 'Figure n', where n is an integer. When you specify the Name property, the title of the figure becomes 'Figure n: name'. If you want only the Name value to appear, set IntegerHandle or NumberTitle to 'off'.

Background color, specified as an RGB triplet, a hexadecimal color code, a color name, or a short name. If you specify 'none', the background color appears black on screen, but if you print the figure, the background prints as though the figure window is transparent.

For a custom color, specify an RGB triplet or a hexadecimal color code.

  • An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range [0,1], for example, [0.4 0.6 0.7].

  • A hexadecimal color code is a string scalar or character vector that starts with a hash symbol (#) followed by three or six hexadecimal digits, which can range from 0 to F. The values are not case sensitive. Therefore, the color codes "#FF8800", "#ff8800", "#F80", and "#f80" are equivalent.

Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and the hexadecimal color codes.

Color NameShort NameRGB TripletHexadecimal Color CodeAppearance
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"Not applicableNot applicableNot applicableNo color

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

PalettePalette Colors

"gem" — Light theme default

Before R2025a: Most plots use these colors by default.

Sample of the "gem" color palette

"glow" — Dark theme default

Sample of the "glow" color palette

You can get the RGB triplets and hexadecimal color codes for these palettes using the orderedcolors and rgb2hex functions. For example, get the RGB triplets for the "gem" palette and convert them to hexadecimal color codes.

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

Before R2023b: Get the RGB triplets using RGB = get(groot,"FactoryAxesColorOrder").

Before R2024a: Get the hexadecimal color codes using H = compose("#%02X%02X%02X",round(RGB*255)).

Data Types: double | char

Location and size of the figure, excluding borders, figure tools, and title bar, specified as a four-element vector of the form [left bottom width height].

This table describes each element in the vector.

ElementDescription
left

Distance from the left edge of the primary display to the inner left edge of the window. This value can be negative on systems that have more than one monitor.

If the figure is docked, then this value is relative to its container.

bottom

Distance from the bottom edge of the primary display to the inner bottom edge of the window. This value can be negative on systems that have more than one monitor.

If the figure is docked, then this value is relative to its container.

widthDistance between the right and left inner edges of the window.
heightDistance between the top and bottom inner edges of the window.

All measurements are in units specified by the Units property.

For figures that are docked into a figure container, setting the Position property undocks the figure and sets the WindowStyle property to 'normal'.

To position the full window, including the borders, figure tools, and title bar, use the OuterPosition property.

Note

The Windows® operating system enforces a minimum window width and a maximum window size. If you specify a figure size outside of those limits, the displayed figure conforms to the limits instead of the size you specified.

Units of measurement, specified as one of the values from this table.

Units ValueDescription
'pixels' (default)

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.

'normalized'These units are normalized with respect to the parent container. The lower-left corner of the container maps to (0,0) and the upper-right corner maps to (1,1).
'inches'Inches.
'centimeters'Centimeters.
'points'Points. One point equals 1/72nd of an inch.
'characters'

These units are based on the default uicontrol font of the graphics root object:

  • Character width = width of the letter x.

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

To access the default uicontrol font, use get(groot,'defaultuicontrolFontName') or set(groot,'defaultuicontrolFontName').

MATLAB measures all units from the lower left corner of the parent object.

This property affects the Position property. If you change the Units property, consider returning its value to the default value after completing your computation to avoid affecting other functions that assume the default value.

The order in which you specify the Units and Position properties has these effects:

  • If you specify the Units before the Position property, then MATLAB sets Position using the units you specify.

  • If you specify the Units property after the Position property, MATLAB sets the position using the default Units. Then, MATLAB converts the Position value to the equivalent value in the units you specify.

More About

collapse all

Tips

  • Use the graphics root object to set default values on the root level for other types of objects. For example, set the default colormap for all future figures to the summer colormap.

    set(groot,'DefaultFigureColormap',summer)
    To restore a property to its original MATLAB default, use the 'remove' keyword.
    set(groot,'DefaultFigureColormap','remove')
    For more information on setting default values, see Default Property Values.

Version History

Introduced before R2006a

See Also

Functions

Properties