sns散点图

btqmn9zl  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(372)

我想创建一个 Seaborn 散点图,使用以下 Dataframe :

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-variableB 这个 y-variable . 此外,我想颜色的基础上列 D . 最后,什么时候 C='y' 标记应为开放式(无面部颜色),并且 C='n' 标记应该有一个闭合的标记。我最初的想法是使用 huestyle 参数:

sns.scatterplot(x='A', y='B',
                        data=df, hue='D',style ='C')

然而,我没有设法获得我正在寻找的图形。有人能帮我吗?先谢谢你。

pkbketx9

pkbketx91#

不能指定整个标记样式(因此 'marker''fillstyle' matplotlib的键)。看看这篇文章的答案。
因此,您唯一需要做的就是立即使用不同的标记并指定它们(作为列表或字典)

sns.scatterplot(data=df, x='A', y='B', hue='D', style='C', markers=['o', 's'])
plt.show()

显然,正如这篇文章所解释的,在seaborn中甚至很难创建非填充标记。唯一的选择是做一些matplotlib seaborn混合动力车。。。因此,如果你接受在同一个轴上绘制两次(一个用于填充标记,另一个用于未填充标记),你仍然需要挖掘seaborn的怪癖。。。

相关问题