How to embed Matplotlib charts in Tkinter GUI?

您所在的位置:网站首页 什么叫预装正版office家庭和学生版 How to embed Matplotlib charts in Tkinter GUI?

How to embed Matplotlib charts in Tkinter GUI?

#How to embed Matplotlib charts in Tkinter GUI?| 来源: 网络整理| 查看: 265

Prerequisite: Introduction to Tkinter | Introduction to Matplotlib

When Matplotlib is used from Python shell, the plots are displayed in a default window. The plots can be embedded in many graphical user interfaces like wxpython, pygtk, or Tkinter. These various options available as a target for the output plot are referred to as ‘backends‘. There are various modules available in matplotlib.backend for choosing the backend. One such module is backend_tkagg which is useful for embedding plots in Tkinter.

Creating the Tkinter Application :

First, let us create a basic Tkinter application with the main window and one button which can be used to display the plot.

Python3

# import all classes/methods# from the tkinter modulefrom tkinter import *  # The main tkinter windowwindow = Tk()  # setting the title and window.title('Plotting in Tkinter')  # setting the dimensions of # the main windowwindow.geometry("500x500")  # button that would displays the plotplot_button = Button(master = window,                     height = 2,                     width = 10,                    text = "Plot")# place the button# into the windowplot_button.pack()  # run the guiwindow.mainloop()

  

 Output :

 

tkinter simple window

Embedding the Plot:

 

First, we need to create the figure object using the Figure() class. Then, a Tkinter canvas(containing the figure) is created using FigureCanvasTkAgg() class. Matplotlib charts by default have a toolbar at the bottom. When working with Tkinter, however, this toolbar needs to be embedded in the canvas separately using the NavigationToolbar2Tk() class.In the implementation below, a simple graph for:

 

y = x^2

 

is plotted. The plot function is bound to a button that displays the figure when pressed.

 

Python3

from tkinter import * from matplotlib.figure import Figurefrom matplotlib.backends.backend_tkagg import (FigureCanvasTkAgg, NavigationToolbar2Tk)  # plot function is created for # plotting the graph in # tkinter windowdef plot():      # the figure that will contain the plot    fig = Figure(figsize = (5, 5),                 dpi = 100)      # list of squares    y = [i**2 for i in range(101)]      # adding the subplot    plot1 = fig.add_subplot(111)      # plotting the graph    plot1.plot(y)      # creating the Tkinter canvas    # containing the Matplotlib figure    canvas = FigureCanvasTkAgg(fig,                               master = window)      canvas.draw()      # placing the canvas on the Tkinter window    canvas.get_tk_widget().pack()      # creating the Matplotlib toolbar    toolbar = NavigationToolbar2Tk(canvas,                                   window)    toolbar.update()      # placing the toolbar on the Tkinter window    canvas.get_tk_widget().pack()  # the main Tkinter windowwindow = Tk()  # setting the title window.title('Plotting in Tkinter')  # dimensions of the main windowwindow.geometry("500x500")  # button that displays the plotplot_button = Button(master = window,                      command = plot,                     height = 2,                      width = 10,                     text = "Plot")  # place the button # in main windowplot_button.pack()  # run the guiwindow.mainloop()

Output :

tkinter with plot

My Personal Notes arrow_drop_up


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3