簡體   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