Histogramas são gráficos fundamentais na análise de dados, permitindo que você visualize padrões, tendências e características importantes dos seus dados de forma intuitiva. Mesmo que você seja um iniciante em programação, este tutorial foi pensado para guiá-lo passo a passo.
Neste tutorial, você aprenderá como criar histogramas com Python utilizando as bibliotecas Matplotlib, Seaborn e Plotly, as três ferramentas mais populares para visualização de dados.
Antes de começar, você precisará ter:
- Python instalado no seu computador (versão 3.7 ou superior);
- Um editor de código ou IDE (como VS Code, PyCharm, Jupyter Notebook ou até mesmo o IDLE que vem com o Python);
- Conhecimentos básicos de Python (variáveis, listas e funções simples já são suficientes).
O que é um histograma?
Um histograma é um tipo de gráfico que permite visualizar a distribuição de um conjunto de dados numéricos. Ele é construído agrupando os valores em “caçapas” ou intervalos (os chamados bins) e, em seguida, contando quantos valores caem em cada intervalo. As contagens são representadas por barras, e a altura de cada barra indica a frequência dos dados dentro do intervalo.
Os histogramas são uma ferramenta para visualizar a distribuição de dados numéricos e são amplamente utilizados em estatísticas, análise de dados e ciência de dados.
Diferença entre histograma e gráfico de barras
É comum confundir histogramas com gráficos de barras, mas há diferenças importantes:
- Histograma: usado para dados numéricos contínuos (como altura, peso, temperatura). As barras ficam grudadas umas nas outras porque representam intervalos contínuos.
- Gráfico de barras: usado para dados categóricos (como categorias de produtos, cidades, cores). As barras ficam separadas porque representam categorias distintas.
Interpretando histogramas
Interpretar um histograma é relativamente simples. Aqui estão alguns pontos para se prestar atenção:
1. Picos: os picos em um histograma indicam onde os dados são mais frequentes. Um pico alto significa que muitos valores se concentram naquela faixa;
2. Simetria: um histograma simétrico sugere que os dados estão distribuídos uniformemente em torno de um valor central. Isso é típico de distribuições normais (a famosa “curva do sino”);
3. Assimetria: se o histograma estiver inclinado para a esquerda ou direita, isso indica assimetria nos dados, o que pode sugerir a presença de outliers ou uma tendência nos dados. Assimetria à direita (cauda longa à direita) indica valores extremos altos; assimetria à esquerda indica valores extremos baixos;
4. Largura dos bins: a largura dos bins pode afetar a aparência do histograma. Bins mais estreitos podem revelar mais detalhes sobre a distribuição dos dados, enquanto bins mais largos podem simplificar a visualização. Escolher o número adequado de bins é uma arte: poucos bins ocultam detalhes, muitos bins criam ruído visual.
Veja estes elementos no histograma abaixo (que ilustra as notas de uma prova qualquer):
O pico no valor 7 do histograma indica que esta nota foi a mais frequente da turma. O histograma parece ser simétrico, com muitos alunos tirando notas 6 e 7, e poucos alunos nas notas mais baixas ou mais altas. Note ainda que, graças à estrutura do histograma, valores próximos acabam agrupados em um mesmo bin: alunos que tiraram nota 6,9 ou 7,2 ambos ficam posicionados no bin de valor 7.
Histogramas são úteis em diversas situações:
- Análise de vendas: identificar faixas de valores de vendas mais comuns;
- Controle de qualidade: verificar se medidas de produtos estão dentro de especificações;
- Análise demográfica: estudar distribuição de idades, rendas ou outras variáveis populacionais;
- Ciência: analisar resultados de experimentos, medições e observações.
Criando histogramas com Python e Matplotlib
Python, com a ajuda da biblioteca Matplotlib, torna a criação de histogramas um processo bastante simples. Se você ainda não tem o Matplotlib instalado, você pode instalá-lo usando o pip (o gerenciador de arquivos de Python):
pip install matplotlib
Este comando deve ser executado no terminal (ou prompt de comando). Se você estiver usando o Jupyter Notebook, pode executá-lo em uma célula precedendo com um ponto de exclamação: !pip install matplotlib.
Em seguida, importe a biblioteca em seu script Python:
import matplotlib.pyplot as plt
Preparando os dados com NumPy
Para este exemplo, vamos criar um conjunto de dados aleatórios usando a biblioteca NumPy. O NumPy é uma biblioteca fundamental para computação científica em Python, facilitando operações com arrays e matrizes:
import numpy as np
# Gerando dados aleatórios
dados = np.random.randn(1000)O que esse código faz:
- import numpy as np: importa a biblioteca NumPy com o apelido np;
- np.random.randn(1000): gera 1000 números aleatórios seguindo uma distribuição normal (média 0 e desvio padrão 1);
- Os dados ficam armazenados na variável dados, pronta para ser visualizada.
Se você ainda não tem o NumPy instalado, execute: pip install numpy
Criando o histograma
Agora, com os dados prontos, podemos criar o histograma:
plt.hist(dados, bins=30, alpha=0.5, color='blue', edgecolor='black')
# Exibindo o gráfico
plt.show()Eis o resultado (o seu gráfico pode ficar diferente, em função do componente aleatório do NumPy):

Neste código, bins=30 define o número de intervalos que queremos em nosso histograma. A partir desse valor, o Matplotlib define automaticamente os pontos de corte de cada bin no nosso histograma. O parâmetro alpha controla a transparência das barras, e color e edgecolor definem as cores das barras e das bordas, respectivamente.
Passo 4: personalizando o histograma
Você pode personalizar ainda mais o histograma ajustando os bins, as cores e adicionando mais elementos ao gráfico, como linhas de grade, rótulos nos eixos e título na figura:
# Ajustando os bins para 50
plt.hist(dados, bins=50, alpha=0.7, color='green', edgecolor='black')
# Adicionando grade ao fundo do gráfico
plt.grid(True)
# Escrevendo rótulos dos eixos
plt.xlabel('Valores')
plt.ylabel('Frequência')
# Escrevendo título na figura
plt.title('Histograma Personalizado')
# Exibindo o gráfico
plt.show()
Importando as bibliotecas necessárias
Para começar, você precisará instalar e importar as bibliotecas Matplotlib e Seaborn. Se ainda não as tem instaladas, você pode fazer isso usando o pip:
pip install matplotlib seaborn
Agora, vamos importar as bibliotecas:
import matplotlib.pyplot as plt
import seaborn as sns
Criando um histograma simples com Matplotlib
Vamos começar com um exemplo simples usando a biblioteca Matplotlib.
import numpy as np
# Gerando dados aleatórios
dados = np.random.randn(1000)
# Criando o histograma
plt.hist(dados, bins=30, alpha=0.5, color='blue')
plt.title('Histograma de Dados Aleatórios')
plt.xlabel('Valores')
plt.ylabel('Frequência')
# Exibindo o gráfico
plt.show()
Criando um histograma com Seaborn
Seaborn é uma biblioteca de visualização de dados baseada no Matplotlib que oferece uma interface de alto nível para desenhar gráficos estatísticos atraentes.
# Gerando dados aleatórios
dados = np.random.randn(1000)
# Criando o histograma com Seaborn
sns.histplot(dados, bins=30, kde=False, color='green')
plt.title('Histograma de Dados Aleatórios com Seaborn')
plt.xlabel('Valores')
plt.ylabel('Frequência')
# Exibindo o gráfico
plt.show()
Seaborn: a biblioteca de visualização de dados em Python
Como Customizar um Histograma com Python e Seaborn
Criando um histograma com Plotly em Python
Plotly é uma biblioteca gráfica interativa que suporta mais de 40 tipos de gráficos, incluindo histogramas, gráficos de dispersão, gráficos de linhas e muito mais. Com Plotly, você pode criar gráficos que são visualmente atraentes e podem ser facilmente compartilhados na web.
Explorando Histogramas 2D em Python com Plotly
Criando histogramas com dados categóricos
Para começar, vamos criar um histograma simples com dados categóricos. Suponha que temos um conjunto de dados de vendas e queremos visualizar a frequência de vendas por categoria de produto.
import plotly.graph_objects as go
import numpy as np
# Dados categóricos de exemplo
categorias = ['Eletrônicos', 'Roupas', 'Brinquedos', 'Alimentos']
vendas = [150, 200, 100, 80]
# Criando o histograma
fig = go.Figure([go.Bar(x=categorias, y=vendas)])
fig.update_layout(title='Vendas por Categoria', xaxis_title='Categoria', yaxis_title='Vendas')
fig.show()
Histogramas com dados de datas
Histogramas também são úteis para visualizar dados ao longo do tempo. Vamos criar um histograma que mostra a quantidade de vendas por dia.
import pandas as pd
import plotly.express as px
# Dados de exemplo com datas
df_vendas = pd.DataFrame({
'Data': pd.date_range(start='1/1/2021', periods=100),
'Vendas': np.random.randint(0, 100, size=(100))
})
# Criando o histograma
fig = px.histogram(df_vendas, x='Data', y='Vendas', nbins=30)
fig.update_layout(title='Vendas por Dia', xaxis_title='Data', yaxis_title='Quantidade de Vendas')
fig.show()
Escolhendo a quantidade de caixas
A quantidade de caixas (bins) em um histograma pode alterar significativamente a interpretação dos dados. Plotly permite que você ajuste facilmente o número de caixas.
# Ajustando o número de caixas
fig = px.histogram(df_vendas, x='Data', y='Vendas', nbins=15)
fig.show()
Criando vários histogramas para diferentes valores de uma coluna
Podemos querer comparar as distribuições de vendas entre diferentes regiões. Para isso, podemos criar vários histogramas em um único gráfico.
# Dados de exemplo com regiões
df_vendas['Região'] = np.random.choice(['Norte', 'Sul', 'Leste', 'Oeste'], size=(100))
# Criando histogramas separados por região
fig = px.histogram(df_vendas, x='Vendas', color='Região')
fig.show()
Agregando com método Histfunc
O método histfunc permite agregar os dados de diferentes maneiras, como somar ou calcular a média dos valores.
# Agregando as vendas por soma
fig = px.histogram(df_vendas, x='Região', y='Vendas', histfunc='sum')
fig.show()
Inserindo textos e personalizando histogramas
Plotly oferece amplas opções de personalização, incluindo a adição de textos e a alteração de cores e estilos.
# Personalizando o histograma
fig = px.histogram(df_vendas, x='Região', y='Vendas', text_auto=True)
fig.update_traces(marker_color='blue', marker_line_color='black', marker_line_width=1.5)
fig.update_layout(title_font_size=20)
fig.show()
Com esses passos, você pode criar histogramas para qualquer tipo de dados e personalizá-los de acordo com suas necessidades. Experimente com seu próprio conjunto de dados e descubra os insights que os histogramas podem revelar!
Personalizando seu histograma
Você pode querer personalizar seu histograma para melhorar a visualização ou destacar informações específicas.
Alterando o número de Bins
Você pode alterar o número de “bins” para ajustar o nível de detalhe do seu histograma:
sns.histplot(dados, bins=50, kde=False, color='red')
Adicionando uma estimativa de densidade por Kernel (KDE)
A estimativa de densidade por kernel (KDE) é uma maneira de estimar a função de densidade de probabilidade dos dados. Com Seaborn, é fácil adicionar um KDE ao seu histograma:
sns.histplot(dados, bins=30, kde=True, color='purple')Dê o próximo passo!
Com este tutorial, você aprendeu a criar histogramas em Python utilizando as bibliotecas Matplotlib e Seaborn. Com esse conhecimento, agora é possível explorar seus dados de forma visual e obter insights valiosos sobre suas distribuições. Experimente personalizar os gráficos com diferentes configurações para adaptá-los às suas necessidades analíticas e tornar suas visualizações ainda mais impactantes.
E, se você quiser ir além, aprofundando-se em técnicas avançadas de análise e visualização, a nossa Trilha de Análise e Visualização de Dados é o próximo passo ideal.
Aprenda a analisar dados como os profissionais mais disputados do mercado: em poucas semanas, saia do zero e domine análise e visualização de dados na prática. Crie gráficos envolventes e interativos e programe em Python, mesmo que nunca tenha programado.
Você vai desenvolver:
- Análises exploratórias sólidas;
- Visualização de dados realmente úteis;
- Comunicação clara de insights;
- Autonomia para resolver desafios de dados.
Comece suas análises aqui em um clique:
Trilha Análise e Visualização de Dados
Manipule dados e construa visualizações interativas com as ferramentas mais utilizadas por analistas de dados do mundo.
Comece agora
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários
30xp