2009-08-28 25 views
5

Soy relativamente nuevo en python y estoy desarrollando una GUI de pyqt. Quiero proporcionar una opción de casilla de verificación para mostrar/ocultar la leyenda de un gráfico. ¿Hay alguna manera de ocultar una leyenda?Mostrar/ocultar la leyenda de un gráfico

He intentado usar el '_nolegend_' de pyplot y parece funcionar en ciertas entradas de leyenda, pero crea un ValueError si se aplica a todas las entradas.

Puedo forzar brutalmente a la leyenda para que se oculte borrando y redibujando toda la trama, pero ... es algo terrible de hacer, especialmente con grandes conjuntos de datos.

Agradecemos cualquier ayuda con esto.

Respuesta

7

aquí hay algo que puede probar en la línea de comandos:

plot([3,1,4,1],label='foo') 
lgd=legend() 

# when you want it to be invisible: 
lgd.set_visible(False) 
draw() 

# when you want it to be visible: 
lgd.set_visible(True) 
draw() 

En un programa de interfaz gráfica de usuario que lo mejor es evitar pyplot y utilizar la API orientada a objetos, es decir, ax.legend y canvas.draw.

Cuestiones relacionadas