DEV Community

Cover image for Parte 06 - Linhas e Áreas
Walter R P Cortes
Walter R P Cortes

Posted on • Originally published at blog.wvcode.com.br on

Parte 06 - Linhas e Áreas

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.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Retry later