"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment empêcher la légende de coupure dans Matplotlib et maintenir la visibilité des données ?

Comment empêcher la légende de coupure dans Matplotlib et maintenir la visibilité des données ?

Publié le 2024-11-02
Parcourir:408

How to Prevent Cut-off Legend in Matplotlib and Maintain Data Visibility?

Adressage de la légende de coupure dans Matplotlib en redimensionnant la zone de figure

Dans Matplotlib, déplacer la légende en dehors de l'axe du tracé entraîne souvent sa coupure par la zone de figure. Bien que la réduction de l'axe ait été suggérée comme solution, cela diminue la visibilité des données, en particulier lors de la présentation de tracés complexes avec de nombreuses entrées de légende.

Une approche plus efficace, comme le souligne la réponse de Benjamin Root sur la liste de diffusion Matplotlib, implique modifier l'appel savefig pour incorporer la légende en tant qu'artiste supplémentaire :

fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')

Cette méthode, similaire à l'aide de Tight_layout, permet à savefig de prendre en compte la légende lors du calcul de la taille de la zone de figure.

L'exemple de code amélioré suivant illustre la solution :

import matplotlib.pyplot as plt
import numpy as np

plt.gcf().clear()
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')
handles, labels = ax.get_legend_handles_labels()
lgd = ax.legend(handles, labels, loc='upper center', bbox_to_anchor=(0.5,-0.1))
text = ax.text(-0.2,1.05, "Aribitrary text", transform=ax.transAxes)
ax.set_title("Trigonometry")
ax.grid('on')
fig.savefig('samplefigure', bbox_extra_artists=(lgd,text), bbox_inches='tight')

Ceci ajuste désormais dynamiquement la taille de la zone de figure pour s'adapter à la légende, empêchant sa coupure tout en conservant la visibilité des données.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729223656. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3