我通过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
定义字典,但我仍然试图绕过这个。
答案 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()