Matplotlib:绘制旧图
Matplotlib: plotting on old plot
查看此问题后 (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 vs x 的图,然后是一个同时包含 sin 的图(x) 和 sin(x+pi) 与 x。
但是我得到了前两个图和一个只有 sin(x) 的图和一个只有 sin(x+pi) 的图。
如何将我想要的所有数据添加到图 2 中?当我 return 到循环开始时,设置数字重置似乎是某种问题。
这个最小的更改可能会满足您的要求(尽管它不是最好的代码)。
将 plt.figure(1)
替换为 plt.figure()
。从循环内部删除任何 plt.show()
。
循环将结束,然后将显示所有 3 个数字。 e^x
曲线将在图 #1 和 #3 中。
查看此问题后 (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 vs x 的图,然后是一个同时包含 sin 的图(x) 和 sin(x+pi) 与 x。
但是我得到了前两个图和一个只有 sin(x) 的图和一个只有 sin(x+pi) 的图。
如何将我想要的所有数据添加到图 2 中?当我 return 到循环开始时,设置数字重置似乎是某种问题。
这个最小的更改可能会满足您的要求(尽管它不是最好的代码)。
将 plt.figure(1)
替换为 plt.figure()
。从循环内部删除任何 plt.show()
。
循环将结束,然后将显示所有 3 个数字。 e^x
曲线将在图 #1 和 #3 中。