我如何告诉Matplotlib创build第二个(新的)情节,然后再绘制旧的情节?

我想绘制数据,然后创build一个新的graphics和绘制数据2,最后回到原始绘图和绘制数据3,有点像这样:

import numpy as np import matplotlib as plt x = arange(5) y = np.exp(5) plt.figure() plt.plot(x, y) z = np.sin(x) plt.figure() plt.plot(x, z) w = np.cos(x) plt.figure("""first figure""") # Here's the part I need plt.plot(x, w) 

仅供参考我如何告诉matplotlib我完成了一个情节? 做了类似的事情,但不完全相同! 它不允许我访问那个原始的情节。

如果你发现自己经常做这样的事情,可能值得研究matplotlib的面向对象的接口。 在你的情况下:

 import matplotlib.pyplot as plt import numpy as np x = np.arange(5) y = np.exp(x) fig1 = plt.figure() ax1 = fig1.add_subplot(111) ax1.plot(x, y) z = np.sin(x) fig2 = plt.figure() ax2 = fig2.add_subplot(111) ax2.plot(x, z) w = np.cos(x) ax1.plot(x, w) # can continue plotting on the first axis 

这是一个更详细一点,但更清晰和更容易跟踪,特别是与几个数字,每个有多个子图。

当你打电话给figure ,只需简单的数字即可

 x = arange(5) y = np.exp(5) plt.figure(0) plt.plot(x, y) z = np.sin(x) plt.figure(1) plt.plot(x, z) w = np.cos(x) plt.figure(0) # Here's the part I need plt.plot(x, w) 

编辑:请注意,你可以编号的图然而你想要的(这里,从0开始),但如果你没有提供一个数字,当你创build一个新的数字,自动编号将从1开始(“Matlab的风格“根据文件)。

但是,编号从1开始,所以:

 x = arange(5) y = np.exp(5) plt.figure(1) plt.plot(x, y) z = np.sin(x) plt.figure(2) plt.plot(x, z) w = np.cos(x) plt.figure(1) # Here's the part I need, but numbering starts at 1! plt.plot(x, w) 

另外,如果在graphics上有多个轴(如子图),请使用axes(h)命令,其中h是所需轴对象的手柄,以便聚焦在该轴上。

(还没有评论权限,对不起,新的答案!)