我在循环中打印,一切都很顺利:我可以看到所有。
for in range(0,10000) :
function_using_show()
print 25)
但是,当我在函数中放入相同的代码时:
def ff() :
for in range(0,10000) :
function_using_show()
print 25
def function_using_show():
plt.plot(X,Y)
plt.show()
仅打印最后一个图形和最后一个“25”。 如何在循环位于函数内时显示所有图形和打印?
被修改
答案 0 :(得分:0)
我认为你错过了:在if语句的末尾
答案 1 :(得分:0)
您的问题在于您尝试在循环中执行plt.show()
,但您在此处不考虑的是此方法阻止:
引用tutorial:
"因为默认情况下此主循环是阻塞的(,即脚本执行暂停),所以最后每个脚本只应调用一次。最后一个窗口关闭后,脚本执行将恢复。因此,如果您使用matplotlib仅生成图像而不想要用户界面窗口,则无需调用show"
解决方案是在同一窗口中显示所有绘图,例如(从此处获取):
import numpy as np
import matplotlib.pyplot as plt
def f(t):
return np.exp(-t) * np.cos(2*np.pi*t)
t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)
plt.figure(1)
plt.subplot(211)
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')
plt.subplot(212)
plt.plot(t2, np.cos(2*np.pi*t2), 'r--')
plt.show()
输出: