在图例中使用不同的颜色和形状 [Seaborn,Python]
Posted
技术标签:
【中文标题】在图例中使用不同的颜色和形状 [Seaborn,Python]【英文标题】:Using different colors AND shapes in legend [Seaborn, Python] 【发布时间】:2017-08-22 04:22:13 【问题描述】:我已通读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
所做的方式类似,但我仍在努力解决这个问题。
【问题讨论】:
您有两个不同级别的色调变量,但您正在描述四个字形。映射是如何工作的? 代码 sn-p 取自上面链接的示例页面,而不是我当前的脚本。我想知道它是否可以扩展为包括 4 个标记(灰色/绿色上/下三角形) 【参考方案1】:我假设您正在利用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()
【讨论】:
丹,很好的答案——正是我想要的!谢谢你——如果你碰巧再次经过博尔德,给我打开一个冷的! 很高兴帮助一位老朋友:)。我现在住在博尔德!刚在这里买了房子。让我知道您是否会通过 - 我们有大量“冷的”库存。以上是关于在图例中使用不同的颜色和形状 [Seaborn,Python]的主要内容,如果未能解决你的问题,请参考以下文章
如何在seaborn regplot中使用x_bins修复图例颜色?