我正在使用带有matplotlib的Python 2.7.9来显示从FigureCanvasTKAgg中的微控制器获取的实时数据。图形本身必须始终显示最后100个点并调整Y轴的大小以显示和“紧密贴合”。所有要点。 X轴也会更新,以显示每个点的正确时间戳。
此图更新涉及在每个图像更新时重新绘制所有艺术家(因为所有图像更改),每100毫秒使用 self.scrollView.delaysContentTouches = true
self.scrollView.canCancelContentTouches = true
方法调用。我使用after
更新实际数据点和更新Y轴和X轴限制所需的方法,然后是line.set_data(x,y)
。这样工作正常,几乎是5fps(绘图本身需要大约100ms)。
我的问题是:有更快的方法吗?根据我的理解,canvas.draw()
方法重绘整个画布,包括子图。有没有办法只更新显示的行和样条曲线,从而增加fps?
我尝试使用draw
和其他人来实现解决方案,但是这会添加新的艺术家并且不会删除之前的艺术家。