Matplotlib 绘制多图
引言
Matplotlib 是一个功能强大的 Python 绘图库,它允许用户轻松地创建各种图表和图形。在数据分析、科学研究和工程领域,Matplotlib 都有着广泛的应用。本文将详细介绍如何使用 Matplotlib 绘制多图,包括子图、堆叠图和分组图等。
子图
子图(Subplots)是 Matplotlib 中最常用的绘制多图的方法之一。它允许用户在一个图上绘制多个独立的图表,每个图表称为一个子图。
创建子图
要创建一个子图,可以使用 plt.subplots() 函数。以下是一个简单的示例:
python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 创建子图
fig, ax = plt.subplots(2, 1)
# 绘制第一个子图
ax[0].plot(x, y1)
ax[0].set_title('Sine Wave')
# 绘制第二个子图
ax[1].plot(x, y2)
ax[1].set_title('Cosine Wave')
# 显示图形
plt.show()
在上面的代码中,我们创建了一个包含两个子图的图形。第一个子图绘制了正弦波,第二个子图绘制了余弦波。
调整子图布局
有时候,我们需要调整子图的布局,以便更好地展示图表。可以使用 subplots_adjust() 函数来调整子图之间的间距。
python
fig, ax = plt.subplots(2, 1)
ax[0].plot(x, y1)
ax[0].set_title('Sine Wave')
ax[1].plot(x, y2)
ax[1].set_title('Cosine Wave')
# 调整子图布局
plt.subplots_adjust(hspace=0.5)
plt.show()
在上面的代码中,我们设置了子图之间的垂直间距为 0.5。
堆叠图
堆叠图(Stacked Plot)是一种将多个数据系列叠加在一起的图表。这种图表常用于展示不同类别之间的比较。
创建堆叠图
以下是一个创建堆叠图的示例:
python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.arange(10)
y1 = np.random.rand(10)
y2 = np.random.rand(10)
# 创建堆叠图
ax = plt.subplot(111)
ax.bar(x, y1, label='Series 1')
ax.bar(x, y2, bottom=y1, label='Series 2')
# 添加图例
ax.legend()
# 显示图形
plt.show()
在上面的代码中,我们创建了一个堆叠图,其中包含两个数据系列。第一个数据系列位于底部,第二个数据系列叠加在第一个数据系列之上。
分组图
分组图(Grouped Plot)是一种将多个数据系列并排放置的图表。这种图表常用于展示不同类别之间的比较。
创建分组图
以下是一个创建分组图的示例:
python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.arange(10)
y1 = np.random.rand(10)
y2 = np.random.rand(10)
# 创建分组图
ax = plt.subplot(111)
ax.bar(x, y1, label='Series 1')
ax.bar(x + 0.4, y2, label='Series 2')
# 添加图例
ax.legend()
# 显示图形
plt.show()
在上面的代码中,我们创建了一个分组图,其中包含两个数据系列。为了使两个数据系列并排放置,我们将第二个数据系列的 x 坐标向右移动了 0.4 个单位。
总结
本文介绍了 Matplotlib 中绘制多图的方法,包括子图、堆叠图和分组图。通过这些方法,用户可以轻松地创建各种图表和图形,以便更好地展示数据和分析结果。希望本文对您有所帮助。