2016-04-11 56 views
1

有没有办法在调用Seaborn的factorplot时获取分配给每个组的颜色?例如。我可以在以下图表中获得"one"的颜色吗?谢谢!Seaborn:从factorplot/facetgrid获取颜色/色调

df = pd.DataFrame({ 
    "name": ["one"]*4 + ["two"]*4 + ["three"]*4 + ["four"]*4 + ["five"]*4, 
    "value": np.random.randint(0, 10, 20), 
    "num": range(0, 4)*5 
    }) 
ax = sns.factorplot(x="num", y="value", hue="name", data=df, kind="point", legend_out=False) 
legend = plt.legend(fontsize="x-large") 
plt.show() 

plot

+0

不是试图从图中获取颜色,而是指定想要绘制的颜色。 – mwaskom

+0

谢谢@mwaskom,我该怎么做呢?我能说一些像“{”one“:”green“,”two“:”blue“}等,并将其传递给'hue'吗? – Plasma

+0

是的,这将是一种方法。 – mwaskom

回答

0

是你想要的吗?

In [84]: legend.parent.get_lines()[0].get_color() 
Out[84]: (0.2980392156862745, 0.4470588235294118, 0.6901960784313725) 
+0

这看起来很有前途,谢谢@MaxU!任何想法如何我可以提取例如'get_lines()'返回的列表中的“one”?而FWIW,我也不明白提问的提示。 – Plasma