【发布时间】:2014-05-26 20:34:55
【问题描述】:
使用 pyQt 4.8.5 在 Python 2.7 中编写:
如何在 pyQt 中实时更新 Matplotlib 小部件? 目前我正在采样数据(现在是random.gauss),附加它并绘制 - 你可以看到我每次都在清除数字并为每次调用重新绘制:
def getData(self):
self.data = random.gauss(10,0.1)
self.ValueTotal.append(self.data)
self.updateData()
def updateData(self):
self.ui.graph.axes.clear()
self.ui.graph.axes.hold(True)
self.ui.graph.axes.plot(self.ValueTotal,'r-')
self.ui.graph.axes.grid()
self.ui.graph.draw()
我的 GUI 可以工作,尽管我认为这是实现这一目标的错误方法,因为它的效率非常低,我相信我应该在绘图时使用“动画调用”(?),虽然我不知道如何。
【问题讨论】:
-
所以只添加新数据,旧数据保持不变?
-
嗨,呆伯特,我应该说 - 是的,在某种程度上,这是您问题的答案。我想保留(比如说)前 500 个数据点,当新数据进来时,我会删除最旧的数据。