|
想写一个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()
可是使用起来的时候,当图显示出来以后,图的窗口很快就变成了未响应的状态,而且只要鼠标一有任何动作图窗口也会变成未响应状态,请高手指点一下啊
|
|