📜  Pandas – 将多个时间序列 DataFrame 绘制成一个图(1)

📅  最后修改于: 2023-12-03 14:45:02.964000             🧑  作者: Mango

Pandas – 将多个时间序列 DataFrame 绘制成一个图

在数据分析和可视化过程中,我们经常需要将多个时间序列 DataFrame 结合在一起绘制成一个图,以便进行比较和分析。Pandas 是一个强大的数据处理库,它提供了各种功能来处理和可视化时间序列数据。在本文中,我们将介绍如何使用 Pandas 将多个时间序列 DataFrame 绘制成一个图。

准备工作

首先,我们需要导入 Pandas 和 Matplotlib 这两个库。Pandas 用于数据处理和操作,Matplotlib 用于绘图。

import pandas as pd
import matplotlib.pyplot as plt
创建示例数据

为了演示绘制多个时间序列 DataFrame 的功能,我们先创建两个示例数据集。

# 创建示例数据集1
data1 = {'date': pd.date_range(start='1/1/2022', end='1/7/2022'), 'value1': [1, 3, 2, 4, 5, 7, 6]}
df1 = pd.DataFrame(data1)

# 创建示例数据集2
data2 = {'date': pd.date_range(start='1/1/2022', end='1/7/2022'), 'value2': [5, 3, 2, 6, 8, 7, 9]}
df2 = pd.DataFrame(data2)
绘制多个时间序列 DataFrame

接下来,我们将两个 DataFrame 合并为一个,并将其绘制成一个图。

# 合并两个 DataFrame
df = pd.merge(df1, df2, on='date')

# 设置日期列为索引
df.set_index('date', inplace=True)

# 绘制图形
df.plot()
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Multiple Time Series')
plt.legend()
plt.show()

以上代码中,我们使用 pd.merge() 函数将两个 DataFrame 按照日期进行合并。然后,我们使用 set_index() 函数将日期列设置为索引,以便在绘图时使用。最后,我们使用 plot() 函数绘制图形,并使用 xlabel()ylabel()title() 函数设置坐标轴标签和图表标题。最后,使用 legend() 函数添加图例,并使用 show() 函数显示图形。

进一步定制图形

除了基本的绘图功能,Pandas 还提供了各种定制图形的选项。例如,我们可以设置绘图的风格、颜色、线型等。

# 设置绘图风格
plt.style.use('ggplot')

# 设置绘图颜色
df.plot(color=['blue', 'red'])

# 设置线型
df.plot(linestyle=['-', '--'])

# 设置图形大小
df.plot(figsize=(10, 5))

通过调整绘图风格、颜色、线型和图形大小,可以使图表更具吸引力和可读性。

在绘制多个时间序列 DataFrame 时,我们还可以使用 Pandas 提供的其他可视化函数,如条形图、散点图、箱线图等。

总结

本文介绍了如何使用 Pandas 将多个时间序列 DataFrame 绘制成一个图。我们首先导入必要的库,然后创建示例数据集。接下来,我们合并两个 DataFrame,并将其绘制成一个图。我们还介绍了如何进一步定制图形,以及使用其他可视化函数的方法。

Pandas 提供了丰富的功能和选项,可以帮助程序员轻松处理和可视化时间序列数据。通过灵活运用这些功能,我们可以更好地理解数据,做出准确的分析和决策。