Matplotlib Tutorial

Matplotlib - Subplot2grid() Function

The Matplotlib.pyplot.subplot2grid() function provides additional flexibility to create axes object at a specified location inside a regular grid. It also allows the axes object to be spanned across multiple rows or columns.


matplotlib.pyplot.subplot2grid(shape, loc, 
                               rowspan=1, colspan=1)


shape Required. Specify number of rows and of columns of the grid in which to place axis as (int, int).
loc Required. Specify row number and column number of the axis location within the grid as (int, int).
rowspan Optional. Specify number of rows for the axis to span downwards. Default is 1.
colspan Optional. Specify number of columns for the axis to span to the right. Default is 1.

Example: subplot2grid example

In the example below, a figure object of 3x3 grid is created and filled with axes objects of varying sizes in row and column spans, each showing a different plot.

import matplotlib.pyplot as plt
import numpy as np

#creating a array of values between
#0.1 to 10 with a difference of 0.1
x = np.arange(0.1, 10, 0.1)
y1 = np.sin(x)
y2 = np.exp(x)
y3 = np.log(x)

fig = plt.figure()
ax1 = plt.subplot2grid((3,3),(0,0),colspan = 2)
ax2 = plt.subplot2grid((3,3),(0,2), rowspan = 3)
ax3 = plt.subplot2grid((3,3),(1,0),rowspan = 2, colspan = 2)

#plotting curves
ax1.plot(x, y1) 
ax2.plot(x, y2) 
ax3.plot(x, y3) 

#formatting axes
ax1.set_title("Sine plot")
ax2.set_title("Exp plot")
ax3.set_title("Log plot")

#displaying the figure

The output of the above code will be:

Subplot2grid() Function