Data Visualization

Dominando Histogramas Matplotlib: Controle Preciso de Caixas

Spread the love

A função hist() do Matplotlib oferece ferramentas poderosas para visualizar distribuições de dados. No entanto, sua classificação automática de bins padrão pode às vezes obscurecer detalhes cruciais ou levar a interpretações incorretas. O controle preciso do tamanho do bin é essencial para criar visualizações precisas e perspicazes. Este artigo explora dois métodos eficazes para alcançar isso.

Sumário

Especificando as Bordas dos Bins Diretamente

A abordagem mais direta para controlar o tamanho do bin é definir explicitamente as bordas do bin usando o parâmetro bins na função hist(). Isso fornece controle completo sobre os limites de cada bin.


import matplotlib.pyplot as plt
import numpy as np

# Dados de amostra
data = np.random.randn(1000)

# Definir bordas de bin (por exemplo, bins de largura 0,5 de -4 a 4)
bin_edges = np.arange(-4, 4.1, 0.5)  

# Criar o histograma
plt.hist(data, bins=bin_edges)
plt.xlabel("Valor")
plt.ylabel("Frequência")
plt.title("Histograma com Bordas de Bin Explicitamente Definidas")
plt.show()

Este código gera um histograma com bins de largura 0,5 variando de -4 a 4. A matriz bin_edges define precisamente os limites de cada bin. O último valor em bin_edges define o limite superior do bin final. Pontos de dados fora dessa faixa serão excluídos. Ajuste bin_edges conforme necessário para abranger seus dados e a largura de bin desejada.

Calculando Bins a partir da Largura Desejada

Alternativamente, se você souber a largura do bin desejada, mas não as bordas exatas, calcule o número de bins necessários com base na faixa de seus dados e na largura desejada. O Matplotlib então determinará automaticamente as bordas do bin apropriadas.


import matplotlib.pyplot as plt
import numpy as np

# Dados de amostra
data = np.random.randn(1000)

# Largura do bin desejada
bin_width = 0.5

# Calcular o número de bins
data_min = np.min(data)
data_max = np.max(data)
num_bins = int((data_max - data_min) / bin_width)

# Criar o histograma
plt.hist(data, bins=num_bins)
plt.xlabel("Valor")
plt.ylabel("Frequência")
plt.title("Histograma com Número de Bins Calculado")
plt.show()

# Para um controle mais preciso, calcule explicitamente as bordas do bin:
bin_edges = np.linspace(data_min, data_max, num_bins + 1) # Use linspace para espaçamento uniforme
plt.hist(data, bins=bin_edges)
plt.xlabel("Valor")
plt.ylabel("Frequência")
plt.title("Histograma com Bordas de Bin Precisamente Calculadas")
plt.show()

Este código primeiro calcula num_bins. O Matplotlib então usa isso para ajustar automaticamente as bordas do bin, garantindo que todos os pontos de dados sejam incluídos. A segunda parte demonstra como calcular bin_edges para um controle mais preciso. Observe que o Matplotlib pode ajustar ligeiramente essas bordas.

Empregando qualquer um desses métodos, você pode controlar precisamente a classificação de bins em seus histogramas do Matplotlib, resultando em visualizações de dados mais claras e informativas. Escolha o método mais adequado às suas necessidades e ao nível de controle desejado.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *