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
Release: 2024-12-15 06:55:12
Original
793 people have browsed it

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')
Copy after login

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')
Copy after login

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!

source:php.cn
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template