Subplots are used to plot multiple plots in a single figure. In Python’s Matplotlib, subplots are used comparative data visualization. Each subplot operates independently, but they share the same figure canvas.

By default, Matplotlib leaves some amount of space between subplots to ensure that axis labels and titles don’t overlap. In some scenarios, these gaps can be seen. For example, creating a grid of images or when axis labels are not necessary. In this scenario, it will be a waste of space.

Following are the several methods to remove gaps between the subplots

Adjusting Subplot Parameters with subplots_adjust

In Matplotlib, using the subplots_adjust function, we can manually adjust the spacing between the subplots.

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2)
plt.subplots_adjust(wspace=0, hspace=0)

In the above example, wspace and hspace are set to 0 to remove the space between subplots horizontally and vertically.

Using tight_layout for Automatic Adjustment

The tight_layout method automatically adjusts subplot params so that the subplot fits into the figure area.

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2)

The pad parameter in the above example controls the padding between the subplots and can be set to 0 for no space.

Using GridSpec for Advanced Grid Customization

For more complex subplot arrangements, GridSpec provides sophisticated subplot placement. This method is useful when we need different subplot sizes or more control over their placement.

Following is the example:

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

fig = plt.figure()
gs = gridspec.GridSpec(2, 2, wspace=0, hspace=0)
axs = [fig.add_subplot(gs[i]) for i in range(4)]

Categorized in:

Tagged in: