【发布时间】:2014-02-24 17:52:01
【问题描述】:
我想使用 pylab 动画更新多个图形。我为要显示的每个通道初始化一个新图形,并将交互模式设置为关闭:
pyplot.ion()
pyplot.show()
在包含图形的类中有一个环形缓冲区和一个更新数据的方法:
def append_data(self, data):
update buffers with data
...
...
self.lineb.set_data(self.tbuf, self.bbuf)
self.ax1.set_xlim( [min(self.tbuf), max(self.tbuf)] )
self.ax1.set_ylim( [min(self.bbuf), max(self.bbuf)] )
...
...
self.fig.show()
pyplot.draw()
问题:有多个图,只有最后一个正确更新。其他的不刷新。我知道数据已正确添加到每个图形的缓冲区中,所以问题不存在。
【问题讨论】:
-
避免使用
pyplot,除非你真的以交互方式使用它。fig.canvas.draw()会对特定人物做同样的事情。 -
我不确定我是否理解您的建议。你的意思是避免使用
pyplotcommand 或模块?你会用什么代替? -
看起来你在嵌入,
pyplot的事件循环可能与你的 gui 的事件循环冲突。
标签: python matplotlib non-interactive