matplotlib - 为什么将 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)
这些之间的区别只是“种类”。点的时间序列看起来很好,而线输出明显不同。
解决方案
您已经手动设置了刻度标签,但这并不是它们的实际绘制方式(可能)。尝试删除刻度标签,您可能会更清楚发生了什么。您可以看到所有相同的 y 和 x 值都存在,它们只是被打乱了,因为您重新标记了 x 轴。
需要强调的一件事是您的 x 值不是数字。但是,lineplot
将尝试对 x 值进行排序(最有可能按字母顺序排列)。scatter
另一方面,将按照给定的顺序绘制 x 值。
推荐阅读
- android - 如何使用android v3 apk签名系统
- angular6 - Angular2中,使用Service获取应用路由
- python - 如何更有效地将字符串中的多个字符映射到单个字符?
- java - Looping through a multidimensional boolean array
- sparql - 我想在本地设置 dbpedia 数据集
- mysql - 表情符号的主键 INT
- hyperledger-fabric - 如何在 cli 中进行 hyperledger fabric idemix 交易?
- c++ - Windows 上的写时复制文件映射
- javascript - 如何获取由 Webpack 重命名的文件名?
- c# - 如何正确拍摄和保存图像?