pyplot legends python matplotlib

legends - matplotlib python



color de fondo de la leyenda matplotlib (2)

¿Existe rcParams[''legend.frameon''] = ''False'' una forma sencilla de rellenar el fondo del área de leyenda con un color determinado. Más específicamente, me gustaría que la cuadrícula no se vea en el área de leyenda porque interrumpe la lectura del texto.

La palabra clave framealpha suena como lo que necesito, pero no cambia nada.

import matplotlib as mpl import matplotlib.pyplot as plt mpl.rcParams[''legend.frameon''] = ''False'' plt.plot(range(5), label = u"line") plt.grid(True) plt.legend(loc = best) plt.show()

También he intentado:

legend = plt.legend(frameon = 1) frame = legend.get_frame() frame.set_color(''white'')

pero luego necesito preguntar ¿cómo puedo cambiar el color de fondo mientras mantengo el marco? A veces lo quiero ENCENDIDO con un color de fondo que no sea blanco. Y también, ¿hay una manera de cambiar el color del marco? Con el código anterior esperaba cambiar solo el color del marco, no el fondo.


Además del método de Molly , puede desactivar el marco utilizando el ancho de línea:

frame.set_linewidth(0)

Usé ese método en una pequeña función de conveniencia que escribí para ocultar los marcos de leyenda por la misma razón que citan. La función se llama adjust_legends en el módulo print_targeted_plots disponible en github .


Puede configurar el color del borde y el color de la cara por separado de esta manera:

frame.set_facecolor(''green'') frame.set_edgecolor(''red'')

Hay más información en FancyBboxPatch here .