@H_301_8@
[编辑2]:如果ipython作为ipython –pylab加载,此脚本在windows中可以正常工作.@H_301_8@
@H_301_8@
import timeimport numpy as npimport matplotlib.pyplot as pltfig = plt.figure()ax = fig.add_subplot(111)line,= ax.plot([0],[0],'b-o')window = 50plot_data = np.zeros((window,2))i = 0start = time.time()while True: try: data = [time.time() - start,np.random.rand()] print ' '.join('{:.2f}'.format(x) for x in data) if i < window: plot_data[i,:] = data line.set_data(plot_data[0:i+1,0],plot_data[0:i+1,1]) else: plot_data[0:window-1] = plot_data[1:window] plot_data[window-1] = data line.set_data(plot_data[:,plot_data[:,1]) ax.relim() ax.autoscale_vIEw(True,True,True) fig.canvas.draw() plt.pause(0.1) i += 1 except KeyboardInterrupt: print "Program ended by user.\n" break print 'Success!'
[编辑1]:我应该更清楚为什么我用matplotlib标记这个.以下示例脚本在任一 *** 作系统中都不会出现问题.@H_301_8@
@H_301_8@
i = 0 start = time.time()while True: try: data = [time.time() - start,np.random.rand()] print ' '.join('{:.2f}'.format(x) for x in data) time.sleep(0.1) except KeyboardInterrupt: print "Proram ended by user. \n" breakprint 'Success!'
昨天安装了所有软件包,作为Enthought的全新安装的一部分.@H_301_8@解决方法 现在,我发现在多台windows机器上解决此问题的最佳方法如下……
@H_301_8@
@H_301_8@
print 'press \'q\' to end run'time.sleep(1.0)fig = plt.figure()ax = fig.add_subplot(111)line,'b-o')window = 150plot_data = np.zeros((window,2))i = 0start = time.time()while True: data = [time.time() - start,np.random.rand()] print ' '.join('{:.2f}'.format(x) for x in data) if i < window: plot_data[i,:] = data line.set_data(plot_data[0:i+1,1]) else: plot_data[0:window-1] = plot_data[1:window] plot_data[window-1] = data line.set_data(plot_data[:,1]) ax.relim() ax.autoscale_vIEw(True,True) fig.canvas.draw() plt.pause(delay) i += 1 if msvcrt.kbhit(): if ord(msvcrt.getch()) == 113: print "Program ended by user.\n" break print 'Success!'
不幸的是,这根本不是平台独立的,但过去几天我读过的所有内容都让我相信平台无关的键盘输入实际上是不可能实现的.我原来问题中的代码在Unix和一些windows安装中运行良好.此代码适用于我尝试过的少数windows安装.所有这些在通过ipython –pylab运行时效果最佳.这可能必须足够好了.@H_301_8@ 总结
以上是内存溢出为你收集整理的python – 在while循环中生成绘图后在KeyboardInterrupt上退出全部内容,希望文章能够帮你解决python – 在while循环中生成绘图后在KeyboardInterrupt上退出所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)