2 Plots 1 Figure Matlab

Sub-plotting is a very powerful feature in MATLAB. They allow users to very quickly create customized data visualizations and displays. They can also be used to quickly create interactive Graphical User Interfaces (GUIs). In this tutorial, I describe three different ways to use the subplot() command and provide examples of each. The provided examples should work in both MATLAB and Octave.

The source code for the included examples can be found in the GitHub repository.

Using Basic Subplots

Matlab plot figure size

The subplot() function in MATLAB/Octave allows you to insert multiple plots on a grid within a single figure. The basic form of the subplot() command takes in three inputs: nRows, nCols, linearIndex. The first two arguments define the number of rows and columns that will be included in the grid. The third argument is a linear index that selects the current active plot axes. The index starts at 1 and increases from left to right and top to bottom. It’s OK if this doesn’t make sense yet, the ordering is visualized in all of the examples within this section, especially in the grid example.

Let’s start with a simple example that includes three sub-plots along a single row. For convenience, I have also used the text() function to display the linear index in each subplot.

Notice in the code for this example that I have saved the axes handle (a1, a2, a3) for each of the subplots. This is important because now that there are multiple plot axes on the figure, we will need to specify which axes we are referencing whenever we change properties. For example, if we wanted to change the font size, we would have to specify the font size on each axes. The code snippet below is an example where the font is being set to a different size on each axes. This concept extends to all other plot axes properties and shows how each sub-plot can be fully customized.

Examples to Implement Plot Vector Matlab. Here are the examples: Example #1. First, we will define ‘A’ as a vector containing values between pi (π) and 3π. The answer slayton gave is good. Here's another tip: If you have two plots opened in two separate Matlab figure windows, don't forget you can point-and-click copy the proper plots. Do this by clicking the arrow pointer in the Matlab figure window, and then clicking on the plotted line. Copy the (plotted line, textbox, etc.) object. I have the following code and I want to combine phase space plots into one single figure. I have coded the functions, but I don't know how to make MATLAB put them into one figure. As you see, it i.

Here is another example where I have swapped the first two arguments in the subplot function and now we will create a figure with three rows.

Let us take another example where we will create a scatter plot in a new window using figure function. For this example, we will get our background in Red color. Scatter((1:40),and(1,40)); Creating scatter plot using random values As explained earlier, MATLAB will by default plot the graph in the figure object created. You can display multiple plots in different subregions of the same window using the subplot function. The first two inputs to subplot indicate the number of plots in each row and column. The third input specifies which plot is active. For example, create four plots in a 2-by-2 grid within a figure window.

Finally, we can create a full grid of sub-plots. In this example, I have included 3 rows and 3 columns; however, any combination can be used. This example nicely illustrates how the linear index increases.

Plot Two Functions In Matlab

Using Different Sized Plots

A slightly more flexible way of using subplot() is to place sub-plots over multiple points in the grid. This is accomplished by passing in an array of linear indices as third argument, rather than just a single value. So for example, subplot( 1, 3, [1, 2] ) would create a subplot grid that has three columns and a single plot that occupies the first two columns. This method lets you make some really nice looking plots that can easily accommodate various types of data.

Let’s look at another example. The underlying grid is of shape 3 x 3. The first sub-plot is placed at the top of the grid and spans all three columns. The second sub-plot is placed in the bottom left corner and covers a 2 x 2 sub-grid. Finally, the last sub-plot is in the bottom right corner and spans the last two rows. In all cases, the linear indices have been included over the plots to illustrate which parts of the grid they are covering.

Another convenient use of populating large grids is to simply leave some empty. This is nice because it creates white space and allows you to align sub-plots at different places within the figure. Here is an example that center’s a sub-plot in the top row and spans the sub-plot in the bottom row across all of the columns.

Using Position Coordinates

Matlab

Matlab Plot Figure

The final and most flexible way to use the subplot() function is to directly specify the position of the axes. This is most easily done by using normalized figure units and specifying relative offsets within the figure. If you are unfamiliar with relative figure units, you can see a previous tutorial that covered these.

2 Plots 1 Figure Matlab

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. The position property contains the horizontal origin (h0), vertical origin (v0), width (w) and height (h), respectively, and is organized like this: [ h0, v0, h, v ]. 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.

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. The buttons are just for illustration. The task of creating GUIs in MATLAB is left for another tutorial. Note, for the example below, I have specified that the figure is in normalized units, however, the default unit is pixels.

Summary

In this quick tutorial, I reviewed three (well, two and a half really) different ways that you can use subplot() in MATLAB/Octave. I find this function to be extremely useful for a number of different things and use it everyday. I use all three approaches depending on what I am trying to accomplish. Play around with the examples and put in some real data to get a feel for how these types of sub-plots can be useful for you.

Plots

Some key points to remember:

  • Each sub-plot has its own axes handle and properties (e.g. font size, labels, grid) that need to be individually set
  • Make sure you save you axes handles and refer to them correctly
  • The sub-plot index can be specified as a single value or an array of integer indices
  • If you are specifying position vectors, pay attention to the figure units

Matlab Plot Points

Happy coding!