pandas 海运散点图上的不同颜色编码和标记

hivapdat  于 2023-04-28  发布在  其他
关注(0)|答案(1)|浏览(76)

我想使用以下数据框创建一个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-variableB应该是y-variable。此外,我想根据列D进行着色。最后,当C='y'时,标记应该是开放的(没有面部颜色),当C='n'时,标记应该是封闭的。我最初的想法是使用huestyle参数:

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

但是,我没有找到我正在寻找的图表。

mpbci0fu

mpbci0fu1#

我们还不能为matplotlib指定完整的标记样式(比如'marker''fillstyle'键)。看看这篇文章的答案。
因此,留给您的唯一事情就是马上使用不同的标记并指定它们(作为列表或字典)

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

显然,在seaborn中创建非填充标记是非常困难的,正如this post所解释的那样。唯一的选择是做一些matplotlib-seaborn-hybrid的事情......所以如果你接受在同一个轴上绘制两次(一次用于填充标记,一次用于未填充标记),你仍然必须挖掘自己的怪癖seaborn...

相关问题