[英]Clearing graph before replotting matplotlib
我有一个小应用程序,它允许我使用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()
它正在清除初始图,但是就像我说的那样,轴正在堆叠(因为它每次都重绘一个轴,对应于稍微改变的数据点)。 有人知道解决方法吗?
要提高速度,您可以做几件事:
任一运行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的文档可以在这里找到。
高温超导
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.