具有不同颜色编码和不同标记的 Sns 散点图
Sns Scatter plot with differet color coding and different markers
我想创建一个 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'
键)。查看 .
的答案
所以你唯一要做的就是立即使用不同的标记并指定它们(作为列表或字典)
sns.scatterplot(data=df, x='A', y='B', hue='D', style='C', markers=['o', 's'])
plt.show()
显然,正如 解释的那样,甚至在 seaborn 中创建非填充标记都非常困难。唯一的选择是做一些 matplotlib-seaborn-hybrid 的事情......所以如果你接受在同一个轴上绘制两次(一个用于填充标记,一个用于未填充标记),你仍然必须深入研究seaborn 的怪癖...
我想创建一个 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'
键)。查看
所以你唯一要做的就是立即使用不同的标记并指定它们(作为列表或字典)
sns.scatterplot(data=df, x='A', y='B', hue='D', style='C', markers=['o', 's'])
plt.show()
显然,正如