我有一个小应用程序允许我使用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()
它正在清除初始图,但就像我说轴是堆叠的(因为它每次重绘一次,对应于略微改变的数据点)。有人知道修复吗?
答案 0 :(得分:1)
为了提高速度,您可以做以下几件事:
在地图生成的行上运行remove
方法:
# 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的文档here。
您可能还想阅读cookbook article on animation。
HTH