Python - построение нескольких графиков на одной фигуре в кадре в Tkinter - PullRequest
0 голосов
/ 09 марта 2020

Я строю 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")

Графики, которые я получаю - enter image description here

Вместо pack () я попытался использовать grid и place, но все равно ничего. Я хочу построить как минимум 4 графика. Что я делаю неправильно / отсутствует здесь? Спасибо

PS Я использую выборочные значения для базисного c графика в настоящее время.

1 Ответ

0 голосов
/ 10 марта 2020

Хорошо, я нашел способ делать заговоры. Я использую отдельные цифры для каждого графика. но пока не удается выровнять панель инструментов навигации под каждым рисунком.

     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)

Вид - enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...