Seaborn中的线条图为“尖峰”

2024-04-27 12:42:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我对seaborn非常陌生,我一直在策划多种类型游戏的销售。当我将它们绘制在一起时,看起来seaborn正在标准化数据,但我希望我的y轴显示未标准化的全球销售价值。 为了避免这种情况,我尝试将sns.lineplot()中的估计器设置为None

当我将直线图的估计器设置为=None时,我的数据突然变得“尖峰”。我首先想到的可能是,我的数据集每年都有多个值,或者出于某种原因,其中有一些0,但事实并非如此。对于某些体裁,没有特定年份的数据,但是,每年都有数据的体裁会出现“尖峰”

这里没有禁用估计器

plt.figure(figsize=(20,10))
sns.lineplot(data=line_df,x='Year',y='Global_Sales',hue='Genre',ci=None)
plt.show()

Plot Without Disabling

当我禁用它,线条变得“尖刺”时,就是这样了

plt.figure(figsize=(20,10))
sns.lineplot(data=line_df,x='Year',y='Global_Sales',hue='Genre',ci=None, estimator=None)
plt.show()

Plot With Disabling


Tags: 数据nonedfdatalinepltseaborn尖峰
1条回答
网友
1楼 · 发布于 2024-04-27 12:42:30

“尖峰”是因为每个数据点都是用estimator=None绘制的。对于每个x值,每个数据点沿垂直线段绘制,直到最大值。然后,直线下降到下一个x值中的最低值,然后垂直撞击每个数据点,直到该x值的最大值

如果绘制标记,这一点更为明显:

flights = sns.load_dataset("flights")
sns.lineplot(data=flights, x="year", y="passengers")
sns.lineplot(data=flights, x="year", y="passengers", estimator=None, marker='o')

enter image description here

相关问题 更多 >