繁体   English   中英

Seaborn 线图意外行为

[英]Seaborn lineplot unexpected behaviour

我希望了解为什么会出现以下 Seaborn 线图行为。

时间序列中出现峰值,并且附加数据已添加到实际数据的左侧。

如何防止 Seaborn 中出现这种意外行为?

常规 plot 数据:

import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns

aussie_property[['Sydney(SYDD)']].plot();

在此处输入图像描述

Seaborn plot 数据:

sns.lineplot(data=aussie_property, x='date', y='Sydney(SYDD)');

在此处输入图像描述

这不是 seaborn 问题,而是日期时间不明确的问题。

使用以下代码将date转换为日期时间 object

aussie_property['date'] = pd.to_datetime(aussie_property['Date'], dayfirst=True)

你得到你预期的 plot 和 seaborn

在此处输入图像描述

通常,建议在日期时间转换期间提供格式,例如,

aussie_property['date'] = pd.to_datetime(aussie_property['Date'], format="%d/%m/%Y")

因为,正如我们在这里看到的,像10/12/2020年 10 月 12 日这样的日期是模棱两可的。 因此,解析器首先认为数据是月/日/年,后来发现情况并非如此,因此改为将输入解析为日/月/年,从而在 seaborn 图中产生这些时间旅行峰值。 你问为什么你没有在 pandas plot 中看到它们? 好吧,这是针对索引绘制的,因此您不会注意到 pandas plot 中的转换问题。
有关格式代码的更多信息,请参阅 Python 文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM