我知道网上有几个问题,但不幸的是,这些问题都没有帮助我。我的相关matplotlib导入包括:
import matplotlib
matplotlib.use("TkAgg")
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
以下是我如何呼吁新的情节:
^{pr2}$我有一个刷新按钮,它一直在调用最终创建这个绘图的函数,但我需要一个嵌入的绘图,它在每次单击按钮后都会更新,而不是重新创建。我尝试过类似Figure.close(), Figure.clf()
的方法,但都没用。谢谢你的帮助。在
附加信息:它不断地创建新的绘图是因为我不断地把它网格化。所以我删除了代码的.grid()部分,并尝试了下面这样的方法,但没有成功:
self.myFig1.clf()
self.myFig1 = Figure(figsize = (10, 4), tight_layout = True)
self.myPlot1 = self.myFig1.add_subplot(111)
self.myPlot1.plot([blah],[blah])
canvas1 = FigureCanvasTkAgg(self.myFig1, self.myFrame)
canvas1.draw()
这只会破坏人物,画布,所有的东西,而不会画任何东西。在
解决了我的问题。您的“刷新绘图”按钮或方法应该有这样的功能,以便保留画布、清除旧绘图、创建新绘图并保留绘图样式元素,如xlabel、ylabel等。因此,基本上,首先清除图形(而不是子图,self.myPlot.clear()会把情节弄清楚,但你不能那样做,然后你用kwargs重新创建子图,然后绘制,最后绘制。画布.draw()
没有必要重新创建一个新的画布或无花果。 在网格化您的FigureCanvasTkAgg之后,您只能通过以下方式重置line in按钮回调:
相关问题 更多 >
编程相关推荐