繁体   English   中英

重新配置matplotlib之前清除图形

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM