Criar gráficos interativos pode parecer complicado, mas com a biblioteca Plotly isso fica bem mais fácil. Se você já trabalha com análise de dados em Python, sabe que visualizar informações de forma clara é essencial. Plotly permite criar visualizações que o usuário pode explorar, dando zoom, passando o mouse para ver valores e até mesmo filtrando dados.
Neste guia, vou mostrar como começar com Plotly do zero. Você vai aprender a instalar a biblioteca, criar seus primeiros gráficos e adicionar recursos interativos que tornam suas visualizações muito mais profissionais e úteis.
Para ajudar você a entender melhor, recomendo assistir este vídeo do canal Walisson Silva que explica de forma prática como usar Plotly:
O que é Plotly
Plotly é uma biblioteca Python voltada para criação de gráficos interativos. Diferente de outras ferramentas como Matplotlib, que gera imagens estáticas, Plotly cria visualizações que permitem interação direta do usuário.
A biblioteca funciona gerando código HTML e JavaScript automaticamente. Isso significa que seus gráficos podem ser incorporados em sites, dashboards e aplicações web sem precisar conhecer essas linguagens.
Existem duas versões principais do Plotly. A versão gratuita oferece todos os recursos básicos e avançados para criar gráficos localmente. Já a versão paga adiciona funcionalidades de compartilhamento em nuvem e colaboração em equipe.
Para quem está aprendendo Python, Plotly é uma ótima escolha porque tem uma sintaxe clara e muita documentação disponível. A curva de aprendizado é suave, mesmo para iniciantes.
Por que usar Plotly para visualização de dados
A principal vantagem do Plotly é a interatividade. Quando você passa o mouse sobre um ponto no gráfico, aparecem informações detalhadas. Você pode dar zoom, arrastar para explorar diferentes áreas e até mesmo esconder ou mostrar séries de dados com um clique.
Essa interatividade torna a análise de dados muito mais rica. Por exemplo, ao apresentar resultados para clientes ou colegas de trabalho, eles podem explorar os dados por conta própria, encontrando insights que talvez você não tivesse percebido.
Outro ponto forte é a facilidade de compartilhamento. Como os gráficos são gerados em HTML, você pode salvá-los e abrir em qualquer navegador. Não precisa de software especial instalado.
Plotly também oferece diversos tipos de gráficos prontos para usar. Desde gráficos de linha simples até mapas geográficos complexos, passando por gráficos 3D e animações. Tudo com poucas linhas de código.
A biblioteca se integra perfeitamente com Pandas e NumPy, tornando o fluxo de trabalho muito natural. Se você já trabalha com essas bibliotecas, vai se sentir em casa usando Plotly.
Instalando Plotly no seu ambiente Python
Antes de começar a criar gráficos, você precisa instalar a biblioteca no seu sistema. O processo é simples e direto.
Abra o terminal ou prompt de comando e digite o seguinte comando:
pip install plotlyEsse comando vai baixar e instalar o Plotly automaticamente. Se você está usando um ambiente virtual, certifique-se de ativá-lo antes de executar o comando.
Para verificar se a instalação funcionou corretamente, abra o Python interativo e tente importar a biblioteca:
import plotly.graph_objects as go
print("Plotly instalado com sucesso!")Se nenhum erro aparecer, está tudo pronto para começar. Caso encontre problemas, verifique se você tem o pip atualizado usando pip install --upgrade pip.
Também é útil instalar o Pandas junto, caso ainda não tenha. Muitos exemplos com Plotly usam DataFrames do Pandas para organizar os dados:
pip install pandasCriando seu primeiro gráfico de linhas
Vamos começar criando um gráfico de linhas simples. Este é um dos tipos mais comuns e serve para visualizar tendências ao longo do tempo.
Primeiro, vamos importar as bibliotecas necessárias:
import plotly.graph_objects as goAgora, vamos criar alguns dados simples para plotar. Imagine que você quer mostrar as vendas de uma loja ao longo de seis meses:
meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho']
vendas = [15000, 18000, 12000, 22000, 25000, 28000]
fig = go.Figure(data=go.Scatter(x=meses, y=vendas, mode='lines+markers'))
fig.update_layout(title='Vendas Mensais 2024',
xaxis_title='Mês',
yaxis_title='Vendas (R$)')
fig.show()Quando você executar esse código, uma janela do navegador vai abrir mostrando o gráfico. Você pode passar o mouse sobre os pontos para ver os valores exatos. Também pode usar os botões no canto superior direito para dar zoom ou salvar o gráfico como imagem.
O parâmetro mode='lines+markers' faz com que apareçam tanto a linha quanto os pontos. Se quiser apenas a linha, use mode='lines'. Para apenas pontos, use mode='markers'.
A função update_layout permite personalizar títulos e rótulos dos eixos. Você pode adicionar muitas outras configurações, como cores, tamanho de fonte e legendas.
Trabalhando com gráficos de barras interativos
Gráficos de barras são perfeitos para comparar diferentes categorias. Com Plotly, criar um gráfico de barras é tão simples quanto criar um gráfico de linhas.
Vamos criar um exemplo comparando as vendas de diferentes produtos:
produtos = ['Notebook', 'Mouse', 'Teclado', 'Monitor', 'Webcam']
quantidades = [45, 120, 85, 60, 95]
fig = go.Figure(data=go.Bar(x=produtos, y=quantidades))
fig.update_layout(title='Vendas por Produto',
xaxis_title='Produto',
yaxis_title='Quantidade Vendida')
fig.show()O resultado é um gráfico de barras verticais onde você pode ver rapidamente qual produto teve mais vendas. Ao passar o mouse sobre cada barra, aparecem informações detalhadas.
Para criar barras horizontais, basta trocar os valores de x e y:
fig = go.Figure(data=go.Bar(x=quantidades, y=produtos, orientation='h'))
fig.update_layout(title='Vendas por Produto',
xaxis_title='Quantidade Vendida',
yaxis_title='Produto')
fig.show()Você também pode personalizar as cores das barras. Adicione o parâmetro marker_color:
fig = go.Figure(data=go.Bar(x=produtos, y=quantidades,
marker_color='lightblue'))
fig.show()Para usar cores diferentes em cada barra, passe uma lista de cores:
cores = ['red', 'blue', 'green', 'orange', 'purple']
fig = go.Figure(data=go.Bar(x=produtos, y=quantidades,
marker_color=cores))
fig.show()Criando gráficos de dispersão para análise de correlação
Gráficos de dispersão (scatter plots) são úteis para identificar relações entre duas variáveis. Por exemplo, você pode querer ver se existe relação entre horas de estudo e notas em provas.
Vamos criar um exemplo:
horas_estudo = [2, 3, 4, 5, 6, 7, 8, 9, 10]
notas = [55, 60, 65, 70, 75, 80, 85, 90, 95]
fig = go.Figure(data=go.Scatter(x=horas_estudo, y=notas, mode='markers'))
fig.update_layout(title='Relação entre Horas de Estudo e Notas',
xaxis_title='Horas de Estudo',
yaxis_title='Nota')
fig.show()Neste gráfico, cada ponto representa um aluno. Você pode ver claramente que quanto mais horas de estudo, maior tende a ser a nota.
Para tornar o gráfico mais informativo, você pode variar o tamanho e cor dos pontos com base em outras variáveis:
fig = go.Figure(data=go.Scatter(
x=horas_estudo,
y=notas,
mode='markers',
marker=dict(
size=[10, 15, 20, 25, 30, 35, 40, 45, 50],
color=notas,
colorscale='Viridis',
showscale=True
)
))
fig.show()Esse código cria pontos de tamanhos variados e aplica uma escala de cores baseada nas notas. A barra de cores à direita mostra a legenda.
Plotando múltiplas séries no mesmo gráfico
Muitas vezes você precisa comparar várias séries de dados no mesmo gráfico. Plotly torna isso muito simples.
Vamos comparar as vendas de duas lojas diferentes:
meses = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun']
loja_a = [15000, 18000, 12000, 22000, 25000, 28000]
loja_b = [12000, 16000, 14000, 19000, 23000, 26000]
fig = go.Figure()
fig.add_trace(go.Scatter(x=meses, y=loja_a, mode='lines+markers', name='Loja A'))
fig.add_trace(go.Scatter(x=meses, y=loja_b, mode='lines+markers', name='Loja B'))
fig.update_layout(title='Comparação de Vendas entre Lojas',
xaxis_title='Mês',
yaxis_title='Vendas (R$)')
fig.show()Cada série aparece em uma cor diferente automaticamente. A legenda no canto superior direito permite clicar para esconder ou mostrar cada série.
Você pode adicionar quantas séries precisar usando add_trace. Também pode personalizar as cores de cada linha:
fig = go.Figure()
fig.add_trace(go.Scatter(x=meses, y=loja_a, mode='lines+markers',
name='Loja A', line=dict(color='blue', width=2)))
fig.add_trace(go.Scatter(x=meses, y=loja_b, mode='lines+markers',
name='Loja B', line=dict(color='red', width=2)))
fig.show()Personalizando cores e estilos dos gráficos
Plotly oferece controle total sobre a aparência dos seus gráficos. Você pode mudar cores, fontes, tamanhos e muito mais.
Para mudar a cor de fundo do gráfico:
fig.update_layout(
plot_bgcolor='lightgray',
paper_bgcolor='white'
)plot_bgcolor muda a cor da área onde os dados são plotados. paper_bgcolor muda a cor de todo o fundo do gráfico.
Para personalizar a fonte dos títulos e textos:
fig.update_layout(
title=dict(
text='Meu Gráfico',
font=dict(size=24, color='darkblue', family='Arial')
),
xaxis=dict(
title_font=dict(size=16, color='gray'),
tickfont=dict(size=12)
)
)Você também pode adicionar linhas de grade personalizadas:
fig.update_xaxes(showgrid=True, gridwidth=1, gridcolor='lightgray')
fig.update_yaxes(showgrid=True, gridwidth=1, gridcolor='lightgray')Para remover as linhas de grade completamente:
fig.update_xaxes(showgrid=False)
fig.update_yaxes(showgrid=False)Adicionando títulos, legendas e anotações
Títulos e legendas ajudam o leitor a entender rapidamente o que o gráfico mostra. Plotly oferece várias opções para adicionar esses elementos.
Para adicionar um título principal e subtítulo:
fig.update_layout(
title=dict(
text='Vendas Mensais<br><sub>Comparação 2023 vs 2024</sub>',
x=0.5,
xanchor='center'
)
)O parâmetro x=0.5 centraliza o título. Use <br> para quebrar linha e <sub> para subtítulo.
Para posicionar a legenda:
fig.update_layout(
legend=dict(
x=0.5,
y=-0.2,
xanchor='center',
yanchor='top',
orientation='h'
)
)Esse código coloca a legenda abaixo do gráfico, centralizada horizontalmente.
Anotações são úteis para destacar pontos específicos:
fig.add_annotation(
x='Abril',
y=22000,
text='Pico de vendas',
showarrow=True,
arrowhead=2,
arrowcolor='red'
)Isso adiciona uma seta vermelha apontando para o ponto específico com um texto explicativo.
Salvando gráficos como HTML ou imagens
Depois de criar seu gráfico, você vai querer salvá-lo para usar em relatórios ou apresentações. Plotly oferece várias opções de exportação.
Para salvar como arquivo HTML interativo:
fig.write_html('meu_grafico.html')O arquivo HTML gerado pode ser aberto em qualquer navegador e mantém toda a interatividade. É perfeito para compartilhar com outras pessoas.
Para salvar como imagem estática (PNG, JPG ou PDF), você precisa instalar uma biblioteca adicional chamada Kaleido:
pip install kaleidoDepois de instalar, você pode salvar como imagem:
fig.write_image('meu_grafico.png', width=1200, height=800)Os parâmetros width e height controlam o tamanho da imagem em pixels. Para melhor qualidade, use valores maiores.
Você também pode salvar como PDF:
fig.write_image('meu_grafico.pdf')Integrando Plotly com Pandas DataFrames
Se você já trabalha com Pandas, vai adorar como Plotly se integra perfeitamente. Você pode criar gráficos diretamente de DataFrames sem precisar extrair colunas manualmente.
Primeiro, vamos criar um DataFrame simples:
import pandas as pd
dados = {
'Mes': ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun'],
'Vendas': [15000, 18000, 12000, 22000, 25000, 28000],
'Despesas': [8000, 9000, 7500, 11000, 12000, 13000]
}
df = pd.DataFrame(dados)Agora, podemos usar o Plotly Express, uma interface de alto nível que funciona muito bem com DataFrames:
import plotly.express as px
fig = px.line(df, x='Mes', y=['Vendas', 'Despesas'],
title='Vendas vs Despesas')
fig.show()Com apenas uma linha de código, você cria um gráfico com duas séries. Plotly Express detecta automaticamente que você quer plotar duas colunas e cria a legenda.
Para gráficos de barras:
fig = px.bar(df, x='Mes', y='Vendas', title='Vendas Mensais')
fig.show()Você também pode criar gráficos de dispersão facilmente:
fig = px.scatter(df, x='Vendas', y='Despesas',
title='Relação Vendas x Despesas')
fig.show()Casos de uso práticos do Plotly em projetos reais
Plotly é usado em diversos tipos de projetos profissionais. Vou mostrar alguns cenários reais onde a biblioteca brilha.
Em análise financeira, você pode criar gráficos de candlestick para visualizar ações da bolsa. Esses gráficos mostram preço de abertura, fechamento, máxima e mínima de cada período:
import plotly.graph_objects as go
fig = go.Figure(data=go.Candlestick(
x=['2024-01', '2024-02', '2024-03'],
open=[100, 105, 110],
high=[115, 120, 125],
low=[95, 100, 105],
close=[110, 115, 120]
))
fig.show()Em análise de vendas, você pode criar dashboards interativos que gerentes podem explorar. Por exemplo, um gráfico mostrando vendas por região com filtros dinâmicos.
Para análise científica, gráficos 3D ajudam a visualizar dados complexos. Plotly oferece suporte completo para visualizações tridimensionais:
fig = go.Figure(data=go.Scatter3d(
x=[1, 2, 3, 4, 5],
y=[1, 4, 9, 16, 25],
z=[1, 8, 27, 64, 125],
mode='markers'
))
fig.show()Em aplicações web, você pode incorporar gráficos Plotly em sites feitos com Django ou Flask. Os gráficos funcionam perfeitamente em navegadores e dispositivos móveis.
Perguntas Frequentes (FAQ)
1. O que é Plotly?
Plotly é uma biblioteca Python que cria gráficos interativos. Diferente de outras ferramentas, permite que usuários explorem dados com zoom e filtros.
2. Plotly é gratuito?
Sim, a versão básica do Plotly é totalmente gratuita e oferece todos os recursos principais para criar visualizações.
3. Qual a diferença entre Plotly e Matplotlib?
Matplotlib cria gráficos estáticos enquanto Plotly gera visualizações interativas que podem ser exploradas pelo usuário.
4. Como instalar Plotly no Python?
Use o comando pip install plotly no terminal. Certifique-se de ter Python e pip instalados no seu sistema.
5. Plotly funciona com Pandas?
Sim, Plotly se integra perfeitamente com Pandas. Você pode criar gráficos diretamente de DataFrames usando Plotly Express.
6. Posso salvar gráficos Plotly como imagem?
Sim, após instalar a biblioteca Kaleido você pode salvar gráficos em PNG, JPG ou PDF usando o método write_image.
7. É difícil aprender Plotly?
Não, Plotly tem uma sintaxe simples e muita documentação. Se você conhece Python básico já consegue criar gráficos profissionais.
8. Plotly funciona em aplicações web?
Sim, os gráficos gerados podem ser incorporados em sites e funcionam em qualquer navegador moderno sem plugins adicionais.
9. Quais tipos de gráficos Plotly suporta?
Plotly suporta linhas, barras, dispersão, pizza, mapas geográficos, gráficos 3D, candlestick e muitos outros tipos de visualizações.
10. Preciso conhecer JavaScript para usar Plotly?
Não, Plotly gera todo o código JavaScript automaticamente. Você só precisa conhecer Python para criar gráficos completos.








