嵌入在Tkinter类中的实时绘图

时间:2016-06-21 08:55:39

标签: python python-2.7 matplotlib tkinter tkinter-canvas

你能帮我把实时情节嵌入我的Tkinter GUI吗?我已经尝试了很多例子但是我的Tkinter类没有任何效果。

  

我已经定义了一个GUI类并初始化了方法()

class Gui():
    def __init__(self, root):
        self.root=root
        self.initialize()
  

接下来,我将绘图嵌入到GUI中但它无法正常工作

def initialize(self):

        self.entry = tk.Entry(root)

        f = plt.figure()
        a = f.add_subplot(111)
        axes = f.add_subplot(111)
        line, = axes.plot([], [], ':ko')
        axes.set_autoscaley_on(True)
        axes.grid()
        xdata = []
        ydata = []
  

然后:

for ind in range(0,100):
            ydata.append(ind)
            xdata.append(sin(2*pi*ind))
            line.set_data(xdata, ydata)
            axes.relim()
            axes.autoscale_view()
            canvas = FigureCanvasTkAgg(f, master=frame)
            canvas.show()
            canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
            canvas._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
            time.sleep(1)
  

最后,我在画面中显示了画布,但是没有效果。

frame = Frame(self.root)
frame.pack(side=TOP, fill=BOTH, expand=1)

Button1=Button(frame,text="Draw")
Button1.pack(side=BOTTOM, fill= Y )

canvas = FigureCanvasTkAgg(f, master=frame)
canvas.show()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
canvas._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)

0 个答案:

没有答案