首页 > 解决方案 > Python-在Tkinter中的同一帧中绘制多个图

问题描述

我正在构建一个 GUI,其中某些模型的值将在单击按钮时显示图形。到目前为止,它适用于一个图表,但是当我尝试绘制第二个图表时,它们都被绘制但合并了。我希望它们在一帧内单独显示。现在,我正在使用 tkinter 画布进行绘图。这是我到目前为止所做的-

    f = Figure(figsize=(3,3), dpi=100)
    def graph1():

        a = f.add_subplot(111)
        a.plot([1, 2, 3, 4], [1, 4, 9, 16])
        canvas = FigureCanvasTkAgg(f, self.RightFrame)
        canvas.get_tk_widget().pack(side=LEFT)
        canvas._tkcanvas.pack(side=LEFT)
    def graph2():
        a = f.add_subplot(121)
        a.plot([6, 9, 12, 15], [20, 25, 30, 35])
        canvas = FigureCanvasTkAgg(f, self.RightFrame)
        canvas.get_tk_widget().pack(side=LEFT)
        canvas._tkcanvas.pack(side=LEFT)

    Button(self.RightFrame,text='Show Graph1',command=graph1).pack(side=TOP)    
    Button(self.RightFrame,text='Show Graph2',command=graph2).pack(side=TOP) 

框架的代码如下 -

    self.RightFrame = Frame(Tab1)
    self.RightFrame.place(relx=0.165, rely=0.066, relheight=0.83, relwidth=0.842)
    self.RightFrame.configure(relief='groove')
    self.RightFrame.configure(borderwidth="2")

我得到的图表 - 在此处输入图像描述

而不是 pack(),我尝试使用网格和位置,但仍然没有。我想绘制至少 4 个图表。我在这里做错了什么/错过了什么?谢谢

PS我暂时使用样本值进行基本绘图。

标签: pythonmatplotlibtkinterplotgraph

解决方案


好的,我找到了一种做情节的方法。我为每个图表使用单独的数字。但还不能对齐每个数字下的导航工具栏。

     def graph1():
        f = Figure(figsize=(3,3), dpi=100)
        a = f.add_subplot(111)
        a.plot([1, 2, 3, 4], [1, 4, 9, 16])

        canvas = FigureCanvasTkAgg(f, self.RightFrame)
        canvas.get_tk_widget().place(relx=0.010,rely=0.100)
        toolbar = NavigationToolbar2Tk(canvas, self.RightFrame)
        toolbar.update()
        canvas._tkcanvas.place(relx=0.001,rely=0.100)
     def graph2():
        f2 = Figure(figsize=(3,3), dpi=100)
        a = f2.add_subplot(111)
        a.plot([6, 9, 12, 15], [20, 25, 30, 35])
        canvas = FigureCanvasTkAgg(f2, self.RightFrame)
        canvas.get_tk_widget().place(relx=0.310,rely=0.100)
        toolbar = NavigationToolbar2Tk(canvas, self.RightFrame)
        toolbar.update()
        canvas._tkcanvas.place(relx=0.310,rely=0.100)

风景- 在此处输入图像描述


推荐阅读