Home >Backend Development >Python Tutorial >How Can I Create Matplotlib Subplots with Flexibly Configurable Sizes?
Creating subplots with varying sizes is a common requirement when visualizing data. Matplotlib offers two approaches to adjust subplot dimensions: by using GridSpec or by configuring the figure itself.
Using Matplotlib's Figure for Subplot Sizing
In the provided example, the task is to create two subplots with the first subplot three times wider than the second. Using the figure's constructor, the size of the first plot can be adjusted using the figsize argument. However, the size of the second plot cannot be directly controlled this way.
Solution with Keyword Arguments (Matplotlib >= 3.6.0)
As of Matplotlib version 3.6.0, keyword arguments can be passed directly to plt.subplots and subplot_mosaic to specify the width_ratios or height_ratios of subplots. This eliminates the need for GridSpec for this specific task.
import matplotlib.pyplot as plt # Create subplots with custom width ratios f, (a0, a1) = plt.subplots(1, 2, width_ratios=[3, 1]) # Plot on subplots a0.plot(x, y) a1.plot(y, x) # Save to PDF f.savefig('custom_width_subplots.pdf')
Using Subplots with Gridspec_kw
For earlier versions of Matplotlib, or for more fine-grained control over subplot layout, the subplots function with the gridspec_kw argument can be used. This approach involves creating a figure and individual subplots, specified with width_ratios or height_ratios in the gridspec_kw dictionary.
import numpy as np import matplotlib.pyplot as plt # Generate data x = np.arange(0, 10, 0.2) y = np.sin(x) # Create subplots with custom width ratios f, (a0, a1) = plt.subplots(1, 2, gridspec_kw={'width_ratios': [3, 1]}) # Plot on subplots a0.plot(x, y) a1.plot(y, x) # Tighten layout and save to PDF f.tight_layout() f.savefig('grid_figure.pdf')
The above is the detailed content of How Can I Create Matplotlib Subplots with Flexibly Configurable Sizes?. For more information, please follow other related articles on the PHP Chinese website!