跳到主要内容

Pandas 多子图

在数据分析和可视化中,有时我们需要在同一画布上展示多个图表,以便更好地比较和分析数据。Pandas提供了强大的功能来创建多子图(subplots),使得我们可以在一个图形中绘制多个子图。本文将详细介绍如何使用Pandas创建多子图,并通过实际案例展示其应用。

什么是多子图?

多子图是指在一个图形中创建多个子图,每个子图可以展示不同的数据或不同的视图。通过多子图,我们可以将多个相关的图表放在一起,方便进行比较和分析。

创建多子图的基本步骤

在Pandas中,我们可以使用 DataFrame.plot() 方法的 subplots 参数来创建多子图。以下是创建多子图的基本步骤:

  1. 导入必要的库:首先,我们需要导入Pandas和Matplotlib库。
  2. 创建数据:准备要绘制的数据。
  3. 绘制多子图:使用 DataFrame.plot() 方法并设置 subplots=True 来创建多子图。

示例代码

python
import pandas as pd
import matplotlib.pyplot as plt

# 创建示例数据
data = {
'A': [1, 2, 3, 4, 5],
'B': [5, 4, 3, 2, 1],
'C': [2, 3, 4, 5, 6]
}

df = pd.DataFrame(data)

# 绘制多子图
df.plot(subplots=True, layout=(2, 2), figsize=(10, 8))
plt.show()

代码解释

  • df.plot(subplots=True):设置 subplots=True 表示我们要创建多子图。
  • layout=(2, 2):指定子图的布局为2行2列。
  • figsize=(10, 8):设置整个图形的大小为10x8英寸。

输出结果

运行上述代码后,你将看到一个包含4个子图的图形,每个子图分别展示 ABC 列的数据。

实际应用案例

假设我们有一个包含多个城市每日气温的数据集,我们希望在同一画布上展示每个城市的气温变化趋势。通过多子图,我们可以轻松实现这一目标。

示例代码

python
import pandas as pd
import matplotlib.pyplot as plt

# 创建示例数据
data = {
'City1': [22, 24, 23, 25, 26],
'City2': [20, 21, 22, 23, 24],
'City3': [18, 19, 20, 21, 22]
}

df = pd.DataFrame(data)

# 绘制多子图
df.plot(subplots=True, layout=(3, 1), figsize=(8, 12), title='Daily Temperature')
plt.show()

代码解释

  • layout=(3, 1):指定子图的布局为3行1列,每个子图展示一个城市的气温变化。
  • title='Daily Temperature':为每个子图添加标题。

输出结果

运行上述代码后,你将看到一个包含3个子图的图形,每个子图分别展示 City1City2City3 的气温变化趋势。

总结

通过Pandas的多子图功能,我们可以轻松地在同一画布上展示多个图表,从而更好地比较和分析数据。本文介绍了如何使用 DataFrame.plot() 方法创建多子图,并通过实际案例展示了其应用场景。

提示

在实际应用中,你可以根据需要调整子图的布局、大小和样式,以满足不同的可视化需求。

附加资源

练习

  1. 尝试使用你自己的数据集创建多子图,并调整布局和样式。
  2. 探索如何在多子图中添加图例、标题和轴标签。
  3. 尝试使用不同的图表类型(如柱状图、折线图等)来展示数据。

通过练习,你将更加熟练地掌握Pandas多子图的使用技巧,并能够灵活应用于实际项目中。