Quer saber como criar um gráfico de waffle no Python e deixar seus projetos muito mais impactantes?
Talvez o nome não seja familiar, mas com certeza você já viu vários exemplos de waffle charts em sites, revistas e jornais; pois eles não apenas transmitem informações claramente, mas são visualmente mais impactantes que gráficos de barras ou pizza.
A figura acima mostra como a biblioteca pywaffle
foi usada para mostrar pictorialmente o resultado das eleições dos EUA em 2016.
Pode reparar que os grandes meios de comunicação preferem esse tipo de visualização, pois nem todo mundo está acostumado a interpretar gráficos de linhas ou barras.
Aprenda, neste post, como plotar esse tipo de gráfico e incluí-lo no seu arsenal de visualização de dados.
Também gravei um vídeo no meu canal do YouTube e disponibilizei todo o código no meu Github. Para acompanhar o Jupyter notebook, é só clicar no botão abaixo 🙂
Usando pywaffle
para criar gráficos de waffle
Infelizmente, gráficos de waffle não vêm junto com a biblioteca matplotlib
. A melhor alternativa que eu conheço é o pacote pywaffle
, uma vez que ele se integra perfeitamente ao matplotlib
.
Bem documentada e com vários exemplos de aplicação, em poucas linhas de código você já consegue plotar seu primeiro gráfico.
Ah, sim, verifique antes se você a tem instalada no seu ambiente. Caso contrário, basta instalar usando:
- Conda –
conda install pywaffle
- Pip –
pip install pywaffle
Vamos supor que uma pesquisa muito séria da Folha de São Paulo tenha identificado que 33% dos brasileiros falam “bolacha”, 48% falam “biscoito” e uma minoria de 19% fala “salgadinho”.
No lugar de plotar um manjado gráfico de pizza, olha como ficaria usando o gráfico de waffle.
# importar as bibliotecas necessárias
import matplotlib.pyplot as plt
from pywaffle import Waffle
# exemplo de Waffle
fig = plt.figure(
FigureClass=Waffle,
rows=4,
columns=10,
values={'Bolacha': 33,
'Biscoito': 48,
'Salgadinho': 19},
legend={'loc': 'upper left',
'bbox_to_anchor': (1.1, 1)}
)
fig.set_tight_layout(False)
plt.show()
Customizando seus gráficos de waffle
O pywaffle
é altamente customizado e aceita os ícones da Font Awesome. Vamos ver como customizar os ícones da biblioteca para representar as estatísticas de ocorrências e acidentes com aviões no Brasil.
Para isso, vou importar a base de dados do Centro de Prevenção e Investigação de Acidentes Aeronáuticos.
# importar o pandas
import pandas as pd
# importar dados do CENIPA
df = pd.read_csv("https://raw.githubusercontent.com/carlosfab/curso_data_science_na_pratica/master/modulo_02/ocorrencias_aviacao.csv")
# extrair value counts da variavel ocorrencia_classificacao
data = df.ocorrencia_classificacao.value_counts().to_dict()
# plotar gráfico de waffle
fig = plt.figure(
FigureClass=Waffle,
rows=5,
columns=15,
colors=("#232066", "#983D3D", "#DCB732"),
values=data, icons='plane', icon_size=12,
legend={'loc': 'upper left', 'bbox_to_anchor': (1,1)},
icon_legend=True
)
fig.set_tight_layout(False)
plt.show();
Na figura acima, eu selecionei o ícone plane
, que é apenas um entre inúmeros outros disponíveis.
Em outro exemplo, suponha que você quer representar por waffle chart a quantidade de homens e mulheres que estão matriculados em um determinado curso de inglês. Repare que eu vou usar o ícone child
.
# plotar homens e mulheres na sala de aula
fig = plt.figure(
FigureClass=Waffle,
rows=8,
values={'Homens': 48, 'Mulheres': 66},
colors=("#232066", "#983D3D"),
legend={'loc': 'upper left', 'bbox_to_anchor': (1, 1)},
icons='child', icon_size=12,
icon_legend=True
)
fig.set_tight_layout(False)
plt.show();
Fugindo dos gráficos tradicionais
Visualização de dados é uma das minhas partes preferidas em projetos de Data Science. Apesar de muita gente achar que basta aprender comandos para plotar diferentes tipos de gráficos, a visualização de dados é algo que vai bem além disso.
Visualizar dados significa:
- Fornecer técnicas que contribuam para a Análise Exploratória de Dados;
- Comunicar os dados de maneira clara para outras pessoas;
- Apoiar diferentes tipos de stakeholders com diferentes níveis de conhecimento;
- Compartilhar a representação dos dados sem bias (viés).
Quando você apresenta um relatório, uma consultoria ou um projeto de Data Science, está comunicando resultados para – na maioria das vezes – pessoas não-técnicas ou que não sabem programar.
Uma das habilidades que diferencia os cientistas de dados entre seus pares é a capacidade de transmitir essa informação de maneira clara e objetiva, até mesmo usando técnicas de storytelling.
Aprender gráficos visualmente mais impactantes e fugir daqueles normais é algo que vai te ajudar muito. Inclua gráficos de waffle no seu arsenal desde já 😉