很长一段时间以来,我一直在努力解决 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
和手动轴更新的线图选项。是否有类似于散点图的东西,或者是否有更优雅的方式?