MATLAB Function Reference
subplot

Create and control multiple axes

Syntax

• ```subplot(m`,`n`,`p)
subplot(m,n,p,'replace')
subplot(h)
subplot('Position',[left bottom width height])
h = subplot(...)
```

Description

`subplot` divides the current figure into rectangular panes that are numbered row-wise. Each pane contains an axes. Subsequent plots are output to the current pane.

```subplot(m,n,p) ``` creates an axes in the `p`-th pane of a figure divided into an `m`-by-`n` matrix of rectangular panes. The new axes becomes the current axes.

If `p` is a vector, it specifies an axes having a position that covers all the subplot positions listed in `p`.

```subplot(m,n,p,'replace') ``` If the specified axes already exists, delete it and creat a new axes.

```subplot(h) ``` makes the axes with handle `h` current for subsequent plotting commands.

```subplot('Position',[left bottom width height]) ``` creates an axes at the position specified by a four-element vector. `left`, `bottom`, `width`, and `height` are in normalized coordinates in the range from 0.0 to 1.0.

```h = subplot(...) ``` returns the handle to the new axes.

Remarks

If a `subplot` specification causes a new axes to overlap any existing axes, then `subplot` deletes the existing axes and uicontrol objects. However, if the `subplot` specification exactly matches the position of an existing axes, then the matching axes is not deleted and it becomes the current axes.

`subplot(1,1,1)` or `clf` deletes all axes objects and returns to the default `subplot(1,1,1)` configuration.

You can omit the parentheses and specify subplot as.

• ```subplot mnp
```

where `m` refers to the row, `n` refers to the column, and `p` specifies the pane.

Special Case - subplot(111)

The command `subplot(111)` is not identical in behavior to `subplot(1,1,1)` and exists only for compatibility with previous releases. This syntax does not immediately create an axes, but instead sets up the figure so that the next graphics command executes a `clf`` reset` (deleting all figure children) and creates a new axes in the default position. This syntax does not return a handle, so it is an error to specify a return argument. (This behavior is implemented by setting the figure's `NextPlot` property to `replace`.)

Examples

To plot `income` in the top half of a figure and `outgo` in the bottom half,

• ```income = [3.2 4.1 5.0 5.6];
outgo = [2.5 4.0 3.35 4.9];
subplot(2`,`1`,`1); plot(income)
subplot(2`,`1`,`2); plot(outgo)
```

The following illustration shows four subplot regions and indicates the command used to create each.

`axes`, `cla`, `clf`, `figure`, `gca`