Pular para o conteúdo principal

Como criar um histograma com Plotly

Aprenda a implementar histogramas em Python usando a biblioteca de visualização de dados Plotly.
Atualizado 17 de set. de 2026  · 12 min lido

Explorar com IA

ChatGPTClaudePerplexity

Histogramas são representações gráficas populares de pontos de dados organizados em faixas específicas. Eles aparecem com frequência em estatística para mostrar a quantidade de um determinado tipo de variável que ocorre dentro de um certo intervalo. Por exemplo, seu antigo professor de matemática pode ter usado um histograma para visualizar o número de notas obtidas por todas as pessoas da sua turma. 

Histograma exibindo a distribuição de notas

Figura 1: Exemplo de histograma mostrando a distribuição de notas de uma turma. 

[Fonte: Exemplo de histograma com Matplotlib] 

Suas barras de alturas variadas lembram os gráficos de barras, mas histogramas servem para visualizar dados quantitativos, e não dados categóricos – que são o foco dos gráficos de barras. 

Em geral, os dados numéricos visualizados em histogramas são contínuos, ou seja, possuem infinitos valores possíveis. Tentar plotar todos os valores de variáveis contínuas costuma ser impraticável. Os histogramas resolvem isso agrupando diversos pontos de dados em faixas lógicas (os chamados bins) e permitindo sua visualização. 

Neste tutorial, vamos ver como implementar histogramas em Python usando a biblioteca de visualização de dados Plotly. Também vamos abordar diferentes formas de personalizar seu histograma no Plotly e por que a visualização de dados é importante desde o começo. 

Confira este workbook do DataLab para acompanhar o código do tutorial. 

A importância da visualização de dados na análise

Nenhuma empresa pode dizer que não se beneficia de entender melhor seus dados. O papel da análise de dados é ajudar negócios a otimizar sua performance e melhorar seus resultados; essa disciplina se estende a todas as áreas onde existem dados, já que gerar insights costuma ser uma vantagem competitiva.   

As visualizações de dados são as representações gráficas que analistas usam para comunicar informação e dados. Seu objetivo é resumir os dados em um formato de fácil compreensão, destacando os aprendizados essenciais para quem lê. 

Em outras palavras, empresas usam visualizações para identificar rapidamente tendências que, sem apoio visual, seriam difíceis de notar. Representações gráficas facilitam a comunicação de informações de forma universal, rápida e eficaz. 

Introdução ao Plotly

Plotly é uma biblioteca interativa e open source de visualização de dados para Python e R, escrita em JavaScript. Neste artigo, vamos focar no Plotly para Python, às vezes chamado de “plotly.py”, para diferenciá-lo da versão em JavaScript. 

Dica: Faça os cursos Introduction to data visualization with Plotly in Python ou Interactive data visualization with Plotly in R para pegar o jeito do Plotly.   

Muitos usuários do Plotly comentam que foram inicialmente “cativados” pela estética moderna que a biblioteca permite implementar com facilidade. O Plotly para Python possibilita criar visualizações web bonitas e interativas que podem ser: 

  • exibidas em notebooks Jupyter, 
  • salvas como arquivos HTML independentes, 
  • servidas como parte de aplicações web feitas só em Python usando Dash.

Outro atrativo do Plotly é a grande variedade de tipos de gráficos disponíveis. A biblioteca oferece mais de 40 gráficos, cobrindo casos de uso em estatística, finanças, geografia, ciência e gráficos 3D. 

Também é fácil exportar visualizações criadas com Plotly graças à integração com o Kaleido – ferramenta de exportação de imagens. Há ainda amplo suporte para contextos fora da web, incluindo editores de desktop (como Spyder, PyCharm etc.) e publicação de documentos estáticos (por exemplo, exportar notebooks Jupyter para PDF). 

Instalar o plotly.py é bem simples; você pode usar o pip: 

pip install plotly>=5.11.0, <5.12.0

Ou o Conda: 

conda install -c plotly plotly>=5.11.0, <5.12.0

Observação: É recomendado instalar bibliotecas em um ambiente virtual para manter as dependências de cada projeto separadas. Você também pode começar com um workbook do DataLab - um IDE de Ciência de Dados em Python e R na nuvem. 

Usando o DataLab

O DataLab é um ambiente de desenvolvimento integrado (IDE) online que permite escrever código, analisar dados de forma individual ou colaborativa e compartilhar insights. Em outras palavras, pense no DataLab como um Google Docs pensado para ciência de dados; saiba mais no nosso artigo Using DataLab in the Classroom.

Para esta tarefa, precisamos criar um workbook a partir de um conjunto de dados. Felizmente, a DataCamp oferece um acervo rico e em crescimento de datasets interessantes para analisar. Ao criar um workbook a partir de um dataset, o ambiente já traz todos os dados pré-configurados e uma breve descrição, para você colocar a mão na massa desde o início.   

Os passos para criar um workbook usando um dataset da DataCamp são: 

  • No app do DataLab, selecione "Datasets" na barra lateral.
  • Escolha um dataset do seu interesse. Uma janela será exibida com uma prévia do dataset selecionado, incluindo dicionário de dados e link para a fonte, a possível escolha de linguagem (Python ou R) e um panorama de publicações que outros usuários criaram com esse dataset.
  • Selecione Create workbook.

criar um DataCamp Workspace

Figura 2: GIF mostrando como criar um workbook a partir de um dataset.

Observação: Veja o Creating a Plotly Histogram with Olympics Data para acompanhar o código.

Vamos usar o dataset Olympics Data, do acervo interno da DataCamp. Segundo a descrição, é um conjunto histórico dos Jogos Olímpicos modernos, de Atenas 1896 ao Rio 2016. Cada linha corresponde a um atleta (271.116 instâncias) competindo em um evento olímpico e qual medalha conquistou (se houver).

As colunas são as seguintes: 

Coluna

Descrição

id

Número único para cada atleta

name

Nome do atleta

sex

M ou F

age

Idade do atleta

height

Em centímetros

weight

Em quilogramas

team

Nome da equipe

noc

Código de 3 letras do Comitê Olímpico Nacional

games

Ano e temporada

year

Inteiro

season

Summer ou Winter

city

Cidade-sede

sport

Esporte

event

Evento

medal

Gold, Silver, Bronze ou NA

Pelo que vimos, as colunas adequadas para montar um histograma são: age, height, weight e year. Isso porque histogramas são construídos com valores numéricos contínuos – eles representam a distribuição de dados numéricos, em que os dados são agrupados em bins e a contagem de cada bin é exibida. 

Vamos usar a coluna age para criar nosso histograma. 

Criando um histograma no Plotly

Criar um histograma em Python com Plotly é bem simples. Podemos usar o Plotly Express, que é uma interface de alto nível e fácil de usar…

import plotly.express as px

# Create a histogram
fig = px.histogram(olympic_data.age, x="age",
                  title="Distribution of Athletes age")
fig.show()

Histograma criado com Plotly ExpressFigura 3: Histograma criado com Plotly Express

Também podemos usar Graph Objects.

import plotly.graph_objects as go

fig = go.Figure(data=[go.Histogram(x=olympic_data.age)])

# add the title
fig.update_layout(title=dict(text="Distribution of Athletes age"))
fig.show()

histograma criado com Plotly Graph ObjectsFigura 4: Histograma criado com Plotly Graph Objects. 

As funções do Plotly express chamam internamente graph_objects, que retorna uma figura. Por isso, as funções do Plotly Express são úteis: elas permitem desenhar visualizações que, usando graph_objects diretamente, exigiriam mais linhas de código. 

“O módulo plotly.express (geralmente importado como px) contém funções que podem criar figuras completas de uma vez e é chamado de Plotly Express ou PX. O Plotly Express faz parte da biblioteca Plotly e é o ponto de partida recomendado para criar a maioria das figuras comuns. Toda função do Plotly Express usa graph objects internamente e retorna uma instância de plotly.graph_objects.Figure.”

Fonte: Plotly Express in Python

Apesar do Plotly express ser a porta de entrada recomendada, vamos usar graph_objects para personalizar a aparência do nosso histograma, pois ele oferece mais flexibilidade.  

Personalizando a aparência do histograma no Plotly

No momento, nosso histograma está bem sem graça. Vamos deixá-lo mais atraente mudando as fontes do título e adicionando rótulos aos eixos. 

# Create histogram
fig = go.Figure(data=[go.Histogram(x=olympic_data.age)])

fig.update_layout(
    # Set the global font
    font = {
        "family":"Times new Roman",
        "size":16
    },
    # Update title font
    title = {
        "text": "Distribution of Athletes age",
        "y": 0.9, # Sets the y position with respect to `yref`
        "x": 0.5, # Sets the x position of title with respect to `xref`
        "xanchor":"center", # Sets the title's horizontal alignment with respect to its x position
        "yanchor": "top", # Sets the title's vertical alignment with respect to its y position. "      
        "font": { # Only configures font for title
            "family":"Arial",
            "size":20,
            "color": "red"
        }
    }
)

# Add X and Y labels
fig.update_xaxes(title_text="Age")
fig.update_yaxes(title_text="Number of Athletes")

# Display plot
fig.show()

Histograma do Plotly com título atualizadoFigura 5: Histograma do Plotly com título atualizado e rótulos nos eixos. 

Com esses ajustes, o histograma ficou mais informativo. 

Agora, vamos alterar o tamanho de cada bin. 

# Create histogram
fig = go.Figure(data = [
    go.Histogram(
        x = olympic_data.age,
        xbins=go.histogram.XBins(size=5) # Change the bin size to 5
    )
  ]
)

Histograma do Plotly com bin de tamanho 5Figura 6: Histograma do Plotly com bin de tamanho 5. 

No código acima, definimos o parâmetro xbins na instância go.Histogram como uma instância de go.histogram.XBins e passamos o tamanho desejado como parâmetro. Observe que poderíamos ter feito o mesmo usando um objeto dict com propriedades compatíveis. 

Por fim, vamos mudar a cor dos bins para laranja para dar mais destaque à visualização. 

# Create histogram
fig = go.Figure(data = [
    go.Histogram(
        x = olympic_data.age,
        xbins=go.histogram.XBins(size=5), # Change the bin size
        marker=go.histogram.Marker(color="orange") # Change the color
    )
  ]
)

Histograma do Plotly com bins laranjaFigura 7: Histograma do Plotly com bins laranja.

Bem melhor. 

No código acima, definimos o parâmetro marker na instância go.Histogram como uma instância de go.histogram.Marker e especificamos a cor desejada como parâmetro. 

Ainda há diversas outras personalizações que podemos fazer no nosso histograma do Plotly, como adicionar texto ao passar o mouse (hover). 

Habilitando hover text

Atualmente, ao passar o mouse sobre uma barra no histograma, é exibido um texto com o que ela representa – veja a Figura 8. 

hover text atual

Figura 8: O hover text exibido atualmente ao passar o mouse sobre o histograma. 

Isso não é muito intuitivo. Em visualização de dados, queremos que os gráficos sejam autoexplicativos – inclusive no hover. Então vamos atualizar a informação exibida quando passamos o mouse sobre um bin. 

# Create histogram
fig = go.Figure(data = [
    go.Histogram(
        x = olympic_data.age,
        xbins=go.histogram.XBins(size=5), # Change the bin size
        marker=go.histogram.Marker(color="orange"), # Change the color
        hovertemplate="<br>".join([
            "Age Range: %{x}",
            "Number of Athletes: %{y}"]) # Make hover text more informative
    )
  ]
)

hover text atualizadoFigura 9: Informações de hover atualizadas. 

O texto exibido ao passar o mouse ficou bem mais informativo, facilitando a interpretação da visualização. Fizemos isso atualizando o parâmetro hovertemplate na nossa instância go.Histogram

Adicionando opções de filtro

No início do tutorial, dissemos que poderíamos construir um histograma com as variáveis age, height, weight e year. Não precisamos criar um histograma separado para cada uma. 

Em vez disso, podemos construir um único histograma e adicionar botões de filtro para alternar qual variável será exibida na visualização. 

Veja como fica no código.

"""
Starter code provided by vestland on StackOverflow
Link: https://bit.ly/3ipqOMo
"""
# continuous features
continuous_vars = ["age", "height", "weight", "year"]

# plotly
fig = go.Figure()

# set up ONE trace
fig.add_trace(
    go.Histogram(x = olympic_data.age,
                xbins=go.histogram.XBins(size=5), # Change the bin size
                marker=go.histogram.Marker(color="orange"), # Change the color
            )
)

buttons = []

# button with one option for each dataframe
for col in continuous_vars:
    buttons.append(dict(method='restyle',
                        label=col,
                        visible=True,
                        args=[{"x":[olympic_data[col]],
                              "type":'histogram', [0]],
                        )
                  )

# some adjustments to the updatemenus
updatemenu = []
your_menu = dict()
updatemenu.append(your_menu)

updatemenu[0]['buttons'] = buttons
updatemenu[0]['direction'] = 'down'
updatemenu[0]['showactive'] = True

# add dropdown menus to the figure
fig.update_layout(showlegend=False, updatemenus=updatemenu)
fig.show()

histograma com filtros aplicadosFigura 10: Histograma com filtros que permitem alternar várias variáveis em uma única visualização.

Pronto! Não deixe de conferir o workbook Creating a Plotly Histogram with Olympics Data e experimentar o que construímos neste tutorial. 

Conclusão 

Agora você já sabe como criar um histograma no Plotly para Python. Neste tutorial, vimos:

  • o que é um histograma e como ele funciona
  • a importância da visualização de dados na análise
  • como começar com o DataLab
  • como criar um histograma no Plotly 
  • diferentes formas de personalizar seu histograma
  • como aplicar filtros 

Se você quer se aprofundar em histogramas ou no uso do Plotly, confira os links abaixo:

Tópicos
Python
Visualização de dados

Cursos de Plotly

Curso

Introdução à Visualização de Dados com Plotly em Python

4 h
21.8K
Crie visualizações de dados interativas no Python usando o Plotly.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

Tutorial

Histogramas no Matplotlib

Aprenda sobre histogramas e como você pode usá-los para obter insights dos dados com a ajuda do matplotlib.
Aditya Sharma's photo

Aditya Sharma

8 min

Tutorial

Introdução à plotagem com Matplotlib em Python

Este tutorial demonstra como usar o Matplotlib, uma poderosa biblioteca de visualização de dados em Python, para criar gráficos de linha, barra e dispersão com dados do mercado de ações.

Kevin Babitz

25 min

Tutorial

Guia passo a passo para criar mapas em Python usando a biblioteca Plotly

Faça seus dados se destacarem com mapas impressionantes criados com Plotly em Python
Moez Ali's photo

Moez Ali

7 min

Tutorial

Tutorial do Python Seaborn Line Plot: Criar visualizações de dados

Descubra como usar o Seaborn, uma biblioteca popular de visualização de dados em Python, para criar e personalizar gráficos de linha em Python.
Elena Kosourova's photo

Elena Kosourova

12 min

Tutorial

Gráfico de linha de série temporal do Matplotlib

Este tutorial explora como criar e personalizar gráficos de linha de séries temporais no matplotlib.
Elena Kosourova's photo

Elena Kosourova

8 min

Tutorial

Como fazer um histograma ggplot2 no R

Aprenda a criar um histograma ggplot2 no R. Crie histogramas no R com base na gramática dos gráficos.

Kevin Babitz

15 min

Ver MaisVer Mais