我想使用以下数据框创建一个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'
时,标记应该是开放的(没有面部颜色),当C='n'
时,标记应该是封闭的。我最初的想法是使用hue
和style
参数:
sns.scatterplot(x='A', y='B', data=df, hue='D', style ='C')
但是,我没有找到我正在寻找的图表。
1条答案
按热度按时间mpbci0fu1#
我们还不能为matplotlib指定完整的标记样式(比如
'marker'
和'fillstyle'
键)。看看这篇文章的答案。因此,留给您的唯一事情就是马上使用不同的标记并指定它们(作为列表或字典)
显然,在seaborn中创建非填充标记是非常困难的,正如this post所解释的那样。唯一的选择是做一些matplotlib-seaborn-hybrid的事情......所以如果你接受在同一个轴上绘制两次(一次用于填充标记,一次用于未填充标记),你仍然必须挖掘自己的怪癖seaborn...