首页 >后端开发 >Python教程 >如何在多个 Matplotlib 子图中高效地创建和绘图?

如何在多个 Matplotlib 子图中高效地创建和绘图?

Susan Sarandon
Susan Sarandon原创
2024-12-20 13:57:09850浏览

How to Efficiently Create and Plot in Multiple Matplotlib Subplots?

在多个子图中绘图

可以通过多种方法在 Matplotlib 中创建多个子图。理解fig和axes变量的作用至关重要。

fig,axes结构

在代码片段fig,axes = plt.subplots(nrows=2 , ncols=2)、fig 和axes 分别分配给返回的figure 和Axes 对象的二维数组。轴数组包含各个子图,可以对特定子图进行后续绘图操作。

子图的替代方法

虽然 subplots 方法同时创建一个图形及其子图,但它是也可以单独创建:

fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)

但是这种方法比较少首选,因为它需要额外的步骤来在每个子图上绘制。

具有多个子图的示例

考虑以下代码,该代码在四个子图的每一个上绘制一条简单曲线:

import matplotlib.pyplot as plt

x = range(10)
y = range(10)

fig, ax = plt.subplots(nrows=2, ncols=2)

for row in ax:
    for col in row:
        col.plot(x, y)

plt.show()

此代码生成一个包含四个子图的图形,每个子图都有相同的曲线。 for 循环迭代 ax 数组的行和列,将每个子图分配给 col 变量进行绘图。

另一种替代方法

虽然不那么优雅,还可以手动创建并分别在每个子图上绘制:

fig = plt.figure()

plt.subplot(2, 2, 1)
plt.plot(x, y)

plt.subplot(2, 2, 2)
plt.plot(x, y)

plt.subplot(2, 2, 3)
plt.plot(x, y)

plt.subplot(2, 2, 4)
plt.plot(x, y)

plt.show()

这种方法涉及手动创建一个图形指定每个子图的位置,然后在它们上绘图。

以上是如何在多个 Matplotlib 子图中高效地创建和绘图?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn