找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 6218|回复: 4

[已回复] pylab 画动态曲线图

1

主题

2

帖子

2

积分

贫民

积分
2
adamxuwx 发表于 2016-8-27 18:45:25 | 显示全部楼层 |阅读模式
各位好,我用第三方库pylab 在python中实现动态曲线图,我是在一个循环中来画曲线,但在关闭窗体时程序一直在循环中没有跳出,‘over’没有打印出来,有没有办法当关闭曲线窗体后可以退出循环向下执行,程序如下:
  1. from pylab import *
  2. import random
  3. import time

  4. fig, ax = plt.subplots()

  5. grid(True)
  6. plt.ion()
  7. x=[]
  8. y=[]
  9. i=0
  10. while True:

  11.         dat=10*random.random()  
  12.         x.append(i)
  13.         y.append(dat)
  14.         ax.plot(x,y,'b')
  15.         plt.pause(0.0001)                     
  16.         plt.show()

  17.         
  18.         i +=1
  19.         time.sleep(0.01)
  20.      
  21. print('over')
复制代码


回复

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-8-30 17:56:54 | 显示全部楼层
没有用过pylab,但是我想gui的这种都是通过在死循环里面监听事件的出发来操作相关的动作吧。
在pygame中是这样来搞的, 你可以借鉴一下,看看有没有相关的api也可以这么做:
for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit()
回复 支持 反对

使用道具 举报

2

主题

3

帖子

3

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3

活跃会员热心会员突出贡献荣誉管理

parkwalker 发表于 2016-8-30 21:09:15 | 显示全部楼层
首先 这是一个语法问题 while True很明显就是个死循环  当然不会退出  print('over')永远也执行不了
看到你程序中有个变量i  但没用上  改了一下程序
  1. from pylab import *
  2. import random
  3. import time

  4. fig, ax = plt.subplots()

  5. grid(True)
  6. plt.ion()
  7. x=[]
  8. y=[]
  9. i=0

  10. while i <= 20:
  11.         dat=10*random.random()  
  12.         x.append(i)
  13.         y.append(dat)
  14.         ax.plot(x,y,'b')
  15.         plt.pause(0.0001)                     
  16.         plt.show()

  17.         
  18.         i +=1
  19.         time.sleep(0.01)
  20.      
  21. print('over')
复制代码
回复 支持 反对

使用道具 举报

0

主题

20

帖子

20

积分

版主

Rank: 7Rank: 7Rank: 7

积分
20

活跃会员热心会员突出贡献荣誉管理

喏小喏 发表于 2016-8-31 08:27:20 | 显示全部楼层
parkwalker 发表于 2016-8-30 21:09
首先 这是一个语法问题 while True很明显就是个死循环  当然不会退出  print('over')永远也执行不了
看到你 ...

改的帅气, 学习了
回复 支持 反对

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
adamxuwx  楼主| 发表于 2016-8-31 11:39:42 | 显示全部楼层
谢谢你们的回复。我一直想找API函数来触发关闭界面的事件,找不到。三楼的直接把循环次数改为20,虽然可以退出循环,但是在实际问题中,如实时数据采集显示,你不可以设定一个循环次数吧,只能在一个无限的循环中。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表