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

问题描述 投票:0回答:1

我想使用以下数据框创建一个

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')

但是,我未能获得我正在寻找的图表。

python pandas seaborn scatter-plot
1个回答
5
投票

尚无法为 matplotlib 指定整个标记样式(因此在您的情况下为

'marker'
'fillstyle'
键)。看看这篇文章的答案。

因此,您唯一剩下的就是立即使用不同的标记并指定它们(作为列表或字典)

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

显然,正如这篇文章所解释的那样,在seaborn中创建非填充标记是非常困难的。唯一的选择是做一些 matplotlib-seaborn-hybrid 的事情...因此,如果您接受在同一轴上绘制两次(一个用于填充标记,一个用于未填充标记),您仍然需要深入研究Seaborn 的怪癖...

© www.soinside.com 2019 - 2024. All rights reserved.