"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo evitar la leyenda de corte en Matplotlib y mantener la visibilidad de los datos?

¿Cómo evitar la leyenda de corte en Matplotlib y mantener la visibilidad de los datos?

Publicado el 2024-11-02
Navegar:984

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

Abordar la leyenda de corte en Matplotlib cambiando el tamaño del cuadro de figura

En Matplotlib, mover la leyenda fuera del eje de la trama a menudo resulta en su corte por el cuadro de figura. Si bien se ha sugerido como solución reducir el eje, disminuye la visibilidad de los datos, especialmente cuando se presentan gráficos complejos con numerosas entradas de leyenda.

Un enfoque más eficaz, como se destaca en la respuesta de Benjamin Root en la lista de correo de Matplotlib, implica modificando la llamada savefig para incorporar la leyenda como un artista adicional:

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

Este método, similar Además de usar apretado_layout, permite a savefig considerar la leyenda al calcular el tamaño del cuadro de figura.

El siguiente ejemplo de código mejorado demuestra la solución:

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')

Esto ahora ajusta dinámicamente el tamaño del cuadro de figura para acomodar la leyenda, evitando su corte y manteniendo la visibilidad de los datos.

Declaración de liberación Este artículo se reimprime en: 1729223656 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3