Gráfico de Barras do Seaborn: Um Guia Completo

A visualização de dados transforma informações complexas em insights claros e acionáveis. Os gráficos de barras do Seaborn se destacam na apresentação de dados categóricos por meio de gráficos estatísticos elegantes. A biblioteca combina a flexibilidade do Matplotlib com o poder do pandas, tornando-a ideal tanto para análises rápidas quanto para visualizações prontas para publicação.

Os gráficos de barras do Seaborn oferecem recursos essenciais para análise de dados – desde comparações básicas até representações estatísticas avançadas. Eles lidam com tarefas comuns como comparar métricas de vendas entre regiões, analisar respostas de pesquisas e visualizar resultados de experimentos.

A sintaxe intuitiva da biblioteca e suas funções estatísticas integradas a tornam valiosa tanto para iniciantes quanto para profissionais de dados experientes.

Neste artigo, vamos analisar os fundamentos do gráfico de barras do Seaborn, criar gráficos básicos com exemplos de código, aprimorar os gráficos por meio da personalização, implementar recursos avançados e explorar aplicações práticas.

Para saber mais sobre visualização de dados com Seaborn, confira nosso Introdução à Visualização de Dados com Seaborn curso.

Conceitos básicos de gráfico de barras do Seaborn

Antes de falarmos sobre gráficos de barras, vamos analisar alguns fundamentos do Seaborn, suas vantagens para gráficos de barras e como configurar o ambiente de codificação.

O que é Seaborn?

Seaborn é uma biblioteca de visualização de dados estatísticos em Python construída sobre o Matplotlib. Especializa-se em criar gráficos estatísticos informativos e atraentes com código mínimo. A biblioteca integra-se de perto com DataFrames do pandas, tornando-a particularmente eficaz para fluxos de trabalho de análise de dados.

Fornece uma interface de alto nível para desenhar gráficos atraentes, lidando automaticamente com muitos detalhes de estilo.

A biblioteca se destaca em três aspectos-chave:

  • Integra-se perfeitamente com DataFrames do pandas, tornando a manipulação de dados direta
  • Ele vem com funções estatísticas embutidas, eliminando a necessidade de cálculos separados
  • Ele aplica temas e paletas de cores com aparência profissional por padrão

Por exemplo, enquanto o Matplotlib requer várias linhas de código para criar uma visualização estatística básica, o Seaborn pode realizar a mesma tarefa com uma única chamada de função.

Para gráficos de barras especificamente, o Seaborn adiciona recursos poderosos como cálculo automático de média, intervalos de confiança e manipulação avançada de variáveis categóricas – capacidades que exigiriam código extra significativo no Matplotlib básico.

Por que usar gráficos de barras?

Os gráficos de barras apresentam dados categóricos por meio de barras verticais ou horizontais, onde o comprimento representa um valor numérico. Isso os torna ideais para comparar valores entre diferentes grupos ou categorias. Na análise de dados, os gráficos de barras ajudam a visualizar resultados de pesquisas, participações de mercado, métricas de desempenho e distribuições de vendas.

Principais vantagens incluem:

  • Comparação clara de quantidades entre categorias
  • Recursos estatísticos embutidos (média, mediana, intervalos de confiança)
  • Representação eficaz de dados agrupados
  • Elementos visuais simples, porém informativos
  • Opções de personalização fáceis para apresentações profissionais

Configuração rápida

Para começar a criar gráficos de barras com Seaborn, precisamos configurar nosso ambiente Python. Veja como começar:

Primeiro, vamos instalar os pacotes necessários conforme mostrado abaixo:

pip install seaborn pandas numpy

Agora temos todas as nossas ferramentas de visualização prontas para uso. Vamos importar as bibliotecas que precisamos, conforme mostrado abaixo:

# Para criar visualizações estatísticas import seaborn as sns # Para manipulação e análise de dados import pandas as pd # Para operações numéricas import numpy as np

Podemos melhorar a aparência de nossos gráficos com algumas configurações de estilo, conforme a seguir:

# Estilo clean white sns.set_style("white")

O estilo white remove linhas de grade e fará com que os gráficos fiquem bons na maioria das telas. Nas próximas seções, veremos como criar gráficos de barras e aprimorá-los.

Criando Gráficos de Barras Básicos com Seaborn

Um gráfico de barras é perfeito para visualizar relações entre variáveis categóricas e numéricas. Ele mostra estimativas pontuais (como média ou mediana) e a incerteza em torno dessas estimativas por meio de barras de erro. Vamos dar uma olhada na sintaxe básica do gráfico de barras do seaborn.

Sintaxe e parâmetros

O sns.barplot() função no Seaborn fornece uma maneira direta de criar gráficos de barras estatísticos. A estrutura básica da .barplot() função se parece com o mostrado abaixo:

sns.barplot( data=None, # Your DataFrame x=None, # Category variable y=None, # Numeric variable estimator='mean', # Statistical function to estimate errorbar=('ci', 95), # Error bars type and level orient=None # "v" for vertical, "h" for horizontal )

Esses parâmetros nos dão controle sobre quais dados exibimos e como os exibimos. O parâmetro data recebe seu DataFrame, enquanto x e y especificam quais colunas usar para as categorias e valores. O estimator permite escolher qual função estatística aplicar (média por padrão), e errorbar controla como a incerteza é exibida. Você também pode alternar entre orientações vertical e horizontal usando o parâmetro orient.

Agora, vamos ver como criar gráficos de barras eficazes usando o conjunto de dados de gorjetas integrado do Seaborn, que contém informações sobre contas e gorjetas de restaurantes.

Exemplo: Visualizando um conjunto de dados simples

Vamos analisar o comportamento de gorjetas em diferentes dias da semana usando o conjunto de dados de gorjetas. Este conjunto de dados contém informações sobre contas de restaurantes, incluindo o dia da semana, valor total da conta, valor da gorjeta e outras variáveis.

# Importar bibliotecas necessárias e carregar o conjunto de dados import seaborn as sns tips = sns.load_dataset("tips") # Criar um gráfico de barras básico mostrando a média das gorjetas por dia sns.barplot(data=tips, x="day", y="tip")

Saída:

Nosso código criou a visualização acima onde cada barra representa o valor médio da gorjeta para um dia diferente da semana. A altura de cada barra mostra o valor médio da gorjeta, enquanto as linhas pretas (barras de erro) indicam o intervalo de confiança de 95% – nos dando insights tanto sobre o valor típico da gorjeta quanto sobre o quanto ele varia.

Também podemos examinar os padrões de gorjetas em diferentes horários das refeições:

# Criar um gráfico de barras mostrando a média das gorjetas por horário do dia sns.barplot(data=tips, x="time", y="tip")

Saída:

Este gráfico revela a diferença no comportamento de gorjeta entre o serviço de almoço e jantar. A altura de cada barra representa o valor médio da gorjeta para aquele horário do dia, com barras de erro mostrando a variabilidade no comportamento de gorjeta. Esse tipo de visualização facilita a identificação de padrões e comparação de grupos em um piscar de olhos.

Esses gráficos de barras básicos fornecem uma base para visualizações mais complexas. Na próxima seção, veremos como aprimorar esses gráficos com cores, agrupamentos e outras customizações para criar visualizações mais informativas e visualmente atraentes.

Aprimorando Gráficos de Barras com Customizações

Adicionar melhorias visuais aos nossos gráficos de barras pode ajudar a tornar nossos dados mais envolventes e fáceis de entender. Vamos ver as diferentes maneiras de personalizar gráficos de barras usando o conjunto de dados de gorjetas.

Adicionando cores aos gráficos de barras

O Seaborn oferece várias maneiras de adicionar cor aos seus gráficos de barras, tornando-os mais visualmente atrativos e informativos. Podemos usar uma cor única para todas as barras ou criar grupos codificados por cores,

O parâmetro color define uma cor única para todas as barras, enquanto o palette permite que você especifique um esquema de cores quando seus dados possuem vários grupos. O Seaborn vem com muitas paletas de cores integradas que funcionam bem para diferentes tipos de dados.

Possuímos criar um gráfico de barras simples com uma única cor usando o parâmetro color conforme mostrado abaixo:

# Carregue o conjunto de dados tips se ainda não o tiver feito import seaborn as sns tips = sns.load_dataset("tips") # Gráfico de barras de cor única sns.barplot(data=tips, x="day", y="tip", color="skyblue")

Resultado:

Possuímos criar um gráfico de barras com várias cores usando o parâmetro de paleta conforme mostrado abaixo:

# Carregue o conjunto de dados tips se ainda não o tiver feito import seaborn as sns tips = sns.load_dataset("tips") # Usando uma paleta de cores diferente sns.barplot(data=tips, x="day", y="tip", palette="Set2")

Resultado:

Gráfico de barras Seaborn com várias colunas

Uma das características mais poderosas dos gráficos de barras Seaborn é a capacidade de mostrar relações entre múltiplas variáveis usando o parâmetro hue. Isso cria barras agrupadas que facilitam comparações.

Vamos comparar as dicas em ambos os dias e horários das refeições usando o parâmetro hue conforme mostrado abaixo:

# Carregue o conjunto de dados de dicas se ainda não o fez import seaborn as sns tips = sns.load_dataset("tips") # Crie um gráfico de barras agrupadas mostrando as dicas por dia e horário sns.barplot( data=tips, x="day", y="tip", hue="time" )

Saída:

O gráfico acima mostra duas barras – uma para o almoço e outra para o jantar. Esse agrupamento nos ajuda a ver não apenas como as dicas variam por dia, mas também como elas diferem entre os horários das refeições.

Criando um gráfico de barras empilhadas do seaborn

Gráficos de barras empilhadas são excelentes para mostrar a composição de diferentes categorias. Embora o Seaborn não tenha uma função direta para gráficos de barras empilhadas, podemos combiná-lo com o matplotlib para criar visualizações empilhadas eficazes.

Este método aproveita a funcionalidade estatística do Seaborn enquanto utiliza as capacidades de empilhamento do matplotlib. Por exemplo, no conjunto de dados de dicas, vamos ver como as dicas estão distribuídas entre fumantes e não fumantes em diferentes dias.

Vamos começar importando as bibliotecas necessárias para nossa visualização:

# Importar bibliotecas necessárias import seaborn as sns import matplotlib.pyplot as plt import numpy as np

Agora vamos carregar nosso conjunto de dados contendo informações de dicas de restaurante:

# Carregar o conjunto de dados de dicas tips = sns.load_dataset("tips")

Vamos criar uma figura com dimensões apropriadas para nossa visualização:

# Criar figura e eixo plt.figure(figsize=(10, 4))

Em seguida, vamos calcular as gorjetas médias para fumantes e não fumantes em diferentes dias:

# Calcular valores para empilhamento # Filtrar fumantes, agrupar por dia e obter gorjetas médias smoker_means = tips[tips['smoker']=='Yes'].groupby('day')['tip'].mean() # Filtrar não fumantes, agrupar por dia e obter gorjetas médias non_smoker_means = tips[tips['smoker']=='No'].groupby('day')['tip'].mean()

Em seguida, vamos configurar os parâmetros básicos para nossas barras empilhadas conforme mostrado abaixo:

# Plotar as barras empilhadas usando matplotlib days = smoker_means.index width = 0.8

Agora, vamos criar a camada inferior de nossas barras empilhadas para não fumantes:

# Criar barras inferiores (não fumantes) plt.bar(days, non_smoker_means, width, label='Non-smoker', color=sns.color_palette()[0])

Vamos adicionar a camada superior para as gorjetas dos fumantes:

# Criar barras superiores (fumantes) plt.bar(days, smoker_means, width, bottom=non_smoker_means, label='Smoker', color=sns.color_palette()[1])

Vamos definir um estilo limpo sem linhas de grade usando o estilo do Seaborn:

# Adicionar estilo do Seaborn sns.set_style("white")

Por fim, vamos exibir nosso gráfico de barras empilhadas concluído:

# Mostrar o gráfico plt.show()

Saída:

O gráfico resultante mostra as gorjetas médias dos fumantes empilhadas sobre as gorjetas dos não fumantes para cada dia, facilitando a comparação tanto das gorjetas totais quanto da contribuição de cada grupo.

Essa solução alternativa nos permite:

  • Manter o estilo visual atraente do Seaborn
  • Empilhar nossas barras para mostrar composição
  • Manter a natureza estatística de nossa visualização
  • Usar paletas de cores do Seaborn para consistência

Recursos e Dicas Avançadas

Agora que cobrimos o básico e personalizações, vamos ver alguns recursos avançados que podem tornar nossos gráficos de barras mais informativos e profissionais. Continuaremos usando o conjunto de dados de dicas para demonstrar essas técnicas avançadas.

Adicionando anotações aos gráficos de barras

Adicionar rótulos de valores às barras pode tornar suas visualizações mais precisas e informativas. Vamos criar um gráfico de barras que mostre os valores exatos das gorjetas acima de cada barra.

Primeiro, vamos importar nossas bibliotecas e preparar nossos dados:

# Importar bibliotecas necessárias import seaborn as sns import matplotlib.pyplot as plt # Carregar e preparar o conjunto de dados de dicas tips = sns.load_dataset("tips")

Criar nosso gráfico de barras com valores estatísticos:

# Criar o gráfico de barras básico ax = sns.barplot(data=tips, x="day", y="tip”, errorbar=None) # Create barplot and store the axes object for annotations

Em seguida, vamos adicionar rótulos de valores no topo de cada barra, como mostrado abaixo:

# Obter a altura de cada barra bars = ax.containers[0] # Get the bar container object heights = [bar.get_height() for bar in bars] # Extract height of each bar # Adicionar anotações de texto no topo de cada barra for bar, height in zip(bars, heights): # Loop through bars and heights together ax.text( bar.get_x() + bar.get_width()/2., # X position (center of bar) height, # Y position (top of bar) f'${height:.2f}', # Text (format as currency) ha='center', # Horizontal alignment va='bottom' # Vertical alignment )

Saída:

Gerenciando eixos e escalas

Ao criar gráficos de barras, ajustar os eixos ajuda a tornar seus dados mais legíveis e impactantes. Vamos ver como personalizar os limites dos eixos, rótulos e marcas de escala usando as funções do Seaborn.

Primeiro, vamos importar nossa biblioteca e carregar o conjunto de dados que precisamos para nossa visualização:

# Importar bibliotecas necessárias import seaborn as sns # Carregar e preparar o conjunto de dados de dicas tips = sns.load_dataset("tips")

Podemos criar um gráfico de barras com rótulos personalizados e a ordem dos dias. O parâmetro order nos permite especificar exatamente como queremos que nossos dias sejam organizados no eixo x:

# Criar gráfico de barras com rótulos dos eixos ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', ‘Fri', 'Sun'] # Set custom order for days )

Para tornar nosso gráfico mais informativo, podemos adicionar rótulos descritivos para ambos os eixos usando o método set:

# Definir rótulos descritivos dos eixos ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' )

Para ajustar nossa visualização, podemos definir limites e marcas de ticks específicos. O parâmetro ylim controla a faixa do eixo y, enquanto xticks e yticks nos permitem definir exatamente onde queremos que nossas marcas de ticks apareçam:

# Personalizar limites e ticks dos eixos ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )

Para incorporar todas essas alterações no gráfico, precisamos executá-las de uma vez e não uma por uma. O código completo é mostrado abaixo:

# Importar bibliotecas necessárias import seaborn as sns # Carregar e preparar o conjunto de dados de dicas tips = sns.load_dataset("tips") # Criar gráfico de barras com rótulos dos eixos ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', 'Fri', 'Sun'] # Set custom order for days ) # Definir rótulos descritivos dos eixos ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' ) # Personalizar limites e marcações dos eixos ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )

Saída:

O gráfico resultante mostra as dicas por dia com rótulos claros, escalas apropriadas e marcações de tick bem organizadas, facilitando a leitura e interpretação dos dados.

Incorporando barras de erro

As barras de erro ajudam a visualizar a incerteza ou variabilidade em seus dados. Seaborn oferece várias opções para adicionar barras de erro aos seus gráficos de barras, incluindo intervalos de confiança e desvio padrão.

Primeiro, vamos importar nossa biblioteca e carregar o conjunto de dados necessário para nossa visualização:

# Importar bibliotecas necessárias import seaborn as sns # Carregar e preparar o conjunto de dados tips tips = sns.load_dataset("tips")

Por padrão, o Seaborn mostra intervalos de confiança de 95%. Podemos modificar isso usando o parâmetro ‘errorbar’ para mostrar diferentes tipos de estimativas estatísticas:

# Criar gráfico de barras com intervalos de confiança ax = sns.barplot( data=tips, x="day", y="tip", errorbar="ci", # Show confidence interval capsize=0.1 # Add small caps to error bars )

Resultado:

Também podemos mostrar o desvio padrão em vez de intervalos de confiança, o que ajuda a visualizar a dispersão de nossos dados:

# Mudar para desvio padrão ax = sns.barplot( data=tips, x="day", y="tip", errorbar="sd", # Show standard deviation capsize=0.1 # Add small caps to error bars )

Resultado:

Às vezes, podemos querer remover completamente as barras de erro para obter uma aparência mais limpa:

# Criar gráfico de barras sem barras de erro ax = sns.barplot( data=tips, x="day", y="tip", errorbar=None # Remove error bars )

Saída:

Os gráficos resultantes mostram como diferentes tipos de barras de erro podem nos ajudar a entender a variabilidade em nossos dados de gorjeta em diferentes dias da semana.

Aplicações práticas dos gráficos de barras do Seaborn

Gráficos de barras são ferramentas versáteis na visualização de dados, particularmente úteis quando você precisa comparar valores em diferentes categorias ou analisar várias variáveis simultaneamente. Vamos ver duas aplicações comuns onde os gráficos de barras do Seaborn se destacam.

Os gráficos de barras do Seaborn são excelentes para revelar padrões em dados categóricos, especialmente ao analisar métricas em diferentes grupos. Ao mostrar tanto a tendência central quanto a incerteza, os gráficos de barras ajudam a identificar diferenças significativas entre categorias.

Isso os torna ideais para analisar o comportamento do cliente, o desempenho do produto ou respostas de pesquisas onde é necessário comparar valores entre grupos distintos.

Comparando múltiplas variáveis

Quando nossa análise envolve vários fatores, os gráficos de barras do Seaborn podem destacar relações complexas em nossos dados. Usar recursos como agrupamento (hue) ou empilhamento ajuda a comparar diferentes variáveis simultaneamente, facilitando a identificação de padrões e interações entre diferentes aspectos de nossos dados.

Conclusão

Os gráficos de barras do Seaborn encontram o equilíbrio certo entre simplicidade e insight estatístico. A sintaxe intuitiva da biblioteca combinada com recursos estatísticos robustos a tornam uma ferramenta essencial para visualização de dados. Desde comparações básicas de categorias até visualizações avançadas agrupadas, os gráficos de barras ajudam a descobrir e comunicar padrões de dados de forma eficaz.

Pronto para aprimorar suas habilidades de visualização de dados? Aqui está o que explorar a seguir:

Quer levar suas habilidades do Seaborn para o próximo nível? Matricule-se no Curso de Visualização de Dados Intermediário com Seaborn.

Source:
https://www.datacamp.com/tutorial/seaborn-barplot