Skip to content
Tutoriais
Matplotlib
Criando Gráficos Deslumbrantes para Dataframes com Matplotlib

Domine Matplotlib & PyGWalker: Gráficos deslumbrantes para Dataframes em Python

A visualização de dados é uma parte importante da ciência de dados, pois nos ajuda a entender os dados de maneira mais fácil e tomar decisões mais informadas. Neste guia abrangente, você aprenderá como usar o Matplotlib para criar gráficos deslumbrantes a partir de dataframes do Pandas, personalizar suas visualizações e salvá-las para compartilhar. Explore técnicas básicas e avançadas de plotagem e descubra a alternativa de código aberto, PyGWalker, para uma experiência aprimorada e fácil de usar. Eleve suas habilidades de análise de dados com nosso tutorial passo a passo.

O que é o Matplotlib?

Matplotlib é uma biblioteca Python para criar visualizações estáticas, animadas e interativas em Python. Ele fornece uma ampla gama de ferramentas para criar vários tipos de gráficos, incluindo gráficos de linha, gráficos de dispersão, gráficos de barras, histogramas e muito mais. Ele também permite a personalização dos gráficos, incluindo a alteração de cores, rótulos, fontes e muito mais.

Gráficos básicos com Matplotlib

Para começar com o Matplotlib, primeiro importaremos a biblioteca e criaremos um dataframe simples do Pandas:

import matplotlib.pyplot as plt
import pandas as pd

# Criar um dataframe simples do Pandas
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)

Então podemos criar um gráfico de linha básico com o Matplotlib usando a função plot:

plt.plot(df['x'], df['y'])
plt.show()

Isso exibirá um gráfico simples de linha com nossos dados.

Também podemos personalizar nosso gráfico adicionando rótulos, ajustando as cores e alterando o estilo da linha:

plt.plot(df['x'], df['y'], color='red', linestyle='dashed', linewidth=2, marker='o')
plt.xlabel('Eixo X')
plt.ylabel('Eixo Y')
plt.title('Gráfico de Linha Simples')
plt.show()

Isso exibirá um gráfico de linha personalizado com rótulos e título.

Gráfico de Linha do Matplotlib com Dataframe

Para criar um gráfico de linha com o Matplotlib, podemos usar a função plot:

# Criar um dataframe do Pandas com várias colunas
data = {'x': [1, 2, 3, 4, 5], 'y1': [2, 4, 6, 8, 10], 'y2': [1, 3, 5, 7, 9]}
df = pd.DataFrame(data)

# Criar um gráfico de linha com várias linhas
plt.plot(df['x'], df['y1'], label='y1')
plt.plot(df['x'], df['y2'], label='y2')
plt.legend()
plt.show()

Isso exibirá um gráfico de linha com várias linhas.

Gráfico de Barras do Matplotlib com Dataframe

Para criar um gráfico de barras com o Matplotlib, podemos usar a função bar:

# Criar um dataframe do Pandas com várias colunas
data = {'x': ['A', 'B', 'C', 'D', 'E'], 'y1': [2, 4, 6, 8, 10], 'y2': [1, 3, 5, 7, 9]}
df = pd.DataFrame(data)

# Criar um gráfico de barras
fig, ax = plt.subplots()
ax.bar(df['x'], df['y1'], label='y1')
ax.bar(df['x'], df['y2'], label='y2')
ax.legend()
plt.show()

Neste exemplo, criamos um dataframe do Pandas com duas colunas 'y1' e 'y2', e uma coluna categórica 'x'. Em seguida, plotamos duas barras para cada valor de 'x', uma para 'y1' e outra para 'y2'. Também adicionamos uma legenda ao gráfico para distinguir as barras.

Gráfico de Dispersão do Matplotlib com Dataframe

Gráficos de dispersão são úteis para mostrar a relação entre duas variáveis contínuas. Podemos usar o Matplotlib para criar gráficos de dispersão com dataframes do pandas usando a função scatter.

# Criar um dataframe do Pandas com duas colunas
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)

# Criar um gráfico de dispersão
fig, ax = plt.subplots()
ax.scatter(df['x'], df['y'])
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.show()

Neste exemplo, criamos um dataframe do Pandas com duas colunas 'x' e 'y'. Em seguida, plotamos um gráfico de dispersão de 'x' versus 'y'. Também definimos os rótulos para o eixo x e o eixo y.

Aumentando o Tamanho do Gráfico no Matplotlib

Às vezes, pode ser necessário aumentar o tamanho do gráfico para torná-lo mais legível ou incluir mais informações. Podemos fazer isso definindo o tamanho da figura no Matplotlib.

# Criar um dataframe do Pandas com uma coluna
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)

# Criar um gráfico de linha com tamanho aumentado
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(df['x'], df['y'])
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.show()

Neste exemplo, criamos um dataframe do Pandas com duas colunas 'x' e 'y'. Em seguida, plotamos um gráfico de linha de 'x' versus 'y' com um tamanho maior de 10 por 6. Também definimos os rótulos para o eixo x e o eixo y.

Cor do Gráfico de Barras do Matplotlib com Base no Valor

Podemos personalizar as cores das barras em um gráfico de barras do Matplotlib com base nos valores que elas representam. Por exemplo, podemos definir a cor da barra como vermelha se o valor for negativo e verde se o valor for positivo.

# Criar um dataframe do Pandas com uma coluna
data = {'x': ['A', 'B', 'C', 'D', 'E'], 'y': [-2, 4, -6, 8, -10]}
df = pd.DataFrame(data)

# Criar um gráfico de barras com cores baseadas no valor
fig, ax = plt.subplots()
colors = ['r' if y < 0 else 'g' for y in df['y']]
ax.bar(df['x'], df['y'], color=colors)
ax.set_xlabel('Rótulo X')
ax.set_ylabel('Rótulo Y')
ax.set_title('Gráfico de Barras com Cores Baseadas no Valor')
plt.show()

Isso produzirá um gráfico de barras com barras vermelhas para valores negativos e barras verdes para valores positivos.

Gráfico do Matplotlib como Tabela

Além de criar gráficos, o Matplotlib também pode ser usado para criar tabelas a partir de dataframes do pandas. Isso pode ser útil para exibir estatísticas resumidas ou outros dados tabulares ao lado de seus gráficos.

Para criar uma tabela usando o Matplotlib, podemos usar a função table. Aqui está um exemplo de como criar uma tabela a partir de um dataframe do pandas:

# Criar um dataframe do pandas
data = {'Nome': ['Alice', 'Bob', 'Charlie', 'David'],
## Salvando e Exportando Gráficos

Depois de criar seu gráfico usando o Matplotlib, você pode querer salvá-lo no disco ou exportá-lo para um formato de arquivo que possa ser facilmente compartilhado ou incluído em um relatório. Para fazer isso, o Matplotlib oferece vários métodos para salvar e exportar gráficos.

Um método comum para salvar gráficos é usar a função savefig. Essa função permite especificar o formato do arquivo, como PNG ou PDF, e a resolução do gráfico. Aqui está um exemplo de como usar a função savefig:

```python
# Crie um gráfico
plt.plot([1, 2, 3, 4])
plt.ylabel('algum números')

# Salve o gráfico em um arquivo
plt.savefig('meu_grafico.png', dpi=300)

Isso salvará o gráfico como um arquivo PNG com uma resolução de 300 pontos por polegada (dpi).

Outro método para exportar gráficos é copiá-los para a área de transferência. O Matplotlib fornece uma função chamada matplotlib.pyplot.savefig que pode salvar a figura atual em um arquivo ou na área de transferência do sistema. Aqui está um exemplo de como usar a função savefig para copiar um gráfico para a área de transferência:

# Crie um gráfico
plt.plot([1, 2, 3, 4])
plt.ylabel('algum números')
 
# Copie o gráfico para a área de transferência
plt.savefig('clipboard', bbox_inches='tight', pad_inches=0)

Isso copiará o gráfico para a área de transferência, que poderá ser colado em outro aplicativo.

Use o PyGWalker como uma alternativa de código aberto ao Matplotlib

Se você deseja visualizar seus dados dentro do Python Pandas, há um pacote de análise de dados e visualização de dados de código aberto que pode ajudar: PyGWalker.

Para testar o PyGWalker agora mesmo, você pode executá-lo no Google Colab, Binder ou Kaggle.

O PyGWalker é de código aberto. Você pode verificar a página do GitHub do PyGWalker e ler o artigo Towards Data Science para obter mais informações sobre ele.

Comece a usar o PyGWalker no Jupyter Notebook

O PyGWalker pode simplificar seu fluxo de trabalho de análise e visualização de dados no Jupyter Notebook. Ao trazer uma interface leve e fácil de usar para a análise de dados usando Python. Os passos são simples:

Importe o pygwalker e o pandas para o seu Jupyter Notebook para começar.

import pandas as pd
import pygwalker as pyg

Você pode usar o pygwalker sem alterar seu fluxo de trabalho existente. Por exemplo, você pode chamar o Graphic Walker com o dataframe carregado desta maneira:

df = pd.read_csv('./bike_sharing_dc.csv', parse_dates=['date'])
gwalker = pyg.walk(df)

Você pode facilmente criar esses tipos de gráficos com seu dataframe do pandas sem uma interface gráfica do usuário.

Gráfico de BarrasGráfico de LinhaGráfico de Área
TrilhaDispersãoCírculo
Gráfico de TiqueRetânguloDiagrama de Arco
Gráfico de Caixa

Redimensione um gráfico com o PyGWalker

Você pode redimensionar facilmente um gráfico com o cursor do mouse.

Redimensionar um gráfico

Altere o tipo de gráfico

Um gráfico de linha pode demonstrar melhor as tendências do número de usuários registrados do que um gráfico de barras. Para alterar o tipo de gráfico existente para um gráfico de linha, clique na opção "Tipos de Marcador" na barra de ferramentas e escolha "Linha".

Alterar o tipo de gráfico

Crie uma Visualização Concatenada

Você pode querer comparar as diferenças entre os usuários "registrados" e "casuais". Basta adicionar mais medidas às linhas/colunas e compará-las.

Criar uma visualização concatenada

Não se esqueça de conferir uma ferramenta de análise de dados automatizada mais avançada e baseada em IA: RATH. O RATH também é de código aberto e possui seu código-fonte hospedado no GitHub.

Conclusão

Em conclusão, o Matplotlib é uma poderosa ferramenta de visualização de dados que pode ser usada para criar gráficos impressionantes a partir de dataframes do pandas. Neste artigo, cobrimos o básico do Matplotlib e do PyGWalker para criação de gráficos, incluindo como criar gráficos básicos e avançados, personalizar gráficos, salvar gráficos no disco e criar tabelas a partir de dataframes. Usando o Matplotlib e o PyGWalker, cientistas de dados podem aprimorar suas habilidades de visualização de dados e obter insights de seus dados. Lembre-se de continuar praticando e explorando os vários recursos do Matplotlib e do PyGWalker para aproveitar ao máximo seus dados.

📚