CodeGym /Cursos /Python SELF PT /Construção de histogramas para visualização da distribuiç...

Construção de histogramas para visualização da distribuição de dados

Python SELF PT
Nível 41 , Lição 3
Disponível

1. Fundamentos da construção de histogramas

Se você já olhou para uma mesa de buffet e tentou decidir qual tipo de lanche prevalece, você já entende um pouco sobre distribuição de dados. Na programação, usamos histogramas para identificar padrões nos dados que, à primeira vista, podem não ser óbvios. Histogramas ajudam a analisar visualmente como os dados estão distribuídos em certas categorias ou faixas numéricas. Bora começar!

O que é um histograma?

Histograma é um tipo de gráfico que ajuda a visualizar a distribuição de dados em certos intervalos ou "bins" (às vezes chamados de "baldes" ou "caixas"). Por exemplo, se quisermos saber quantas vezes os estudantes tiraram uma certa quantidade de pontos em um teste, o histograma será a melhor maneira de mostrar isso.

Parâmetros principais de um histograma

Histograma é composto de colunas (bins), onde cada coluna mostra quantos valores caem no intervalo correspondente. Os principais parâmetros do histograma são:

  • Bins (bins): quantidade de intervalos em que o intervalo de dados será dividido.
  • Cor e contorno (color e edgecolor): definem a aparência das colunas.
  • Intervalo (range): define os valores mínimo e máximo para exibição.
  • Densidade (density): se definido como True, o histograma será normalizado, de forma que a área total das colunas seja igual a um.

Usando a função hist() para construir histogramas

A biblioteca Matplotlib tem uma função incrível chamada hist(), que facilita a criação de histogramas. Vamos ver um exemplo simples:

Python

import matplotlib.pyplot as plt
import numpy as np

# Criamos um conjunto de dados
data = np.random.normal(0, 1, 1000)

# Criamos o histograma
plt.hist(data, bins=30, alpha=0.7, color='blue')
plt.title('Histograma da distribuição de dados')
plt.xlabel('Valores')
plt.ylabel('Frequência')
plt.show()

Aqui estamos gerando um conjunto de dados usando a função np.random.normal(), que cria uma distribuição normal. Dividimos os dados em 30 bins e configuramos a transparência das colunas usando o parâmetro alpha para uma melhor visualização.

2. Ajustando bins e aparência do gráfico

Definir quantidade e tamanho de bins

A quantidade e o tamanho dos bins podem influenciar muito a interpretação do histograma. Bins muito largos podem esconder detalhes importantes, enquanto bins muito pequenos podem deixar o histograma confuso e difícil de entender.

Exemplo prático:

Python

# Alterar a quantidade e o tamanho dos bins
plt.hist(data, bins=10, color='green', edgecolor='black')
plt.title('Histograma com 10 bins')
plt.xlabel('Valores')
plt.ylabel('Frequência')
plt.show()

plt.hist(data, bins=50, color='red', edgecolor='black')
plt.title('Histograma com 50 bins')
plt.xlabel('Valores')
plt.ylabel('Frequência')
plt.show()

Veja como a aparência do histograma muda quando usamos 10 e 50 bins. Percebe a diferença? Esse é o caso onde o tamanho faz toda a diferença!

Exemplos práticos de parametrize do histograma

Os histogramas podem ser ajustados não apenas pelo número de bins, mas também pela cor, transparência e até pelo estilo das colunas. Aqui estão mais alguns exemplos:

Python

# Outros parâmetros de ajuste
plt.hist(data, bins=30, density=True, color='purple', edgecolor='white', linestyle='dashed')
plt.title('Histograma de densidade com estilo alterado')
plt.xlabel('Valores')
plt.ylabel('Densidade')
plt.grid(True)
plt.show()

Neste exemplo, adicionamos o parâmetro density=True, que normaliza o histograma para que a área sob o gráfico seja igual a 1. Isso pode ser útil quando você quer analisar a densidade de probabilidade de uma distribuição.

3. Exemplos de uso de histogramas

Histogramas são amplamente usados em diferentes áreas — desde análise de dados financeiros até experimentos de física. Vamos ver como usar histogramas com um conjunto de dados real.

Construção de histograma com dados reais

Imagine que temos um conjunto de dados representando a temperatura média diária ao longo de um ano. Queremos analisar com que frequência a temperatura está dentro de um determinado intervalo.

Python

# Conjunto de dados de temperatura (simplificado para exemplo)
temperatures = [15, 16, 15, 14, 19, 22, 24, 25, 17, 18, 15, 16, 23, 24, 21, 19, 18, 20, 22, 25, 26, 27]

# Construção do histograma
plt.hist(temperatures, bins=5, color='navy', edgecolor='black')
plt.title('Histograma de temperaturas')
plt.xlabel('Temperatura (°C)')
plt.ylabel('Frequência')
plt.show()

Nesse exemplo, usamos 5 bins para descobrir como os valores estão distribuídos. O histograma mostra que a maioria das temperaturas está no intervalo de 15 a 20°C.

Comparação de distribuições em um único histograma

Às vezes é necessário comparar a distribuição de vários conjuntos de dados em um único histograma. No Matplotlib, é possível sobrepor vários histogramas usando o parâmetro alpha (transparência).

Exemplo 3: Comparação de distribuições

Python

import matplotlib.pyplot as plt

# Geração de dados
data1 = [5, 10, 10, 15, 15, 20, 25, 30, 30, 35, 40]
data2 = [5, 7, 9, 10, 11, 13, 15, 17, 19, 20, 25]

# Construção de histogramas sobrepostos
plt.hist(data1, bins=5, color="blue", alpha=0.5, label="Conjunto 1")
plt.hist(data2, bins=5, color="green", alpha=0.5, label="Conjunto 2")
plt.xlabel("Valor")
plt.ylabel("Frequência")
plt.title("Comparação de duas distribuições")
plt.legend()
plt.show()

Nesse exemplo, usamos o parâmetro alpha=0.5 para cada histograma, tornando as colunas semi-transparentes e permitindo comparar visualmente as interseções entre as distribuições.

Dicas úteis para trabalhar com histogramas

  • Escolha ótima do número de bins: Escolha o número de bins com base no volume e na natureza dos dados. Muito poucos ou muitos bins podem distorcer a distribuição.
  • Comparação de distribuições: Use transparência (alpha) para sobrepor vários histogramas e comparar distribuições.
  • Adicionar grade: Grade ajuda a interpretar melhor os dados. Ela pode ser adicionada com a função plt.grid(True).
  • Parâmetro density: Use density=True para exibir os dados como densidade de probabilidade, o que é especialmente útil ao comparar distribuições.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION