如何在matplotlib中获得多个子图?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

对于这些代码是如何工作的,我有点困惑:

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

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

而且,为什么这个方法不能做同样的事情呢?

fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=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, ax = plt.subplots(nrows=2, ncols=2)

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.pyplot.subplots

pyplot.subplots()返回元组fig, ax,它使用符号在两个变量中解压缩。

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

代码

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

不起作用是因为subplots()pyplot不是对象的成员Figure

扫码关注云+社区