Olá Devs!
No artigo anterior, começamos de maneira efetiva o nosso aprendizado da biblioteca seaborn, para a criação de gráficos utilizando a linguagem Python, e tecnologias interativas como o Google Colab.
Mais especificamente, aprendemos a criar gráficos de barras e suas variações como o gráfico de colunas, barras agrupadas ou até mesmo empilhadas (stacked). Esses gráficos correspondem com certeza à maior parte da nossa necessidade em termos de gráficos, mas ainda temos outra categoria que é muito importante: os gráficos de Linhas e Áreas.
Gráficos de Linhas e Áreas
Os gráficos de Linhas e Áreas são utilizados quando precisamos representar a distribuição de métrica ao longo de um eixo de valores categóricos mas contínuos. O exemplo mais clássico é representar a distribuição de valores ao longo da dimensão do tempo. Mas também é possível utilizar qualquer outra dimensão numérica e contínua.
Então, estão preparados para mais uma dose de conhecimento?
Preparação
A primeira coisa que iremos fazer no nosso notebook é carregar todas as bibliotecas que iremos utilizar e também o nosso conjunto de dados.
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
pokemons = pd.read_csv('pokemons.csv')
Utilização Básica
A utilização básica aqui não é muito diferente do que fizemos para os gráficos de barra: temos uma função que deve poder gerar a visualização, através da passagem de alguns parâmetros básicos: fonte de dados, eixo X, Y, …
Neste caso, a função em questão é a lineplot()
. Vamos tentar?
sns.lineplot(pokemons, x='Generation', y='Spe')
plt.title('Variação de Velocidade de acordo com as Gerações')
plt.xlabel('Geração')
plt.ylabel('Velocidade')
plt.show()
Padronização é uma maravilha, não é mesmo? Pegamos o nosso código para gráficos de barras e trocamos a função e tudo funcionou! Podemos perceber, no entanto, que a nossa linha representando está envolta por um delimitador azulado. Para resolver isso, vamos dar uma analisada nos parâmetros específicos da função lineplot()
.
Por padrão, o gráfico de linhas também plota o que chamamos de error band, ou margem de erro. Se não for interessante, podemos eliminar essa error band.
sns.lineplot(pokemons, x='Generation', y='Spe', errorbar=None)
plt.title('Variação de Velocidade de acordo com as Gerações')
plt.xlabel('Geração')
plt.ylabel('Velocidade')
plt.show()
E, assim como no gráfico de barras, temos a necessidade de plotar mais de uma série no nosso gráfico de linhas. Como fazemos isso? É simples:
pokemons_sb = pokemons[['Generation','Spa','Spd']] # Primeiro selecionamos apenas as colunas que queremos trabalhar
tidy = pokemons_sb.melt(id_vars='Generation').rename(columns=str.title)
sns.lineplot(tidy, x='Generation', y='Value', hue='Variable', errorbar=None)
plt.title('Análise das Gerações')
plt.xlabel('Geração')
plt.ylabel('Atributos')
plt.show()
Basicamente, tivemos que fazer a mesma operação que fizemos para as múltiplas barras. E o resto do código já é bem conhecido.
O outro tipo de gráfico baseado em linhas é o popular gráfico de área. Mas somente conseguimos gerar esse gráfico utilizando a função stackplot()
do MatplotLib. Veja o exemplo abaixo:
pokemons_gb = pokemons.groupby(['Generation'])[['Spa', 'Spd']].mean().reset_index()
plt.stackplot(pokemons_gb['Generation'], pokemons_gb['Spa'], pokemons_gb['Spd'], labels=['Special Attack', 'Special Defense'])
plt.title('Análise das Gerações')
plt.xlabel('Geração')
plt.ylabel('Atributos')
plt.show()
E aí está o nosso gráfico de área! Mais uma vez, recorremos a matplotlib para concluir a plotagem.
Conclusão
Neste artigos, aprendemos a criar mais dois tipos de gráfico: linha e área, revisamos a utilização de pandas para transformar os dados e acrescentamos mais uma ferramenta no nosso cinto de utilidades.
Se você quiser aprender mais sobre gráficos de linha e área em seaborn, seguem alguns links: - Documentação oficial do Seaborn em português: A documentação oficial do Seaborn tem uma versão em português que fornece uma visão geral da biblioteca, exemplos de uso, informações sobre os diferentes tipos de gráficos, e muito mais - Gráficos de Linha em Seaborn
Um abraço e até a próxima,
Walter.
Top comments (0)