在 Seaborn 中绘制时间序列数据

Manav Narula 2023年1月30日
  1. 在 Seaborn 中使用 seaborn.lineplot() 函数绘制时间序列数据
  2. 在 Seaborn 中使用 seaborn.tsplot() 函数绘制时间序列数据
  3. 在 Seaborn 中使用 seaborn.barplot() 函数绘制时间序列数据
在 Seaborn 中绘制时间序列数据

时间序列数据是一种特殊类型的数据,我们在其中观察一段时间内的一些观察结果。记录每个观察的时间戳。当我们谈论股票价格、传感器数据、应用程序监控数据等时,通常会处理此类数据。

在本教程中,我们将学习如何使用 Seaborn 模块在 Python 中绘制此类时间序列数据。

我们将为绘图创建我们自己的样本时间序列数据。

在 Seaborn 中使用 seaborn.lineplot() 函数绘制时间序列数据

线图是该模块最基本的图之一。它通常用于跟踪与时间有关的事物;这就是为什么它被高度用于时间序列数据。

在以下代码中,我们使用 seaborn.lineplot() 函数绘制时间序列数据。

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

df = pd.DataFrame(
    {
        "Date": [
            "01/01/2019",
            "01/02/2019",
            "01/03/2019",
            "01/04/2019",
            "01/05/2019",
            "01/06/2019",
            "01/07/2019",
            "01/08/2019",
        ],
        "Price": [77, 76, 68, 70, 78, 79, 74, 75],
    }
)
plt.figure(figsize=(15, 8))
sns.lineplot(x="Date", y="Price", data=df)

带有 seaborn.lineplot() 函数的 seaborn 时间序列

请注意,在将 DataFrame 与函数一起使用之前,我们必须对其进行处理。我们必须确保 Date 列是日期时间格式,这是使用 pd.to_datetime() 函数完成的。

plt.figure() 命令用于改变最终图形的大小。

在 Seaborn 中使用 seaborn.tsplot() 函数绘制时间序列数据

seaborn.tsplot() 是该模块最新版本的一个相对较新的补充。当我们有可用数据的时间戳时使用它。它用于绘制一个或多个时间序列数据。数据可以是长数据帧的形式,也可以是具有单位和时间维度的 N 维数组。

下面的代码展示了如何使用这个函数。

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

df = pd.DataFrame(
    {
        "Date": [
            "01012019",
            "01022019",
            "01032019",
            "01042019",
            "01052019",
            "01062019",
            "01072019",
            "01082019",
        ],
        "Price": [77, 76, 68, 70, 78, 79, 74, 75],
    }
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")

plt.figure(figsize=(15, 8))
sns.tsplot(data=df["Price"], time=df["Date"])

带有 seaborn.tsplot() 函数的 seaborn 时间序列

在 Seaborn 中使用 seaborn.barplot() 函数绘制时间序列数据

条形图用于表示矩形条中的观测值。Python 中的 seaborn 模块使用 seaborn.barplot() 函数来创建条形图。

条形图可用于显示连续的时间序列数据。

例如,

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

df = pd.DataFrame(
    {
        "Date": [
            "01012019",
            "01022019",
            "01032019",
            "01042019",
            "01052019",
            "01062019",
            "01072019",
            "01082019",
        ],
        "Price": [77, 76, 68, 70, 78, 79, 74, 75],
    }
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")

plt.figure(figsize=(15, 8))
sns.barplot(x="Date", y="Price", data=df)

带有 seaborn.barplot() 函数的 seaborn 时间序列

前两种方法使用线条绘制数据,因此这为时间序列数据提供了另一种可视化。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn