Maison > développement back-end > Tutoriel Python > Pouvez-vous créer des objets AxesSubplot indépendamment des figures dans Matplotlib ?

Pouvez-vous créer des objets AxesSubplot indépendamment des figures dans Matplotlib ?

Patricia Arquette
Libérer: 2024-11-13 00:46:02
original
759 Les gens l'ont consulté

Can You Create AxesSubplot Objects Independently of Figures in Matplotlib?

Découplage de la création d'AxesSubplot et de l'ajout de figures

Problème :
La personnalisation des tracés matplotlib nécessite souvent la création d'AxesSubplot objets. Cependant, ces objets sont généralement liés à une figure lors de leur création. Cela limite la possibilité de réutiliser des AxesSubplots sur plusieurs figures.

Question :
Est-il possible de créer des objets AxesSubplot indépendamment des instances de Figure, puis de les ajouter à différentes figures selon les besoins ?

Réponse :

Oui, il est possible de découpler la création d'AxesSubplot et l'ajout de figures dans matplotlib. Il existe deux approches principales :

Passer des fonctions avec des instances Axes :

  • Créer une fonction qui prend une instance Axes comme argument.
  • Implémentez le code de traçage dans cette fonction.
  • Passez une instance Axes existante ou nouvellement créée à la fonction.
  • Cela permet de réutiliser la même sous-intrigue dans plusieurs figures en passant la même instance Axes à différents appels de fonction.

Ajout d'axes aux figures :

  • Créez une instance d'axes indépendamment d'une figure.
  • Ajoutez l'instance Axes à une figure à l'aide de la méthode Figure.axes.append().
  • Spécifiez la géométrie souhaitée dans la méthode append().
  • Cette approche permet la réutilisation des instances Axes à travers plusieurs figures, quelle que soit la taille de la figure ou le nombre de sous-intrigues.

Exemple de code :

Passer des fonctions avec des instances d'axes :

import numpy as np
import matplotlib.pyplot as plt

def plot_sin(ax):
    x = np.linspace(0, 6 * np.pi, 100)
    ax.plot(x, np.sin(x))
    ax.set_ylabel('Yabba dabba do!')

fig1, (ax1, ax2) = plt.subplots(nrows=2)
plot_sin(ax1)
plot_sin(ax2)

fig2 = plt.figure()
ax3 = fig2.add_subplot(111)
plot_sin(ax3)

plt.show()
Copier après la connexion

Ajout d'axes aux figures :

import numpy as np
import matplotlib.pyplot as plt

fig1 = plt.figure()
ax1 = fig1.add_subplot(111)

fig2 = plt.figure()
ax2 = fig2.add_subplot(111)
fig2.axes.append(ax1)

plt.show()
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal