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

Barbara Streisand
Libérer: 2024-10-18 12:20:03
original
365 Les gens l'ont consulté

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')
Copier après la connexion

Cette méthode, similaire à l'utilisation de tight_layout, permet à savefig de prendre en compte la légende lors du calcul de la taille de la boîte de la figure.

Le 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')
Copier après la connexion

Cela 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.

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!