tutorial subplots outside example python plot legend seaborn

python - subplots - por mar: leyenda con color de fondo



seaborn time series (2)

La siguiente pregunta explica cómo cambiar el color de fondo de una leyenda: el color de fondo de la leyenda matplotlib . Sin embargo, si utilizo seaborn esto no funciona. ¿Hay alguna forma de hacer esto?

import matplotlib.pyplot as plt import numpy as np a = np.random.rand(10,1) plt.plot(a, label=''label'') legend = plt.legend() frame = legend.get_frame() frame.set_facecolor(''green'') plt.show() import seaborn as sns plt.plot(a, label=''label'') legend = plt.legend() frame = legend.get_frame() frame.set_facecolor(''green'') plt.show()


El método set_style() puede tomar un argumento de estilo (por ejemplo, ''white'' , ''whitegrid'' , ''darkgrid'' , etc.) Y un dictado de parámetros para anular la estética de los valores predeterminados, incluido si se debe tener el marco de leyenda activado o no.

Si tienes otras pequeñas cosas de estilo que te gustaría cambiar, lo que a menudo hago, puedes configurarlas todas a la vez de esta manera.

import seaborn seaborn.set_style(''darkgrid'', {''legend.frameon'':True})

Según los documentos , puede obtener la configuración de rc actual de seaborn.axes_style() con seaborn.axes_style()

{''axes.axisbelow'': True, ''axes.edgecolor'': ''.8'', ''axes.facecolor'': ''white'', ''axes.grid'': True, ''axes.labelcolor'': ''.15'', ''axes.linewidth'': 1.0, ''figure.facecolor'': ''white'', ''font.family'': [u''sans-serif''], ''font.sans-serif'': [u''Arial'', u''DejaVu Sans'', u''Liberation Sans'', u''Bitstream Vera Sans'', u''sans-serif''], ''grid.color'': ''.8'', ''grid.linestyle'': u''-'', ''image.cmap'': u''rocket'', ''legend.frameon'': False, ''legend.numpoints'': 1, ''legend.scatterpoints'': 1, ''lines.solid_capstyle'': u''round'', ''text.color'': ''.15'', ''xtick.color'': ''.15'', ''xtick.direction'': u''out'', ''xtick.major.size'': 0.0, ''xtick.minor.size'': 0.0, ''ytick.color'': ''.15'', ''ytick.direction'': u''out'', ''ytick.major.size'': 0.0, ''ytick.minor.size'': 0.0}


Seaborn desactiva el marco de leyenda de forma predeterminada, si desea personalizar el aspecto del marco, creo que deberá agregar frameon=True cuando llame a plt.legend .