Maison >développement back-end >Tutoriel Python >Comment puis-je créer des sous-parcelles Matplotlib avec des tailles configurables de manière flexible ?

Comment puis-je créer des sous-parcelles Matplotlib avec des tailles configurables de manière flexible ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-15 06:55:12795parcourir

How Can I Create Matplotlib Subplots with Flexibly Configurable Sizes?

Configuration flexible des tailles de sous-parcelles dans Matplotlib

La création de sous-parcelles de différentes tailles est une exigence courante lors de la visualisation de données. Matplotlib propose deux approches pour ajuster les dimensions des sous-parcelles : en utilisant GridSpec ou en configurant la figure elle-même.

Utiliser la figure de Matplotlib pour le dimensionnement des sous-parcelles

Dans l'exemple fourni, la tâche consiste à créer deux sous-parcelles avec la première sous-parcelle trois fois plus large que la seconde. À l'aide du constructeur de la figure, la taille du premier tracé peut être ajustée à l'aide de l'argument figsize. Cependant, la taille du deuxième tracé ne peut pas être directement contrôlée de cette façon.

Solution avec arguments de mots clés (Matplotlib >= 3.6.0)

À partir de la version Matplotlib 3.6.0, les arguments de mots-clés peuvent être transmis directement à plt.subplots et subplot_mosaic pour spécifier les width_ratios ou height_ratios des sous-parcelles. Cela élimine le besoin de GridSpec pour cette tâche spécifique.

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')

Utilisation de sous-plots avec Gridspec_kw

Pour les versions antérieures de Matplotlib, ou pour un contrôle plus précis sur disposition des sous-intrigues, la fonction subplots avec l'argument gridspec_kw peut être utilisée. Cette approche implique la création d'une figure et de sous-parcelles individuelles, spécifiées avec width_ratios ou height_ratios dans le dictionnaire gridspec_kw.

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')

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn