How to embed a matplotlib graph to the Tkinter GUI

share link

by Abdul Rawoof A R dot icon Updated: Aug 23, 2023

technology logo
technology logo

Solution Kit Solution Kit  

Matplotlib and Tkinter are two popular libraries used in Python for different purposes. Let's explore each of them:   


1. Matplotlib: 

It is a powerful data visualization library in Python. It provides various tools for creating various plots, charts, and graphs. You can use it to make simple or complex visualizations, like lines or 3D plots.   

2. Tkinter: 

Tkinter is the standard Python library for creating graphical user interfaces (GUIs). You can create desktop apps with buttons, menus, and other interactive elements.   


Tkinter is great for beginners who want to make simple GUI apps because it's easy to use. It offers a variety of layout managers to position and organize the widgets within a window.  


You can create different plots with Matplotlib and add them to a Tkinter GUI. 


1. Bar Plot:   

  • Represent data using rectangular bars of varying heights.   
  • Useful for comparing categories or groups.   
  • Matplotlib function:   

2. Histogram:   

  • Visualize the distribution of a single variable.   
  • Shows the frequency or count of data within predefined bins.   
  • Matplotlib function: plt.hist().   

3. Scatter Plot:   

  • Display the relationship between two variables.   
  • A marker on the plot represents each data point.   
  • Matplotlib function: plt.scatter().   

4. Line Plot:   

  • Show the trend or relationship between two variables over a continuous interval.   
  • A line segment connects each data point.   
  • Matplotlib function: plt.plot().   

5. Pie Chart:   

  • Display the proportion or percentage of different categories as a whole.   
  • Useful for visualizing categorical data.   
  • Matplotlib function: plt.pie().   


Like other Tk bindings, Tkinter is a Python wrapper for a complete Tcl interpreter. It is a general-purpose and high-level programming language. Machine Learning Models, Full-Stack applications, and GUI applications use it. These applications can receive inputs through mouse clicks. Users can choose options using radio buttons, dropdown lists, and other graphical elements. The Python code will build and place a button in the button frame using a package manager. Python has several libraries for creating user interfaces. Some examples are Pyglet, wxWidgets, GTK, and Tkinter.  


Here is an example of how to embed a matplotlib graph into the Tkinter GUI:   

Fig: Preview of the output that you will get on running this code from your IDE.


In this solution we are using Tkinter and Matplotlib libraries.


Follow the steps carefully to get the output easily.

  1. Install PyCharm Community Edition on your computer.
  2. Open terminal and install the required libraries with following commands.
  3. Install Tkinter - pip install tkinter.
  4. Install Matplotlib - pip install matplotlib.
  5. Create a new Python file(eg:
  6. Copy the snippet using the 'copy' button and paste it into that file.
  7. Run the file using run button.

I hope you found this useful. I have added the link to dependent libraries, version information in the following sections.

I found this code snippet by searching for 'Merge matplotlib in a tkinter window' in kandi. You can try any such use case!

Environment Tested

I tested this solution in the following versions. Be mindful of changes when working with other versions.

  1. The solution is created in PyCharm 2022.3.3.
  2. The solution is tested on Python 3.9.7.
  3. Tkinter version 1.0.7.
  4. Matplotlib version 3.7.1.

Using this solution, we are able to embed a matplotlib graph to the Tkinter GUI with simple steps. This process also facilities an easy way to use, hassle-free method to create a hands-on working version of code which would help us to embed a matplotlib graph to the Tkinter GUI.

Dependent Library

Tkinter-Designerby ParthJadhav

Python doticonstar image 5885 doticonVersion:v1.0.7doticon
License: Permissive (BSD-3-Clause)

An easy and fast way to create a Python GUI 🐍


            Tkinter-Designerby ParthJadhav

            Python doticon star image 5885 doticonVersion:v1.0.7doticon License: Permissive (BSD-3-Clause)

            An easy and fast way to create a Python GUI 🐍

                      matplotlibby matplotlib

                      Python doticonstar image 17559 doticonVersion:v3.7.1doticon
                      no licences License: No License (null)

                      matplotlib: plotting with Python


                                matplotlibby matplotlib

                                Python doticon star image 17559 doticonVersion:v3.7.1doticonno licences License: No License

                                matplotlib: plotting with Python

                                          You can also search for any dependent libraries on kandi like 'Tkinter' and 'Matplotlib'.


                                          1. How do I create a basic Tkinter application using matplotlib?   

                                          To make a simple Tkinter app with Matplotlib, follow these steps: 

                                          • Import the necessary modules.   
                                          • Create the main Tkinter window.   
                                          • Create a Figure object from Matplotlib and add a subplot to it.   
                                          • Define a function to plot your desired data using Matplotlib.   
                                          • Create a canvas widget to display the Matplotlib figure within the Tkinter window.   
                                          • Start the Tkinter event loop to display the application.   


                                          2. What is the main way to make GUI applications with Tkinter and matplotlib in Python?   

                                          Create the main window of the application by using the Tkinter library. Then, put a matplotlib figure inside the window.   


                                          3. When combined with matplotlib, what is the purpose of the tkinter library?   

                                          Tkinter is a standard Python library. It provides a graphical user interface (GUI) framework for developing desktop applications. The Tcl extension created the Tk GUI toolkit, building upon it. Python programmers can make GUI components like windows, buttons, and menus.   


                                          4. Which event listening loop is best for my program's main loop with MatPlotLibTKInter?   

                                          In general, we set up a specific event listening loop. It's called the Tkinter event loop or the Tkinter main loop. This event loop handles user interactions, GUI updates, and callbacks.   


                                          To use Matplotlib with Tkinter, follow these steps to make sure they work together: 

                                          • Import the necessary modules.   
                                          • Create a Tkinter application window.   
                                          • Create a Matplotlib figure and axis.   
                                          • Create a Tkinter canvas for Matplotlib to render on.   
                                          • Define your event-handling functions and callbacks. These functions will run when events occur, such as button clicks or mouse movements.   
                                          • Start the Tkinter event loop.   


                                          5. What are some key considerations when designing an application window using MatPlotLibTKInter?   

                                          There are several key considerations to remember. Here are some essential aspects to consider:   

                                          • Importing libraries: Ensure that you have imported the necessary libraries.   
                                          • Window layout: Decide on the layout of your application window.   
                                          • Matplotlib figure: Create a Matplotlib figure object. It will be the canvas for plotting. You can use the Figure class from matplotlib.Figure module to create the figure.   
                                          • Embedding the figure in Tkinter: To display a Matplotlib figure in your Tkinter app, embed it. To make a FigureCanvasTkAgg instance, provide your figure and Tkinter window.   
                                          • Navigation toolbar (optional): It provides interactive functionality like zooming, panning, and saving figures.  
                                          • Responding to events: When things happen, plan how your app will respond to them. This includes things like button clicks or user interactions. You can connect event handlers to the widgets or add features to update plots with user input.   
                                          • Customization: Decide on the appearance and customization options for your application window. With Tkinter's configuration options, you can modify colors, fonts, sizes, and styles.   
                                          • Organization and structure: Ensure that your code is well-organized and structured.  


                                          1. For any support on kandi solution kits, please use the chat
                                          2. For further learning resources, visit the Open Weaver Community learning page.

                                          See similar Kits and Libraries