Matplotlib:在旧情节上绘图

时间:2018-02-08 00:00:12

标签: python matplotlib plot figure

在审核了这个问题(How do I tell Matplotlib to create a second (new) plot, then later plot on the old one?)之后,我认为我已经想到了这一点,但我认为我的for循环遇到了问题。这是我正在做的事情的简化版本。

import matplotlib.pyplot as plt
import numpy as np

for m in range(2):
   x=np.arange(5)
   y=np.exp(m*x)
   plt.figure(1)
   plt.plot(x, y)
   plt.show()
   ...
   z=np.sin(x+(m*math.pi))
   plt.figure(2)
   plt.plot(x,z)
   ...
plt.figure(2)
plt.show()

我希望这会显示三个图:第一次通过e ^(0)vs x的图,第二次通过e ^ x对x的图,然后是一个包含sin的图(x )和sin(x + pi)vs x。

但相反,我得到前两个情节和一个只有罪(x)的情节和只有罪(x + pi)的情节。

如何获得我想要的所有数据到图2?当我回到循环的开头时,设置图重置似乎是某种问题。

1 个答案:

答案 0 :(得分:1)

这个最小的改变可能会做你想要的(尽管它不是最好的代码)。

plt.figure(1)替换为plt.figure()。从循环内删除任何plt.show()

循环结束,然后显示所有3个数字。 e^x曲线将在图#1和#3中。