Python 使用matplotlib.pyplot中的subplot命令为地物窗口编号

Python 使用matplotlib.pyplot中的subplot命令为地物窗口编号,python,matplotlib,plot,subplot,figure,Python,Matplotlib,Plot,Subplot,Figure,在matplotlib.pyplot中使用命令中的子图时,是否有方法对图形进行编号? 当我想在图中有一个单独的绘图时,我可以使用 import matplotlib.pyplot as plt plt.figure(2) plot(x,y) 这将创建图2,并在其中绘制绘图。但是,当使用子图时,我不能这样做 plt.figure(3) f, ax = plt.subplots(1,2) ax[0].plot(x,y) 这基本上显示了一个新的图3,然后是另一个图4,其中包含子图。我想给有子批次的

在matplotlib.pyplot中使用命令中的子图时,是否有方法对图形进行编号? 当我想在图中有一个单独的绘图时,我可以使用

import matplotlib.pyplot as plt
plt.figure(2)
plot(x,y)
这将创建图2,并在其中绘制绘图。但是,当使用子图时,我不能这样做

plt.figure(3)
f, ax = plt.subplots(1,2)
ax[0].plot(x,y)
这基本上显示了一个新的图3,然后是另一个图4,其中包含子图。我想给有子批次的那个编号


提前感谢。

在调用了
plt.show()
之后,您无法再次绘制这些图形(除非并且直到您处于某个交互式会话(?)。假设您没有调用plt.show()。在这种情况下,您可以逐个图(1)重新激活第一个图

将numpy导入为np
将matplotlib.pyplot作为plt导入
图=plt.图(1,图尺寸=(10,4))
图suptitle(“第一个图形实例”)

现在让我们使用下面的代码创建第二个绘图

plt.图(2,figsize=(10,5))
plt.子地块(1,2,1)
plt.图(np.rand.rand(3,2))
plt.子地块(1、2、2)
plt.图(np.rand.rand(3,2))
plt.suptitle(“第二个绘图”)
sub1=图add_子批次(221)
plt.图(np.rand.rand(3,2))
sub2=图添加_子批次(224)
plt.图(np.rand.rand(3,2))
plt.show()

使用子地块创建的地物将自动编号。您可以通过执行以下操作进行检查:

fig1 = plt.figure(1)
print(fig1.number)
# 1

fig2, axes = plt.subplots(1, 2)
print(fig2.number)
# 2
plt.figure(2)  # this will not create a new figure
使用面向对象的方法,我看不出为什么要设置数字

但是,如果您真的想这样做,请查看的文档,有
fig\u kw
可以传递给。这里,文档中的第一个参数是
num=
,您可以在其中指定地物编号。因此,您可以在
plt.subplot()中使用此参数:


谢谢DavidG,它成功了,我没有在文档中找到关键字参数'num'。谢谢你指出这一点。然而,这并没有达到我想做什么的目的。我想运行一个生成多个图形的代码,其中每个图形绘制一些独特的图形,我想可视化由于其中一个参数的更改而导致的每个图形中的更改(两个图形,一个在参数更改之后,一个在参数更改之前,而不是使用新数据生成新图形)。为此,杰伊·帕特尔(Jay Patel)的方法(见下文)奏效了。
fig, axes = plt.subplots(1, 2, num=99)
print(fig.number)
# 99