Matplotlib:在旧图上绘图

泰伯留斯

回顾了这个问题之后(我如何告诉Matplotlib创建第二个(新的)图,然后再在旧的图上进行图?),我认为我已经弄清楚了,但是我认为我的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 vs x的图表,然后显示一个同时包含sin(x)和sin的图表(x + pi)与x。

但是取而代之的是,我得到了前两个图和一个仅包含sin(x)的图和一个仅包含sin(x + pi)的图。

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

一个男子

这个最小的更改可能会满足您的要求(尽管它不是最好的代码)。

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章