如何在多个子图中绘图

新手上路,请多包涵

我对这段代码的工作方式有点困惑:

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

在这种情况下,无花果轴如何工作?它有什么作用?

还有为什么这不能做同样的事情:

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

原文由 bugsyb 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 820
2 个回答

有几种方法可以做到这一点。 subplots 方法创建图形以及随后存储在 ax 数组中的子图。例如:

 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()

在此处输入图像描述

然而,这样的事情也可以工作,但它不是那么“干净”,因为你正在创建一个带有子图的图形,然后在它们之上添加:

 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()

在此处输入图像描述

原文由 user2489252 发布,翻译遵循 CC BY-SA 3.0 许可协议

import matplotlib.pyplot as plt

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

ax[0, 0].plot(range(10), 'r') #row=0, col=0
ax[1, 0].plot(range(10), 'b') #row=1, col=0
ax[0, 1].plot(range(10), 'g') #row=0, col=1
ax[1, 1].plot(range(10), 'k') #row=1, col=1
plt.show()

在此处输入图像描述

原文由 Khalil Al Hooti 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题