📜  绘制时间序列 python (1)

📅  最后修改于: 2023-12-03 15:41:15.913000             🧑  作者: Mango

用Python绘制时间序列

时间序列数据是有时间戳的数据,比如10年的股票价格、每月的销售数据等等。Python中有许多库可以用于绘制时间序列的图表。本文将会介绍常用的几个库,包括:

  • Matplotlib
  • Pandas
  • Seaborn
Matplotlib

Matplotlib是Python中最常用的绘图库之一,可以用于绘制各种类型的图表,包括时间序列。下面的代码展示了如何使用Matplotlib绘制时间序列图表:

import matplotlib.pyplot as plt
import numpy as np

# 随机生成100天的时间序列数据
np.random.seed(2021)
dates = pd.date_range('1/1/2021', periods=100)
y = np.random.randint(10, 100, 100)

# 绘制图表
fig, ax = plt.subplots()
ax.plot(dates, y)

# 设置图表标题和轴标签
ax.set(xlabel='time', ylabel='value', title='Time series plot')

# 设置x轴的日期格式
plt.xticks(rotation=45)

输出:

Matplotlib时间序列图表

代码解析:

  • 首先,我们使用pd.date_range()函数生成100天的日期序列,用于构建x轴。
  • 然后,我们使用np.random.randint()函数生成100个随机整数作为y轴的数据。
  • 接着,我们使用plt.subplots()函数创建一张图表,ax是轴对象。
  • 然后使用ax.plot()方法绘制时间序列。
  • 最后设置标题、轴标签和x轴的日期格式。
Pandas

Pandas是数据分析领域最流行的Python库之一,与Matplotlib集成非常紧密。Pandas提供了很多有用的函数用于时间序列的处理和可视化。下面的代码示范了如何使用Pandas绘制时间序列图表:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 随机生成100天的时间序列数据
np.random.seed(2021)
dates = pd.date_range('1/1/2021', periods=100)
y = np.random.randint(10, 100, 100)
data = {'date': dates, 'value': y}
df = pd.DataFrame(data)
df.set_index('date', inplace=True)

# 绘制图表
df.plot()

# 设置图表标题和轴标签
plt.title('Time series plot')
plt.xlabel('time')
plt.ylabel('value')

输出:

Pandas时间序列图表

代码解析:

  • 首先,我们用pd.date_range()函数生成日期序列并将其与随机生成的数据一起存储在一个Pandas DataFrame中。
  • 然后,我们使用df.plot()方法绘制时间序列图表。
  • 最后设置标题和轴标签。
Seaborn

Seaborn是另一个流行的Python可视化库,它在Matplotlib的基础上,提供了更加美观和易用的图表风格。使用Seaborn绘制时间序列,只需要调用lineplot()函数,如下所示:

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

# 随机生成100天的时间序列数据
np.random.seed(2021)
dates = pd.date_range('1/1/2021', periods=100)
y = np.random.randint(10, 100, 100)
data = {'date': dates, 'value': y}
df = pd.DataFrame(data)

# 绘制图表
sns.lineplot(x="date", y="value", data=df)

# 设置图表标题
plt.title('Time series plot')

输出:

Seaborn时间序列图表

代码解析:

  • 首先,我们用pd.date_range()函数生成日期序列并将其与随机生成的数据一起存储在一个Pandas DataFrame中。
  • 然后,我们使用sns.lineplot()函数绘制时间序列图表。
  • 最后设置标题。

以上就是使用Python绘制时间序列图表的方法介绍。无论你是数据分析师、机器学习工程师还是研究人员,这些库都是你必须掌握的工具。