Skip to content

Pandas Plotar Histograma: Criar e Personalizar Histogramas em Python

A visualização de dados é um aspecto crucial da análise de dados, e a biblioteca Pandas do Python é uma ferramenta poderosa que nos permite criar visualizações explicativas. Uma dessas visualizações é um histograma, uma representação gráfica da distribuição de um conjunto de dados. Neste artigo, vamos explorar como traçar um histograma usando o pandas, personalizar bins, traçar várias colunas e muito mais. Também abordaremos algumas perguntas frequentes e forneceremos exemplos para ajudá-lo a entender melhor o processo.

Histogramas são particularmente úteis ao lidar com conjuntos de dados grandes, pois podem fornecer um resumo visual dos dados. Eles podem nos ajudar a entender a distribuição de frequência subjacente de um conjunto de dados contínuos ou discretos. Isso pode ser especialmente útil ao lidar com dados como grupos etários, onde entender a distribuição pode fornecer insights valiosos.

Quer criar rapidamente Visualização de Dados a partir do Dataframe do Python Pandas sem escrever código?

PyGWalker é uma biblioteca Python para Análise Exploratória de Dados com Visualização. PyGWalker (opens in a new tab) pode simplificar sua análise de dados e fluxo de trabalho de visualização de dados no Jupyter Notebook, transformando seu dataframe do pandas (e dataframe do polars) em uma Interface de Usuário no estilo Tableau para exploração visual.

PyGWalker para Visualização de Dados (opens in a new tab)

Criando um Histograma no Pandas

Criar um histograma no pandas é simples graças à função hist(). Essa função fornece uma maneira rápida de visualizar a distribuição de dados em um DataFrame ou Series do pandas. Aqui está um exemplo básico de como criar um histograma:

import pandas as pd
import matplotlib.pyplot as plt
 
# Criar um dataframe simples
data = {'valores': [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]}
df = pd.DataFrame(data)
 
# Traçar um histograma
df['valores'].hist()
plt.show()

Neste exemplo, primeiro importamos as bibliotecas necessárias, pandas e matplotlib. Em seguida, criamos um DataFrame simples do pandas e usamos a função hist() para traçar um histograma da coluna 'valores'. A função plt.show() é usada para exibir o gráfico.

Personalizando Bins em um Histograma do Pandas

A função hist() no pandas usa um número padrão de bins, que é 10. No entanto, você pode personalizar o número de bins conforme suas necessidades. O parâmetro bins na função hist() é usado para especificar o número de bins desejado em seu histograma.

Por exemplo, se você quiser aumentar o número de bins para 20, pode fazer da seguinte maneira:

df['valores'].hist(bins=20)
plt.show()

Personalizar os bins em um histograma do pandas pode ajudá-lo a obter uma visão mais detalhada da distribuição dos dados. No entanto, é importante escolher um número adequado de bins. Muitos bins podem resultar em um excesso de ajuste, onde o histograma representa os dados muito de perto e pode perder a "imagem geral". Por outro lado, poucos bins podem simplificar demais os dados, dificultando a identificação de padrões úteis.

Traçando um Histograma com Múltiplas Colunas no Pandas

O pandas também permite traçar um histograma com várias colunas. Isso pode ser especialmente útil quando você deseja comparar a distribuição de duas variáveis diferentes. Para traçar um histograma com várias colunas, basta passar as colunas para a função hist().

Aqui está um exemplo de como traçar um histograma com várias colunas:

# Criar um dataframe com duas colunas
data = {'valores1': [1, 2, 2, 3, 3, 3, 4, 4, 4, 4],
        'valores2': [1, 1, 2, 2, 3, 3, 3, 4, 4, 4]}
df = pd.DataFrame(data)
 
# Traçar um histograma com várias colunas
df.hist(bins=20, alpha=0.5)
plt.show()

Neste exemplo, criamos um DataFrame com duas colunas, 'valores1' e 'valores2'. Em seguida, chamamos a função hist() no DataFrame, que traça um histograma para cada coluna. O parâmetro alpha é usado para definir a transparência dos histogramas, o que facilita a comparação entre eles.

Traçando um Histograma por Grupo no Pandas

Outra funcionalidade poderosa do pandas é a capacidade de traçar um histograma por grupo. Isso pode ser especialmente útil quando você deseja comparar a distribuição de uma variável em diferentes grupos.

Por exemplo, digamos que temos um DataFrame que contém as idades de pessoas em diferentes profissões. Podemos traçar um histograma das idades por profissão da seguinte forma:

# Criar um dataframe com idade e profissão
data = {'idade': [23, 25, 22, 30, 32, 40, 35, 24, 28, 35],
        'profissao': ['engenheiro', 'médico', 'engenheiro', 'médico', 'engenheiro', 'médico', 'engenheiro', 'médico', 'engenheiro', 'médico']}
df = pd.DataFrame(data)
 
# Traçar um histograma por grupo
df.groupby('profissao')['idade'].hist(alpha=0.6)
plt.legend(['Engenheiro', 'Médico'])
plt.show()

Neste exemplo, primeiro criamos um DataFrame com as colunas 'idade' e 'profissao'. Em seguida, agrupamos o DataFrame por 'profissao' e chamamos a função hist() na coluna 'idade'. Isso resulta em um histograma das idades para cada profissão. O parâmetro alpha é usado para definir a transparência dos histogramas, e a função legend() é usada para adicionar uma legenda ao gráfico.

Traçando um Histograma Normalizado no Pandas

Às vezes, é útil traçar um histograma normalizado para representar a distribuição de dados como proporções em vez de contagens. Isso pode ser feito no pandas definindo o parâmetro density como True na função hist().

Aqui está um exemplo de como traçar um histograma normalizado:

# Traçar um histograma normalizado
df['valores1'].hist(density=True)
plt.show()
 

Neste exemplo, o argumento density=True garante que a área sob o histograma some 1, dando-nos efetivamente uma função de densidade de probabilidade.

Criando Subplots com Histogramas do Pandas

O Pandas também permite criar subplots ao plotar histogramas. Isso pode ser particularmente útil quando você deseja comparar as distribuições de várias variáveis lado a lado. Para criar subplots, você pode usar o argumento subplots=True na função hist().

Aqui está um exemplo:

# Criar subplots
df.hist(bins=20, alpha=0.5, subplots=True, layout=(1,2))
plt.show()

Neste exemplo, criamos dois subplots em uma única linha para as colunas 'values1' e 'values2'. O parâmetro layout é usado para especificar o arranjo dos subplots.

Adicionando Barras de Erro a um Histograma do Pandas

Adicionar barras de erro a um histograma pode fornecer uma representação visual da variabilidade ou incerteza nos dados. Embora o Pandas não suporte diretamente a adição de barras de erro a histogramas, isso pode ser realizado usando a biblioteca matplotlib.

Aqui está um exemplo:

import numpy as np
 
# Calcular a média e o desvio padrão
media = df['values1'].mean()
desvio = df['values1'].std()
 
# Plotar histograma com barras de erro
plt.hist(df['values1'], bins=20, alpha=0.5)
plt.errorbar(media, 5, xerr=desvio, fmt='o')
plt.show()

Neste exemplo, primeiro calculamos a média e o desvio padrão da coluna 'values1'. Em seguida, plotamos o histograma e adicionamos uma barra de erro na posição da média. A função errorbar() do matplotlib é usada para adicionar a barra de erro.

Conclusão

Histogramas são uma ferramenta poderosa para visualização de dados e a biblioteca pandas em Python fornece uma função versátil para criar e personalizar histogramas. Seja plotando um histograma simples, personalizando os bins, plotando várias colunas ou criando subplots, o pandas tem tudo o que você precisa. Lembre-se, a chave para uma visualização efetiva de dados é não apenas criar gráficos esclarecedores, mas também personalizá-los para atender às suas necessidades específicas.

FAQs

  1. Como posso personalizar os ticks do eixo x em um histograma do pandas? Você pode personalizar os ticks do eixo x usando a função xticks() da biblioteca matplotlib. Por exemplo, plt.xticks(range(0, 10)) irá definir os ticks do eixo x para variar de 0 a 10.

  2. Como posso plotar um histograma com densidade no pandas? Você pode plotar um histograma com densidade definindo o parâmetro density como True na função hist(). Isso irá plotar um histograma normalizado onde a área sob o histograma somará 1.

  3. Como posso adicionar uma legenda ao meu histograma do pandas? Você pode adicionar uma legenda ao seu histograma do pandas usando a função legend() da biblioteca matplotlib. Por exemplo, plt.legend(['Coluna1', 'Coluna2']) irá adicionar uma legenda com 'Coluna1' e 'Coluna2'.