Matplotlib图在tkinter GUI中停止更新

时间:2018-03-26 04:42:50

标签: python python-3.x matplotlib tkinter

我正在处理这个应用程序,它涉及在按下按钮后在空图上绘制线条或圆圈。一切都很好,直到突然,图表才停止更新。例如:

        let myFloat : CGFloat = 1212.1212
        let myStr : String = myFloat.onlyOneDigits
        print(myStr) // 1212.1

        let anotherFloat : CGFloat = 1.96
        let anotherStr : String = anotherFloat.onlyOneDigits
        print(anotherStr) // 1.9

Image of the Test GUI

按下按钮时的假设结果是应该出现直线,但事实并非如此。我添加了print语句来检查按钮是否正常工作,确实如此,所以我真的不知道这里的问题是什么。我目前正在使用Spyder(3.2.4)。

1 个答案:

答案 0 :(得分:0)

一切正常,即正在绘制线条,但需要更新图形。您可以在绘图后使用['2014-01-01','2014-01-02','2014-01-03','2014-01-04','2014-01-05','2014-01-06', ...] 执行此操作。您的代码看起来像:

figure.canvas.draw()

您还可以使用f = Figure(figsize=(6, 6), dpi=100) a = f.add_subplot(111) root = tk.Tk() class Application(tk.Frame): def __init__(self, master=None): super().__init__(master) self.pack() self.mainwindow() def mainwindow(self): self.add_loci = Button(self) self.add_loci["text"] = "Add Line" self.add_loci["command"] = self.line self.add_loci.pack(side = TOP) # Plotting an empty graph a.set_xlabel('Re') a.set_ylabel('Im') a.grid(b=None) a.plot(0, 0) # Setting up and showing the toolbar and the graph canvas = FigureCanvasTkAgg(f, master=root) canvas.show() canvas.get_tk_widget().pack(side = BOTTOM, fill=BOTH, expand=1) toolbar = NavigationToolbar2TkAgg(canvas, root) toolbar.update() canvas._tkcanvas.pack(side = BOTTOM, fill=BOTH, expand=1) def line(self): a.plot([0, 10], [0, 10]) f.canvas.draw() print('test') app = Application(master=root) app.mainloop() 制作您创建实例变量的画布。然后使用self.canvas = ...。您的self.canvas.draw()mainwindow功能将如下所示:

line

两者都会产生相同的结果。