Home >Backend Development >Python Tutorial >How Can I Create Matplotlib Subplots with Flexibly Configurable Sizes?

How Can I Create Matplotlib Subplots with Flexibly Configurable Sizes?

Susan Sarandon
Susan SarandonOriginal
2024-12-15 06:55:12795browse

How Can I Create Matplotlib Subplots with Flexibly Configurable Sizes?

Configuring Subplot Sizes Flexibly in Matplotlib

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn