python - 更新 FigureCanvasTkAgg 中的图形
问题描述
我目前正在尝试使用 tkinter 将 matplotlib 图嵌入到 GUI 中。我的问题源于尝试创建一个按钮来更新 FigureCanvasTkAgg 中显示的图形。
这就是我设置原始情节的方式,一切都很好
self.canvas = FigureCanvasTkAgg(figure, self.curve_plot)
self.canvas.draw()
self.canvas.get_tk_widget().pack(expand=tk.TRUE, fill=tk.BOTH)
self.toolbar = CustomToolbar(self.canvas, self.curve_plot)
self.toolbar.update()
self.canvas._tkcanvas.pack(fill=tk.BOTH)
我创建了另一种方法,我想将一个新图形传递给 Canvas 并对其进行更新。
def update_graph(self, new_fig):
self.canvas.figure = figure
self.canvas.draw()
self.canvas.get_tk_widget().pack(expand=tk.TRUE, fill=tk.BOTH)
这绘制了新图,但它与前一个图的比例不正确(请注意,两个图本质上是相同的,不同的数据用于测试目的)。
我以前使用清除画布
self.canvas.get_tk_widget().destroy()
然后用新图回顾一下这篇文章顶部的原始代码。我宁愿避免破坏小部件并重新创建它,因为它在 GUI 上看起来很奇怪。