Tkinter Matplotlib

Resumo : neste tutorial, você aprenderá como exibir um gráfico da biblioteca Matplotlib em um aplicativo Tkinter.

Exibir um gráfico de barras do matplotlib em aplicativos Tkinter

Matplotlib é uma biblioteca de terceiros para a criação de visualizações profissionais em Python. Como Matplotlib é uma biblioteca de terceiros, você precisa instalá-la antes de usar.

Para instalar o pacote matplotlib, você pode usar o seguinte pipcomando:

pip install matplotlibLinguagem de código:  Python  ( python )

O programa a seguir usa matplotlibpara criar um gráfico de barras que mostra as cinco principais linguagens de programação por popularidade.

import tkinter as tk
import matplotlib

matplotlib.use('TkAgg')

from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import (
    FigureCanvasTkAgg,
    NavigationToolbar2Tk
)


class App(tk.Tk):
    def __init__(self):
        super().__init__()

        self.title('Tkinter Matplotlib Demo')

        # prepare data
        data = {
            'Python': 11.27,
            'C': 11.16,
            'Java': 10.46,
            'C++': 7.5,
            'C#': 5.26
        }
        languages = data.keys()
        popularity = data.values()

        # create a figure
        figure = Figure(figsize=(6, 4), dpi=100)

        # create FigureCanvasTkAgg object
        figure_canvas = FigureCanvasTkAgg(figure, self)

        # create the toolbar
        NavigationToolbar2Tk(figure_canvas, self)

        # create axes
        axes = figure.add_subplot()

        # create the barchart
        axes.bar(languages, popularity)
        axes.set_title('Top 5 Programming Languages')
        axes.set_ylabel('Popularity')

        figure_canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)


if __name__ == '__main__':
    app = App()
    app.mainloop()Linguagem de código:  Python  ( python )

Saída:

Tkinter Matplotlib

Como funciona.

Primeiro, importe o matplotlibmódulo

import matplotlibLinguagem de código:  Python  ( python )

e chame a use()função para informar qual backend será matplotlibusado:

matplotlib.use('TkAgg')Linguagem de código:  Python  ( python )

Neste caso utilizamos TkAggbackend, que é feito para integração ao Tkinter.

Segundo, importe as seguintes classes Figure, FigureCanvasTkAgge NavigationToolbar2Tk:

from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import (
    FigureCanvasTkAgg,
    NavigationToolbar2Tk
)Linguagem de código:  Python  ( python )

A Figureclasse representa a área de desenho na qual matplotlibos gráficos serão desenhados.

A FigureCanvasTkAggclasse é uma interface entre o Figuree o Tkinter Canvas.

A NavigationToolbar2Tké uma barra de ferramentas integrada para a figura no gráfico.

Terceiro, prepare os dados para exibição no gráfico de barras:

data = {
    'Python': 11.27,
    'C': 11.16,
    'Java': 10.46,
    'C++': 7.5,
    'C#': 5.26
}
languages = data.keys()
popularity = data.values()Linguagem de código:  Python  ( python )

Os dados são um dicionário com as chaves são as linguagens de programação e os valores são sua popularidade em porcentagem.

Quarto, crie um Figurepara conter o gráfico:

figure = Figure(figsize=(6, 4), dpi=100)Linguagem de código:  Python  ( python )

O Figureobjeto recebe dois argumentos: tamanho em polegadas e pontos por polegada (dpi). Neste exemplo, ele cria uma figura de 600×400 pixels.

Quinto, crie um FigureCanvasTkAggobjeto que conecte o objeto com um objeto FigureTkinter :Canvas

figure_canvas = FigureCanvasTkAgg(figure, self)Linguagem de código:  Python  ( python )

Observe que o FigureCanvasTkAggobjeto não é um Canvasobjeto, mas contém um Canvasobjeto.

Sexto, crie uma matplotlibbarra de ferramentas integrada:

NavigationToolbar2Tk(figure_canvas, self)Linguagem de código:  Python  ( python )

Sétimo, adicione uma subtrama à figura e retorne os eixos da subtrama:

axes = figure.add_subplot()Linguagem de código:  Python  ( python )

Oitavo, crie um gráfico de barras chamando o bar()método dos eixos e passando para ele os idiomas e a popularidade. Além disso, defina o título e o rótulo do eixo y:

axes.bar(languages, popularity)
axes.set_title('Top 5 Programming Languages')
axes.set_ylabel('Popularity')Linguagem de código:  Python  ( python )

Finalmente, coloque o gráfico na janela raiz do Tkinter :

figure_canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)Linguagem de código:  Python  ( python )

Resumo

  • Use matplotliba biblioteca para criar visualizações de qualidade profissional no aplicativo Tkinter.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *