MATLAB Function Reference |

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.

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.

**See Also**

Basic Plots and Graphs for more information

sub2ind | subsasgn |