具有不同颜色编码和不同标记的SNS散点图
问题描述
我想使用以下数据帧创建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')
但是,我没有设法获得我要查找的图表。有人能帮我搬一下这个吗?提前感谢您。
解决方案
目前还不能为matplotlib指定整个标记样式(因此'marker'
和'fillstyle'
键)。查看this post的答案。
因此,留给您的唯一事情就是立即使用不同的标记并指定它们(作为列表或字典)
sns.scatterplot(data=df, x='A', y='B', hue='D', style='C', markers=['o', 's'])
plt.show()
显然,正如this post所解释的那样,即使在海运中创建非填充标记也是非常困难的。唯一的选择就是做一些matplotlib海运混血的事情.因此,如果您接受在同一轴上绘制两次(一次用于已填充的标记,另一次用于未填充的标记),您仍然必须通过挖洞将自己带入海运的怪圈.
相关文章