Tamanho de fonte
Alto contraste
Altura de linha
Entrar Cadastrar

Como Criar Histogramas com Python

Avatar de Ana Maria Gomes Ana Maria Gomes
12 minutos de leitura 08/03/2024 • Atualizado 12 dias atrás 5xp

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()

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.

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
Imagem de um notebook

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
Inicie agora

Comentários

30xp
Comentar
Faça parte da discussão Crie sua conta gratuita e compartilhe
sua opinião nos comentários
Entre para a Asimov