📅  最后修改于: 2023-12-03 14:52:26.735000             🧑  作者: Mango
在 Matplotlib 中,我们可以使用 subplot()
函数创建一个包含多个子图的图表。这个函数接受三个参数:行数、列数和当前子图的编号,可以在同一个图表中创建任意数量的子图,每个子图可以显示不同的数据集。
以下是一个简单的例子,它创建一个包含两个子图的图表:
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 5, 10)
y = x ** 2
# 创建第一个子图
plt.subplot(1, 2, 1)
plt.plot(x, y, 'r')
# 创建第二个子图
plt.subplot(1, 2, 2)
plt.plot(y, x, 'g')
这个例子中,我们使用 linspace()
函数生成了 0-5 之间的 10 个数据点,并将它们的平方用作另一个数据集。我们在第一个子图中绘制了 x
和 y
,在第二个子图中绘制了 y
和 x
。
subplot()
函数接受的参数 1, 2 表示行数和列数,而 3 表示当前子图的编号。总共有 2 个子图,所以行数和列数都是 1。
这个例子还展示了如何使用 'r'
和 'g'
等参数来定义线条的颜色。Matplotlib 提供了许多不同的颜色选项,包括简单的字母代码和 RGB 值。
除了 subplot()
函数,我们还可以使用 subplots()
函数创建一个包含多个子图的图表。这个函数返回一个元组,其中第一个元素是整个图表的引用,后面的元素是每个子图的引用。
以下是一个使用 subplots()
函数创建的包含三个子图的图表的例子:
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 5, 10)
y = x ** 2
# 创建图表和三个子图
fig, axes = plt.subplots(nrows=1, ncols=3)
# 在第一个子图中绘制数据
axes[0].plot(x, y, 'r')
axes[0].set_title('Square')
# 在第二个子图中绘制数据
axes[1].plot(y, x, 'g')
axes[1].set_title('Inverse')
# 在第三个子图中绘制数据
axes[2].plot(x, np.sqrt(y), 'b')
axes[2].set_title('Square Root')
在这个例子中,我们使用 subplots()
函数创建了一个包含三个子图的图表。我们还使用了 set_title()
函数来设置每个子图的标题。
除了使用 subplot()
和 subplots()
函数,我们还可以在单个子图中绘制多个数据集。以下是一个创建带有两个数据集的线图的例子:
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 5, 10)
y1 = x ** 2
y2 = x ** 3
# 创建单个子图
fig, ax = plt.subplots()
# 在子图中绘制两个数据集
ax.plot(x, y1, 'r', label='Square')
ax.plot(x, y2, 'g', label='Cube')
ax.legend()
在这个例子中,我们使用 subplots()
函数创建了一个包含单个子图的图表。我们在子图中绘制了两个数据集,并使用 legend()
函数添加了一个图例来标识它们。