Matplotlib is an amazing visualization library in Python for 2D plots of arrays. Matplotlib is a multi-platform data visualization library built on NumPy arrays and designed to work with the broader SciPy stack.
Â
matplotlib.gridspec.GridSpec
The matplotlib.gridspec.GridSpec class is used to specify the geometry of the grid to place a subplot. For this, to work the number of rows and columns must be set. Optionally, tuning of subplot layout parameters can be also done.
Â
Syntax: class matplotlib.gridspec.GridSpec(nrows, ncols, figure=None, left=None, bottom=None, right=None, top=None, wspace=None, hspace=None, width_ratios=None, height_ratios=None)
Parameters:Â
Â
- nrows: It is an integer representing the number of rows in the grid.
Â- ncols: It is an integer representing the number of columns in the grid.
Â- figure: It is an optional parameter used to draw figures.
Â- left, right, top, bottom: These are optional parameters used to define the extent of the subplots as fraction of figure width or height.
Â- wspase: It is an optional float argument used to reserve the width space between subplots.
Â- hspace: It is an optional float argument used to reserve the height space between subplots.
Â- width_ratios: It is an optional parameter that represents the width ratios of the columns.
Â- height_ratios: It is an optional parameter that represents the width ratios of the rows.Â
Â
Â
Methods of the class:Â
Â
- get_subplot_params(self, figure=None): It returns a dictionary of subplot layout parameters. unless a figure attribute is set, the default parameter is from rcParams.
 - ight_layout(self, figure, renderer=None, pad=1.08, h_pad=None, w_pad=None, rect=None): It is used to give specific padding to adjust the subplots. Here pad is a float value that sets padding between figure edge and the subplot edges as a fraction of the font size. The h_pad and w_pad are optional argument used to set padding between adjacent subplots. Also rect is used to normalize figure coordinates of a rectangle that includes all the subplot area. its default is (0, 0, 1, 1). It is a tuple of 4 floats.
Â
Example 1:Â
Â
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec
gs = GridSpec(8, 39)
ax1 = plt.subplot(gs[:6, :35])
ax2 = plt.subplot(gs[6:, :])
data1 = np.random.rand(6, 35)
data2 = np.random.rand(2, 39)
ax1.imshow(data1)
ax2.imshow(data2)
plt.show()
Output:Â
Â
Example 2:Â
Â
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
fig = plt.figure(figsize =([7, 4]))
gs = gridspec.GridSpec(2, 6)
gs.update(wspace = 1.5, hspace = 0.3)
ax1 = plt.subplot(gs[0, :2])
ax1.set_ylabel('ylabel', labelpad = 0, fontsize = 12)
ax2 = plt.subplot(gs[0, 2:4])
ax2.set_ylabel('ylabel', labelpad = 0, fontsize = 12)
ax3 = plt.subplot(gs[0, 4:6])
ax3.set_ylabel('ylabel', labelpad = 0, fontsize = 12)
ax4 = plt.subplot(gs[1, 1:3])
ax4.set_ylabel('ylabel', labelpad = 0, fontsize = 12)
ax5 = plt.subplot(gs[1, 3:5])
ax5.set_ylabel('ylabel', labelpad = 0, fontsize = 12)
plt.show()
Output:Â
Â
Â