在图例中使用不同的颜色和形状[Seaborn,Python]

时间:2017-03-28 21:56:17

标签: python-2.7 matplotlib scatter-plot seaborn legend-properties

我通过examples阅读了如何使用不同的形状和/或颜色来分离Seaborn图中的数据。但是,似乎颜色和形状绑在一起,以显示单独的变量。例如,在下面的脚本中(从上面的链接借用),似乎你只能 使用绿色向下箭头和灰色箭头:

g = sns.FacetGrid(tips, col="sex", hue="time", palette=pal,
                  hue_order=["Dinner", "Lunch"],
                  hue_kws=dict(marker=["^", "v"]))
g = (g.map(plt.scatter, "total_bill", "tip", **kws).add_legend())

是否可以显示绿色向上箭头灰色向上箭头,以及绿色向下箭头和灰色向下箭头?

我试图以与col类似的方式为hue定义字典,但我仍然试图绕过这个。

1 个答案:

答案 0 :(得分:6)

我假设您正在利用sns.FacetGrid函数的一些功能。如果您只是想制作一个简单的散点图,那么直接使用plt.scatter可能更简单。

无论如何,似乎可以在FacetGrid示例中使用您想要的任何颜色和符号。我不是Seaborn专业人士,但这是实现这一目标的一种方法:

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")
kws = dict(s=50, linewidth=.5, edgecolor="w")
pal = ['red', 'green', 'blue', 'red', 'green', 'blue',]
g = sns.FacetGrid(tips, col="sex", hue="size", palette=pal, hue_kws=dict(marker=["^", "^", "^", "v", "v", "v"]))
g = (g.map(plt.scatter, "total_bill", "tip", **kws).add_legend())

plt.show()

example output