

set( f, 'units', 'normalized' ) a = subplot( 'position', ) title( a, 'Subplots are awesome!' ) set( a, 'fontsize', 16 ) a = uicontrol( f, 'units', 'normalized', 'position'. Note, for the example below, I have specified that the figure is in normalized units, however, the default unit is pixels. The task of creating GUIs in MATLAB is left for another tutorial. I have included one example below that inserts a sub-plot in the left half of the figure and three push buttons on the right half. Specifying sub-plots in this manner allows you to have complete control over the position and is essential if you want to programmatically create GUIs. The position property contains the horizontal origin (h0), vertical origin (v0), width (w) and height (h), respectively, and is organized like this. To specify a sub-plot position, you pass the keyboard “position” as the first argument in subplot(), followed by a 1 x 4 vector that describes the position. If you are unfamiliar with relative figure units, you can see a previous tutorial that covered these. This is most easily done by using normalized figure units and specifying relative offsets within the figure. The final and most flexible way to use the subplot() function is to directly specify the position of the axes. Image by author Using Position Coordinates In all cases, the linear indices have been included over the plots to illustrate which parts of the grid they are covering. Finally, the last sub-plot is in the bottom right corner and spans the last two rows. The second sub-plot is placed in the bottom left corner and covers a 2 x 2 sub-grid. The first sub-plot is placed at the top of the grid and spans all three columns. This method lets you make some really nice looking plots that can easily accommodate various types of data.

So for example, subplot( 1, 3, ) would create a subplot grid that has three columns and a single plot that occupies the first two columns.

This is accomplished by passing in an array of linear indices as third argument, rather than just a single value. Image by author Using Different Sized PlotsĪ slightly more flexible way of using subplot() is to place sub-plots over multiple points in the grid. For convenience, I have also used the text() function to display the linear index in each subplot. Let’s start with a simple example that includes three sub-plots along a single row. It’s OK if this doesn’t make sense yet, the ordering is visualized in all of the examples within this section, and is especially obvious in the grid example. The index starts at 1 and increases from left to right and top to bottom. The third argument is a linear index that selects the current active plot axes. The first two arguments define the number of rows and columns that will be included in the grid. The basic form of the subplot() command takes in three inputs: nRows, nCols, linearIndex. The subplot() function in MATLAB/Octave allows you to insert multiple plots on a grid within a single figure.
#Subplot example code
The source code for the included examples can be found in the GitHub repository. The provided examples work in both MATLAB and Octave. In this tutorial, I describe three different ways to use the subplot() command and provide examples of each. They can also be used to quickly create interactive Graphical User Interfaces (GUIs). They allow users to very quickly create customized data visualizations and displays. Sub-plotting is a very powerful feature in MATLAB.
