Maison  >  Article  >  développement back-end  >  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
Patricia Arquetteoriginal
2024-11-13 00:46:02692parcourir

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

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

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