首页 > 解决方案 > 为什么将 seaborn 重绘的“种类”从“散布”更改为“线”会使时间序列出现错误?

问题描述

import seaborn as sns

t=sns.relplot(data=df,x='Grup ve Alt Gruplar',y='GENEL INDEKS',kind='scatter')
t.set_xticklabels(df['Grup ve Alt Gruplar'],rotation=30)

l=sns.relplot(data=df,x='Grup ve Alt Gruplar',y='GENEL INDEKS',kind='line')
l.set_xticklabels(df['Grup ve Alt Gruplar'],rotation=30)

这些之间的区别只是“种类”。点的时间序列看起来很好,而线输出明显不同。

在此处输入图像描述

标签: matplotlibseaborn

解决方案


您已经手动设置了刻度标签,但这并不是它们的实际绘制方式(可能)。尝试删除刻度标签,您可能会更清楚发生了什么。您可以看到所有相同的 y 和 x 值都存在,它们只是被打乱了,因为您重新标记了 x 轴。

需要强调的一件事是您的 x 值不是数字。但是,lineplot将尝试对 x 值进行排序(最有可能按字母顺序排列)。scatter另一方面,将按照给定的顺序绘制 x 值。


推荐阅读