在循环Python中显示所有Print

时间:2016-07-03 06:59:32

标签: python

我在循环中打印,一切都很顺利:我可以看到所有。

 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”。 如何在循环位于函数内时显示所有图形和打印?

被修改

2 个答案:

答案 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()
  

输出:

enter image description here