Comment étendre dynamiquement la taille de la zone de figure pour s'adapter à une légende extensible dans Matplotlib ?

Susan Sarandon
Libérer: 2024-10-18 12:51:30
original
449 Les gens l'ont consulté

How to Expand Figure Box Size Dynamically to Accommodate an Expanding Legend in Matplotlib?

Zone de figure extensible pour s'adapter au dépassement de la légende

Description du problème

Lorsque vous placez une légende en dehors de l'axe dans Matplotlib, elle peut parfois s'étendre au-delà de l'axe. limites de la zone de figure, ce qui donne une apparence de coupure. Redimensionner les axes des axes en les réduisant n'est pas une solution optimale, car cela diminue la visibilité des données.

Extension dynamique de la zone de figure

La solution souhaitée est d'étendre dynamiquement la taille de la zone de figure à s'adapter à une légende en expansion.

Implémentation : appel savefig personnalisé avec bbox_extra_artists

Pour y parvenir, l'appel de la fonction savefig peut être ajusté pour inclure l'argument bbox_extra_artists :

<code class="python">fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>
Copier après la connexion

Ceci précise que la boîte de figurines doit prendre en compte des artistes supplémentaires, tels que la légende (lgd), lors du calcul de sa taille.

Exemple et résultat

Utilisation de cet appel savefig modifié :

<code class="python">import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.set_title("Trigonometry")
ax.plot(x, np.sin(x), label='Sine')
ax.plot(x, np.cos(x), label='Cosine')
ax.plot(x, np.arctan(x), label='Inverse tan')
lgd = ax.legend(loc='upper center', bbox_to_anchor=(0.5,-0.1))
ax.grid('on')
fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>
Copier après la connexion

Produit une figure avec la légende s'étendant au-delà de l'axe mais logée dans la boîte de figure agrandie :

  Trigonometry

  2
  1
  0
 -1
 -2
 -4π  -2π     0     2π    4π
Inverse tan
Cosine
Sine
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!

source:php
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!