是否可以在循环中生成并显示多个数字?我想显示每个图,以便我可以检查它,然后继续下一个。为了使这个问题更清楚,我写了一个我想做的小例子。目前,数字显示为“没有响应”,所以我看不到它们中的什么。我尝试过使用plt.waitforbuttonpress和plt.ion,但这似乎没有用。
我正在使用spyder编辑器,但如果解决方案也适用于其他编辑器(如空闲),那就太棒了。
import numpy as np
import matplotlib.pyplot as plt
pi = 3.14
figureTime = 1.0
x = np.arange(0,2*pi,0.1)
y1 = np.sin(x)
y2 = np.cos(x)
plt.ion()
for i in xrange(1,11,1):
plt.close('all')
# Figure 1
plt.figure()
plt.plot(x,y1*i)
plt.show()
plt.draw()
plt.waitforbuttonpress(timeout=figureTime)
raw_input("Press Enter to continue")
plt.close()
# Figure 2
plt.figure()
plt.plot(x,y2*i)
plt.show()
plt.draw()
plt.waitforbuttonpress(timeout=figureTime)
raw_input("Press Enter to continue")
plt.close()
答案 0 :(得分:2)
好吧解决了。以下代码适用于spyder和idle。所有你需要做的就是在循环外调用plt.ion(),并在你想暂停数字时调用plt.waitforbuttonpress()!简单!
import numpy as np
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings("ignore")
pi = 3.14
x = np.arange(0,2*pi,0.1)
y1 = np.sin(x)
y2 = np.cos(x)
plt.ion()
for i in xrange(1,11,1):
plt.close('all')
# Figure 1
plt.figure()
plt.plot(x,y1*i)
plt.show()
plt.waitforbuttonpress()
# Figure 2
plt.figure()
plt.plot(x,y2*i)
plt.show()
plt.waitforbuttonpress()