2015-06-09 7 views
19

Die folgende Frage erläutert, wie die Hintergrundfarbe einer Legende geändert wird: matplotlib legend background color. Wenn ich jedoch Seabohnen verwende, funktioniert das nicht. Gibt es eine Möglichkeit, dies zu tun?Seaborn: Legende mit Hintergrundfarbe

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

with matplotlibwith seaborn

+0

Siehe Methode' add_legend': https://github.com/mwaskom/seaborn/blob/master/ seaborn/axisgrid.py – xecafe

+0

Nicht sicher, wie dies mir helfen würde - ich habe kein 'seaborn.axisgrid.Grid' und die Achsen haben keine' add_legend' Methode. – mathause

Antwort

34

Seaborn schaltet sich die Legende von Standard-Frame aus, wenn Sie anpassen möchten, wie der Rahmen aussieht, ich glaube, Sie werden frameon=True hinzufügen müssen, wenn Sie plt.legend nennen.

+0

ahh und es ist so einfach ... – mathause

+2

immer noch seltsam, dass 'frame = legend.get_frame()' gibt etwas zurück, wenn es tatsächlich keinen Rahmen gibt – mathause

7

set_style() Die Methode kann einen Stil Argument (z 'white', 'whitegrid', 'darkgrid', etc.) und eine dict Parameterstandardwerte Ästhetik außer Kraft zu setzen, einschließlich der, ob die Legende Rahmen haben oder nicht.

Wenn Sie andere kleine Styling-Dinge haben, die Sie gerne ändern würden, was ich oft tue, können Sie sie alle gleichzeitig auf diese Weise einstellen.

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

Per the docs können Sie seaborn ‚s aktuelle rc Einstellungen erhalten mit 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}