首页 > 解决方案 > 更新 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 上看起来很奇怪。

标签: pythonmatplotlibcanvastkinter

解决方案


推荐阅读