【问题标题】:Python- plotting multiple graphs on same figure in frame in TkinterPython-在Tkinter中的同一帧中绘制多个图
【发布时间】:2020-06-21 14:10:23
【问题描述】:

我正在构建一个 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 个图表。我在这里做错了什么/错过了什么?谢谢

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

【问题讨论】:

    标签: python matplotlib tkinter plot graph


    【解决方案1】:

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

         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)
    

    观点-

    【讨论】:

      猜你喜欢
      • 2018-01-01
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多