找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4868|回复: 1

[求助] matplotlib画图的问题

1

主题

1

帖子

7

积分

贫民

积分
7
zhangyong1980 发表于 2015-8-11 20:51:59 | 显示全部楼层 |阅读模式
想写一个Observer的类,用来观察程序运行过程中的中间结果,也就是说把程序中的数据可视化出来,于是写了下面这个类
class Observer(object):
    def __init__(self, idx):
        self.idx = idx
        self.fig = plt.figure(self.idx)
        self.ax = self.fig.add_subplot(1, 1, 1)
        self.line, = self.ax.plot([], [])
        self.fig.show(False)

    def update(self, x, y, title):
        plt.figure(self.idx)
        self.line.set_data(x, y)
        xmin, xmax = x.min(), x.max()
        ymin, ymax = y.min(), y.max()
        dx = (xmax - xmin) * 0.2
        dy = (ymax - ymin) * 0.2
        if dx == 0: dx = 1
        if dy == 0: dy = 1
        plt.xlim(xmin - dx, xmax + dx)
        plt.ylim(ymin - dy, ymax + dy)
        plt.title(title)
        self.line.figure.canvas.draw()
可是使用起来的时候,当图显示出来以后,图的窗口很快就变成了未响应的状态,而且只要鼠标一有任何动作图窗口也会变成未响应状态,请高手指点一下啊
回复

使用道具 举报

0

主题

23

帖子

23

积分

贫民

积分
23
关大叔 发表于 2015-8-12 10:26:23 | 显示全部楼层
窗口是线程,你挂的画图延时阻塞了,用线程实现,GUI回调
回复 支持 反对

使用道具 举报

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

本版积分规则

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