Data Science

Data Viz – Como melhorar seu histograma com Seaborn

Melhorando Histograma no Seaborn

Inscreva-se

Se inscreva no Space Data para ter acesso ao conteúdo exclusivo para membros

Histogramas são gráficos bastante utilizados em análises para visualizar a distribuição de dados. Acontece que as configurações padrões das bibliotecas trazem histogramas básicos, bastante simples e nada atraentes. Neste artigo, vamos plotar um histograma utilizando a biblioteca seaborn e utilizar métodos para torná-lo visualmente mais bonito.

Se você não conhece este tipo de gráfico ou quer entender mais sobre o histograma e sua funcão, confira este artigo aqui: O que é um histograma

Dataset utilizado neste artigo

Para exemplificar, vamos utilizar um dataset sobre os índices de felicidade dos países em 2019 (pesquisa divulgada em 2020).

Você pode visualizar os dados aqui

Importacão das bibliotecas

#importação das bibliotecas

import pandas as pd
import seaborn as sns

import matplotlib
import matplotlib.pyplot as plt

Importação do dataset

Precisamos importar o dataset. Clique aqui para acessar o arquivo

Vou armazenar os dados na variável url e então utilizar o método da biblioteca Pandas para tranformá-lo em um DataFrame:

#importacao do dataset

url = ‘https://raw.githubusercontent.com/daianeklein/Space-Data/main/happiness_dataset.csv’

df = pd.read_csv(url)

Confira também: Quatro formas de visualizar seu DataFrame utilizando a biblioteca Pandas

Clique aqui e acesse o artigo

@Author: Dai

Vamos visualizar o dataset rapidamente:

Neste artigo, vamos utilizar a variável ‘Freedom to make life choices”

Plotando o histograma

Este plot está com as configurações default da biblioteca Seaborn. Note que só informamos o dataset e o eixo x.

 

 

Melhorando o histograma

Antes de começar a deixar nosso histograma bonitão, vamos dar uma olhada na documentação e entender quais são os parâmetros que esse gráfico possui.

Documentação

seaborn.histplot(data=None, *, x=None, y=None, hue=None, weights=None, stat='count', bins='auto', binwidth=None, binrange=None, discrete=None, cumulative=False, common_bins=True, common_norm=True, multiple='layer', element='bars', fill=True, shrink=1, kde=False, kde_kws=None, line_kws=None, thresh=0, pthresh=None, pmax=None, cbar=False, cbar_ax=None, cbar_kws=None, palette=None, hue_order=None, hue_norm=None, color=None, log_scale=None, legend=True, ax=None, **kwargs)

Bins

Traduzindo do inglês, bins são as “caixas”, ou seja, cada uma destas barras no nosso histograma.

Vamos alterá-lo para 20, colocando o parâmetro bins = 20..

Cor

Vamos alterar a cor do nosso histograma.

Para isso, vamos utilizar as opcoes do Matplotlib. A lista completa, você pode conferir aqui:

Neste exemplo, vou utilizar a cor ‘steal’:


Não está grande coisa, eu sei. Vamos mudar a cara dele logo então:

Parâmetros element

O parâmetro ‘element’ muda, basicamente, a forma das barras. Você pode escolher:

  • Bars
  • Step
  • Poly


Vamos utilizar o formato ‘step’:

Removendo a borda do gráfico

Para remover esta borda preta, vamos utilizar o parâmetro “despine”

Para remover todas as bordas, vamos utilizar os parâmetros bottom e left = True:

Configurando os eixo X e Y

Como falamos acima, estamos utilizando os dados da variável “Freedom to make life choices” neste histograma.

Sabemos que os valores estão distribuídos no eixo X. Neste exemplo, não vamos utilizar o eixo Y (lembre-se sempre de analisar se este eixo é importante para o leitor ou não, muitas vezes ele é essencial para interpretação do gráfico).

Removendo o eixo Y

Para remover a esca do eixo Y, vamos utilizar o tick_params. 

Ele vem do biblioteca matplotlib, portanto, vamos chamá-lo:

plt.tick_params(axis =’y’, labelsize=0, length = 0) 

y = eixo Y

labelsize = tamanho do rótulo

length = Tamanho dos pontos (são aqueles pequenos pontos no eixo Y)

Removendo o “nome” do eixo Y

Retiramos os valores do eixo Y, mas como remover esse “Count”?

Vamos lá.

Também do Matplotlib, vamos configurar o ylabel, passando uma lista vazia e alterando o tamanho da fonte para 0.

Obs: Alterar o tamanho da fonte é importante, pois caso contrário, ficará dois colchetes no seu eixo ( assim: [] )

Configurando o eixo X:

Vamos alterar o título do eixo X e também alterar a cor e tamanho da escala.

Alterando a escala

Assim como fizemos com o eixo Y, também vamos utilizar o tick_params para configurar o eixo X:

Alterando e configurando o título do eixo

Para melhorar o eixo X, vamos

  • Alterar o título para portugues 
  • Mudar a cor (color)
  • Alterar o tamanho (fontsize)
  • Deixá-lo um pouco mais distante da escala (labelpad)

Estamos quase finalizando!

Agora só falta aumentar um pouco esse histograma e claro, colocar um título nele.

Alterando o tamanho:

Vamos utilizar o método: plt.figure(figsize=(8,6)), onde 8 e 6 é o tamanho do gráfico. Sinta-se à vontade para alterar estes números como ficar melhor em seu projeto.

E para inserir o título e configurá-lo também, vamos utilizar o plt.title, sendo:

pad = Distanciar o texto do gráfico

fontsize = Tamanho do título

color  = Cor do título

fontweight = O tipo da fonte do título, neste caso, selecionado negrito

Ficou muito mais bonito, não é mesmo?

Agora, só para finalizar, vamos tirar esse texto em cima do nosso histograma:

É bastante simples. No final de todos esses códigos, coloque ax = ax

Resultado final

Antes
Depois