【发布时间】:2021-09-19 13:45:42
【问题描述】:
我想创建一个Seaborn 散点图,使用以下数据框:
df = pd.DataFrame({'A':[1,2,3,4],'B':[2,4,6,8],'C':['y','y','n','n'],'D':[1,1,2,2]})
在我的图表中,A 应该是 x-variable 和 B y-variable。此外,我想根据D 列着色。最后,当C='y' 标记应该是开放的(没有facecolor)时,当C='n' 标记应该是封闭的。我最初的想法是使用hue和style参数:
sns.scatterplot(x='A', y='B',
data=df, hue='D',style ='C')
但是,我没有设法获得我正在寻找的图表。有人可以帮我解决这个问题吗?提前谢谢你。
【问题讨论】:
-
我不完全确定我理解您的问题。如果只是您的标记看起来不像您想要的那样,请使用
markers关键字来定义它们 -
你不能在 seaborn 中混合填充和线条艺术创作者,这是由于may makes points invisible 的渲染方式。您可以提供字典以将
style映射到matplotlib marker:markers={"y": "s", "n": "o"}。但是两个标记都应该被填充或线条艺术。另一种方法是自己使用ax.scatter,但这样你就失去了seaborn的功能。
标签: python pandas seaborn scatter-plot