A visualização de dados é uma técnica que permite aos cientistas de dados converter dados brutos em gráficos e gráficos que geram percepções valiosas. Os gráficos reduzem a complexidade dos dados e facilitam o entendimento para qualquer usuário.
Existem muitas ferramentas para realizar a visualização de dados, como Tableau, Power BI, ChartBlocks e mais, que são ferramentas sem código. Eles são ferramentas muito poderosas e têm seu público. No entanto, ao trabalhar com dados brutos que requerem transformação e um bom playground para os dados, o Python é uma excelente escolha.
Embora mais complicado porque requer conhecimento de programação, Python permite que você execute qualquer manipulação, transformação e visualização de seus dados. É ideal para cientistas de dados.
Existem muitos motivos pelos quais Python é a melhor escolha para ciência de dados, mas um dos mais importantes é seu ecossistema de bibliotecas. Muitas bibliotecas excelentes estão disponíveis para Python trabalhar com dados como numpy
, pandas
, matplotlib
, tensorflow
.
Matplotlib
é provavelmente a biblioteca de plotagem mais reconhecida que existe, disponível para Python e outras linguagens de programação como R
. É seu nível de personalização e operabilidade que o definiu em primeiro lugar. No entanto, algumas ações ou personalizações podem ser difíceis de lidar ao usá-lo.
Os desenvolvedores criaram uma nova biblioteca baseada em matplotlib chamada seaborn
. Seaborn
é tão poderoso quanto matplotlib
ao mesmo tempo, fornece uma abstração para simplificar plotagens e trazer alguns recursos exclusivos.
Neste artigo, vamos nos concentrar em como trabalhar com a Seaborn para criar os melhores gráficos da classe. Se quiser acompanhar você pode criar seu próprio projeto ou simplesmente dar uma olhada no meu projeto de guia marítimo no GitHub.
O que é Seaborn?
Seaborn é uma biblioteca para fazer gráficos estatísticos em Python. Ele se baseia em matplotlib e se integra estreitamente com estruturas de dados do pandas .
O design Seaborn permite que você explore e entenda seus dados rapidamente. Seaborn funciona capturando frames inteiros de dados ou arrays contendo todos os seus dados e realizando todas as funções internas necessárias para mapeamento semântico e agregação estatística para converter dados em gráficos informativos.
Ele abstrai a complexidade enquanto permite que você projete seus gráficos de acordo com seus requisitos.
[Ler:[Read:Conheça as 4 expansões usando dados para salvar o planeta]
Instalando Seaborn
Instalando seaborn
é tão fácil quanto instalar uma biblioteca usando seu gerenciador de pacotes Python favorito. Ao instalar seaborn
, a biblioteca instalará suas dependências, incluindo matplotlib
, pandas
, numpy
e scipy
.
Vamos então instalar o Seaborn e, claro, também o pacote caderno para ter acesso ao nosso parque de dados.
pipenv install seaborn notebook
Além disso, vamos importar alguns módulos antes de começar.
import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib
Construindo seus primeiros lotes
Antes de começarmos a plotar qualquer coisa, precisamos de dados. A beleza de seaborn
é que funciona diretamente com pandas
dataframes, tornando-o super conveniente. Ainda mais, a biblioteca vem com alguns conjuntos de dados integrados que agora você pode carregar do código, sem a necessidade de baixar arquivos manualmente.
Vamos ver como isso funciona carregando um conjunto de dados que contém informações sobre voos.
Gráfico de dispersão
Um gráfico de dispersão é um diagrama que exibe pontos com base em duas dimensões do conjunto de dados. Criar um gráfico de dispersão na biblioteca Seaborn é tão simples e com apenas uma linha de código.
sns.scatterplot(data=flights_data, x="year", y="passengers")
Muito fácil, certo? A função scatterplot
espera o conjunto de dados que queremos plotar e as colunas que representam o x
e y
eixo.
Gráfico de linha
Este gráfico desenha uma linha que representa a revolução de dados contínuos ou categóricos. É um tipo de gráfico popular e conhecido e muito fácil de produzir. Da mesma forma que antes, usamos a função lineplot
com o conjunto de dados e as colunas que representam o x
e y
eixo. Seaborn
fará o resto.
sns.lineplot(data=flights_data, x="year", y="passengers")
Bar Plot
É provavelmente o tipo de gráfico mais conhecido e, como você deve ter previsto, podemos traçar esse tipo de gráfico com seaborn
da mesma forma que fazemos para linhas e gráficos de dispersão usando a função barplot
.
sns.barplot(data=flights_data, x="year", y="passengers")
É muito colorido, eu sei, aprenderemos a personalizá-lo mais tarde no guia.
Extensão com matplotlib
Seaborn constrói em cima de matplotlib
, estendendo sua funcionalidade e abstraindo a complexidade. Com isso dito, ele não limita suas capacidades. Qualquer seaborn
gráfico pode ser personalizado usando funções do matplotlib
biblioteca. Pode ser útil para operações específicas e permite que os marítimos aproveitem o poder do matplotlib
sem ter que reescrever todas as suas funções.
Digamos que você, por exemplo, queira plotar vários gráficos simultaneamente usando seaborn
; então você poderia usar o subplot
função de matplotlib
.
diamonds_data = sns.load_dataset('diamonds')
plt.subplot(1, 2, 1)
sns.countplot(x='carat', data=diamonds_data)
plt.subplot(1, 2, 2)
sns.countplot(x='depth', data=diamonds_data)
Usando o subplot
função, podemos desenhar mais de um gráfico em um único gráfico. A função tem três parâmetros, o primeiro é o número de linhas, o segundo é o número de colunas e o último é o número do gráfico.
Estamos renderizando um seaborn
gráfico em cada subtrama, misturando matplotlib
com seaborn
funções.
Seaborn adora pandas
Já falamos sobre isso, mas seaborn
O amor é pandas
a tal ponto que todas as suas funções são construídas em cima do pandas
quadro de dados. Até agora, vimos exemplos de como usar seaborn
com dados pré-carregados, mas e se quisermos desenhar um gráfico de dados que já carregamos usando pandas
?
drinks_df = pd.read_csv("data/drinks.csv")
sns.barplot(x="country", y="beer_servings", data=drinks_df)
Fazendo lindas plotagens com estilos
O Seaborn oferece a capacidade de alterar a interface de seus gráficos e oferece cinco estilos diferentes prontos para uso: darkgrid, Whitegrid, Sombrio, brancoe carrapatos.
sns.set_style("darkgrid")
sns.lineplot(data = data, x = "year", y = "passengers")
Aqui está outro exemplo
sns.set_style("whitegrid")
sns.lineplot(data=flights_data, x="year", y="passengers")
Casos de uso legais
Nós sabemos o básico de seaborn
, agora vamos colocá-los em prática criando vários gráficos sobre o mesmo conjunto de dados. No nosso caso, usaremos as “dicas” do conjunto de dados que você pode baixar diretamente usando seaborn
.
Primeiro, carregue o conjunto de dados.
I like to print the first few rows of the data set to get a feeling of the columns and the data itself. Usually, I use some pandas
functions to fix some data issues like null
values and add information to the data set that may be helpful. You can read more about this on the guide to working with pandas .
Vamos criar uma coluna adicional para o conjunto de dados com a porcentagem que representa o valor da gorjeta sobre o total da conta.

A seguir, podemos começar a traçar alguns gráficos.
Compreender as percentagens de gorjeta
Vamos tentar primeiro entender a distribuição da porcentagem de gorjeta. Para isso, podemos usar histplot
que irá gerar um gráfico de histograma.
sns.histplot(tips_df["tip_percentage"], binwidth=0.05)
Isso é bom, tivemos que personalizar o binwidth
para torná-lo mais legível, mas agora podemos avaliar rapidamente nossa compreensão dos dados. A maioria dos clientes daria uma gorjeta entre 15 e 20% e temos alguns casos extremos em que a gorjeta é superior a 70%. Esses valores são anomalias e sempre vale a pena explorá-los para determinar se os valores são erros ou não.
Também seria interessante saber se a porcentagem da gorjeta muda dependendo do momento do dia,
sns.histplot(data=tips_df, x="tip_percentage", binwidth=0.05, hue="time")
Desta vez, carregamos o gráfico com o conjunto de dados completo em vez de apenas uma coluna e, em seguida, definimos a propriedade hue
para a coluna time
. Isso forçará o gráfico a usar cores diferentes para cada valor de time
e adicione uma legenda a ele.
Total de dicas por dia da semana
Outra métrica interessante é saber quanto dinheiro em gorjetas o pessoal pode esperar dependendo do dia da semana.
sns.barplot(data=tips_df, x="day", y="tip", estimator=np.sum)
Parece que sexta-feira é um bom dia para ficar em casa.
Impacto do tamanho da mesa e dia na ponta
Às vezes, queremos entender como as variáveis funcionam juntas para determinar a saída. Por exemplo, como o dia da semana e o tamanho da mesa afetam a porcentagem da gorjeta?
Para desenhar o próximo gráfico, vamos combinar o pivot
função dos pandas para pré-processar as informações e, em seguida, desenhar um gráfico de mapa de calor.
pivot = tips_df.pivot_table(
index=["day"],
columns=["size"],
values="tip_percentage",
aggfunc=np.average)
sns.heatmap(pivot)
Conclusão
Claro, podemos fazer muito mais com seaborn
, e você pode aprender mais casos de uso visitando o documentação oficial. Espero que você tenha gostado deste artigo tanto quanto eu gostei de escrevê-lo.
este artigo foi publicado originalmente em Transmissão de código ao vivo de Juan Cruz Martinez (Twitter: @bajcmartinez), fundador e editor do Live Code Stream, empresário, desenvolvedor, autor, palestrante e realizador.
Transmissão de código ao vivo também está disponível como um boletim informativo semanal gratuito. Inscreva-se para receber atualizações sobre tudo relacionado a programação, IA e ciência da computação em geral.
Fonte: thenextweb.com