Matplotlib实时绘图随着时间的推移减速

时间:2018-01-25 17:53:50

标签: python matplotlib

很长一段时间以来,我一直在努力解决 Matplotlib 的实时可移植性问题。在此期间,我转到 PyQt 并在那里找到了几个很好的解决方案。 但是,现在我想写一些非常简单的模拟,并希望跟踪这个过程。 必须跟踪的数据是2D点,因此我将使用Matplotlib的分散方法。更新与fig.canvas.draw非常吻合。但是,我绘制的数据点越多,绘图就越慢。

def __init__(self):
    self.fig, (self.ax1, self.ax2) = plt.subplots(2)
    self.fig.show()
    self.fig.canvas.draw()
    self.main()

def main(self):
    c = 1
    for i in range(1000):
        self.ax1.scatter(i, c)
        self.ax2.scatter(c, i)
        c += 1
        self.fig.canvas.draw()
        self.fig.canvas.flush_events()

显示相关的代码行。它真的围绕着ax.scatter()。根据我的理解,底层绘图对象变得越来越大,因为连续添加点到绘图比实际数据模拟花费更多时间的点。有没有办法只绘制新点?我已经阅读了人们使用line.set_ydata和手动轴更新的线图选项。是否有类似于散点图的东西,或者是否有更优雅的方式?

0 个答案:

没有答案