Obstáculo comum do Matplotlib: 'matplotlib is currently using agg'
Published on
'matplotlib is currently using agg' é um problema enfrentado por muitos entusiastas do Python ao trabalhar com o Matplotlib para visualização de dados. Essa mensagem de erro sugere que o Matplotlib está utilizando um backend não-gráfico (não-GUI), impedindo a exibição de figuras ou gráficos. É hora de aprofundar-se nesse problema e descobrir maneiras de contorná-lo.
Entendendo backends GUI e não-GUI
Para lidar com o problema, é importante primeiro entender o conceito de backends GUI e não-GUI.
Backend GUI: O Poderoso da Visualização
GUI, sigla para interface gráfica do usuário, é o meio interativo entre o usuário e os dispositivos de computação. Ele utiliza elementos visuais como janelas, ícones e menus, possibilitando que os usuários interajam facilmente com seus dispositivos. Em Python, Tkinter é o método mais utilizado para desenvolvimento de GUI.
Backend não-GUI: O Modo de Interação Baseado em Texto
Por outro lado, um backend não-GUI é um modo de interação com base em máquinas que opera sem gráficos, dependendo exclusivamente de comunicação baseada em texto. A mensagem de aviso 'matplotlib is currently using agg' é uma indicação de que o Matplotlib está usando um backend não-GUI.
Lidando com o problema 'matplotlib is currently using agg'
Abaixo estão as soluções para resolver o erro 'matplotlib is currently using agg'.
Solução #1: Instalar o Tkinter, um Backend GUI
A instalação de um backend GUI como o Tkinter pode solucionar a situação. Veja como instalá-lo em diferentes ambientes:
Linux
Para instalar o backend GUI no Linux, use o seguinte comando:
sudo apt-get install python3-tk
Jupyter Notebook
Para introduzir o backend GUI em um notebook Jupyter, execute:
pip install tk
Após a instalação, importe a biblioteca Tkinter usando a seguinte sintaxe:
from tkinter import *
Distribuição Anaconda
Para usuários do Anaconda, o comando de instalação do Tkinter é:
conda install tk
Uma vez instalada, a biblioteca Tkinter pode ser importada com:
import tkinter
Solução #2: Instalar o PyQt5, Outro Backend GUI
Um backend GUI alternativo a considerar é o PyQt5, uma biblioteca Python para as bibliotecas Qt, frequentemente usado no desenvolvimento de aplicativos GUI. Veja como instalar o PyQt5:
Jupyter Notebook
Use o seguinte comando para instalar o PyQt5 no Jupyter Notebook:
pip install pyqt5
Linux
Para usuários do Ubuntu Linux ou do Debian Linux, o comando de instalação do PyQt5 é:
sudo apt-get install python3-pyqt5
CentOS 7
Usuários do CentOS 7 podem instalar o PyQt5 executando:
yum install qt5-qtbase-devel
Sistema baseado em Redhat
Usuários de sistemas baseados em RPM, incluindo Redhat, podem usar:
yum install PyQt5
Distribuição Anaconda
Para aqueles que usam o Anaconda Prompt, o comando é:
conda install pyqt
Alternativa ao Matplotlib: Visualize Dados com o PyGWalker
Além de usar o Matplotlib para visualizar seu dataframe do pandas, aqui está uma biblioteca alternativa de código aberto em Python que pode ajudá-lo a criar visualizações de dados com facilidade: PyGWalker (opens in a new tab).
Não há mais necessidade de realizar processamentos complicados com codificação Python, basta importar seus dados e arrastar e soltar variáveis para criar todos os tipos de visualizações de dados! Aqui está um vídeo rápido de demonstração:
Veja como usar o PyGWalker em seu notebook Jupyter:
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Alternativamente, você pode experimentá-lo no Kaggle Notebook/Google Colab:
PyGWalker é construído com o apoio da nossa comunidade de código aberto. Não se esqueça de conferir PyGWalker no GitHub (opens in a new tab) e dar uma estrela!
Pensamentos Finais
Embora a mensagem 'matplotlib is currently using agg' possa parecer intimidante inicialmente, é um obstáculo que pode ser superado com o entendimento adequado e os comandos certos. Ao equipar o Matplotlib com um backend GUI robusto, como Tkinter ou PyQt5, o processo de visualização de dados pode continuar sem interrupções, impulsionando as capacidades do Python para gráficos informativos e interativos.