【问题标题】:Seaborn: Get color/hue from factorplot/facetgridSeaborn:从 factorplot/facetgrid 获取颜色/色调
【发布时间】:2016-08-01 22:23:10
【问题描述】:

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

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

【问题讨论】:

  • 与其尝试从图中获取颜色,不如指定您要绘制的颜色。
  • 谢谢@mwaskom,我该怎么做呢?我可以说类似{"one":"green", "two":"blue"} 之类的话并将其传递给hue 吗?
  • 是的,这是一种方式。
  • @mwaskom,我很抱歉,hue 似乎不希望有字典,你能在这里给我一根骨头吗?我在说hue={"one": "green", "two": "green", "three": "green", "four":"green", "five": "green"} 时得到TypeError: unhashable type: 'dict'
  • 谢谢@mwaskom,传递给调色板作品。

标签: python pandas seaborn


【解决方案1】:

这就是你想要的吗?

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

【讨论】:

  • 这看起来很有希望,谢谢@MaxU!知道如何提取例如get_lines()返回的列表中的“一个”? FWIW,我也不明白关于提问的提示。
猜你喜欢
  • 2016-05-15
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 2014-12-05
  • 1970-01-01
  • 2017-11-04
  • 1970-01-01
相关资源
最近更新 更多