Python

Python: Visualizando dados com Matplotlib e Seaborn

By 23 de fevereiro de 2022 No Comments

O Python é uma linguagem que tem a notoriedade de ser amplamente utilizada no mundo da análise de dados em geral. Esse ponto forte não se dá somente por sua força na realização de cálculos, de forma rápida e fácil, mas também pela possibilidade de criar gráficos úteis para a análise dos dados e na comunicação de resultados. No post de hoje, mostraremos duas bibliotecas importantes do Python para a criação de gráficos: Matplolib e Seaborn.

Primeiro carregamos as bibliotecas necessárias para que possamos trabalhar com os dados no Python.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
# !pip install python-bcb
from bcb import sgs

Para os exemplos dos gráficos iremos importar os dados através do Sistema Gerenciador de Séries do Banco Central. Utilizaremos duas séries: a variação do IPCA mensal e o desemprego medido pela PNADC.

ipca = sgs.get({'IPCA' : 433}, start = "2010-01-01")
desemprego = sgs.get({'desemprego' : 24369})
data = desemprego.merge(ipca, on = 'Date', how = 'left')

Matplotlib

O Matplotlib é uma biblioteca do Python com a funcionalidade de criar gráficos 2D. Tem como ponto positivo a variedade de gráficos e formas de construção em conjuntos com diversas bibliotecas para análises de dados e entre outros formatos.

Matplotlib transformas os dados em figuras, cada uma contendo uma ou mais eixos, especificando os pontos gráficos em coordenadas x-y. Para cada tipo de gráfico existe um função específica, que a depender da forma em que os dados necessitam se dispor no gráfico, deve ser indicado pelos seus argumentos.

Vemos um exemplo com a série da variação mensal do IPCA. Como a data se insere dentro do índice do data frame, e existe uma única coluna contendo os dados, o plot do Matplotlib reconhece automaticamente como devem ser utilizados os eixos, sendo apenas necessário especificar os dados na função.

O resultado é um gráfico de série temporal em que o eixo x são as datas ordenadas e o eixo y corresponde aos valores do IPCA mensal. A cada mês demonstra a variação desses valores.


plt.plot(ipca)
plt.style.use('default')

Continuando com o mesmo data frame, vemos agora um gráfico de Histograma, que demonstra a frequência de valores da nossa série. Quanto mais frequentes determinado valores, maior será a barra denotada pelo eixo y.  Vemos que os valores entre 0,25% e 0,50% são os mais recorrentes para o IPCA mensal. Como queremos apenas um vetor de dados para criar este gráfico, acessamos a coluna IPCA para que seja possível utilizar o gráfico.
O Matplotlib também possibilita realizar mudanças estéticas e textuais nas figuras. Vamos realizar algumas mudanças:

plt.hist(x = ipca['IPCA'],
         color = "darkblue",
         bins = 20)
plt.title("valores de jan de 2010 a jan de 2022")
plt.suptitle("Histograma da variação mensal do IPCA")
plt.style.use('ggplot')

Podemos ver uma relação entre duas variáveis a partir de um gráfico de dispersão. Vemos qual a relação entre o desemprego e o IPCA.

plt.scatter(x = data['desemprego'], y = data['IPCA'])
plt.title("Relação Desemprego x IPCA")
plt.style.use('classic')

Seaborn

Outra biblioteca muito utilizada para a construção de gráficos com o Python é o Seaborn, que é baseado no Matplotlib e provê uma interface mais elaborada para construir gráficos com enfoque estatístico.
O Seaborn possui como propósito a simplicidade de construir um gráfico com enfoque para análise de dados, sem dar a preocupação ao usuário de ficar se preocupando com detalhes visuais.
Iremos repetir os gráficos construídos anteriormente, porém, com o Seaborn.
Assim como o Matplotlib, o Seaborn possui uma função para cada gráfico, a diferença está nos argumentos e os elementos padrões.
Vemos como podemos criar um gráfico de série temporal da variação mensal do IPCA.
sns.set_theme()
sns.lineplot(data = ipca)

Com o Seaborn, podemos ver a melhora gráfico e de elemento para o Histograma.

sns.displot(data = ipca, x = 'IPCA', kde = True)

E também a facilidade criar gráficos de correlação com retas de regressão.

sns.regplot(data = data, x = 'desemprego', y = 'IPCA')

Quer aprender mais sobre Python?

Confira nossos cursos de Estatística com Python e Python para Economistas. Nestes cursos elencamos os principais pontos para conhecer o mundo do Python e a aplicação de problemas reais.

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais
e conteúdos exclusivos sobre Análise de Dados!

Assinar Gratuitamente