Maison >développement back-end >Tutoriel Python >Comment étendre dynamiquement la taille de la zone de figure pour s'adapter à une légende extensible dans Matplotlib ?
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.
La solution souhaitée est d'étendre dynamiquement la taille de la zone de figure à s'adapter à une légende en expansion.
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>
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.
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>
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
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!