Maison >développement back-end >Tutoriel Python >Comment étendre la zone de figure pour accueillir les légendes en dehors de l'axe dans Matplotlib ?

Comment étendre la zone de figure pour accueillir les légendes en dehors de l'axe dans Matplotlib ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-18 12:18:30485parcourir

How to Expand Figure Box to Accommodate Legends Outside the Axis in Matplotlib?

Agrandir la boîte de figures pour les légendes en dehors de l'axe

Déplacer une légende en dehors de l'axe entraîne souvent que la boîte de figures soit trop petite pour accueillir la taille de la légende. Réduire l'axe n'est pas idéal car cela réduit la taille du tracé, ce qui rend plus difficile l'interprétation de données complexes.

Redimensionnement dynamique de la zone de figure

Pour résoudre ce problème, il est possible pour ajuster dynamiquement la taille de la zone de figure pour l'adapter à la légende. Ceci peut être réalisé en modifiant l'appel savefig() avec les arguments suivants :

  1. bbox_extra_artists pour inclure des artistes supplémentaires qui s'étendent au-delà de l'axe, tels que des légendes.
  2. bbox_inches='tight ' pour ajuster la taille de la figure afin qu'elle s'adapte à tous les éléments qu'elle contient.

Exemple de code

Considérez le code suivant :

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

# Construct a plot with a legend
x = np.arange(-2*np.pi, 2*np.pi, 0.1)
fig = plt.figure(1)
ax = fig.add_subplot(111)
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=9, bbox_to_anchor=(0.5,0))
ax.grid('on')

# Save the figure with the adjusted bounding box
fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')</code>

Sortie

Ce code créera un tracé avec une légende en dehors de l'axe et la zone de figure s'agrandira pour accueillir la légende. Il est également possible d'inclure des artistes supplémentaires, tels que des étiquettes de texte, dans l'argument bbox_extra_artists.

Commande simplifiée

Dans les versions récentes de Matplotlib, la commande a été simplifiée . Pour enregistrer une figure avec un cadre de délimitation étroit, seul l'argument suivant est nécessaire :

<code class="python">plt.savefig('x.png', bbox_inches='tight')</code>

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