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 ?
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 :
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!