1

我有一个小应用程序,允许我使用 tKinter 比例小部件更改输入值,并查看图表如何对输入的不同变化作出反应。每次我移动刻度时,它都会绑定到一个重新计算列表并重新绘制的事件。这有点慢。

现在,我正在重新绘制整个东西,但它在使用几分钟后将一个轴堆叠在另一个轴上,数百个。

deltaPlot = Figure(figsize=(4,3.5), dpi=75, frameon=False)
c = deltaPlot.add_subplot(111)
c.set_title('Delta')
deltaDataPlot = FigureCanvasTkAgg(deltaPlot, master=master)
deltaDataPlot.get_tk_widget().grid(row=0,rowspan=2)

主循环运行

c.cla()
c.plot(timeSpread,tdeltas,'g-')
deltaDataPlot.show()

它正在清除初始图,但就像我说的轴是堆叠的(因为它每次都重绘一个,对应于稍微改变的数据点)。有人知道修复吗?

4

1 回答 1

1

为了提高速度,您可以做几件事:

在plotremove产生的线上运行方法:

# inside the loop
line, = c.plot(timeSpread,tdeltas,'g-')
deltaDataPlot.show()
...
line.remove()

或者重新使用这条线,适当地更新它的坐标:

# outside the loop
line, = c.plot(timeSpread,tdeltas,'g-')

# inside the loop
deltaDataPlot.show()
line.set_data(timeSpread,tdeltas)

Line2d 的文档可以在这里找到。

您可能还想阅读有关动画的食谱文章

高温高压

于 2012-08-06T16:47:27.050 回答