Como Criar Gráficos no Python Utilizando o Plotly

Nesta aula vamos te mostrar como criar gráficos no Python utilizando a biblioteca Plotly com todas as linhas de código!

Para fazer o download dos arquivos utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Aqui vamos ver como sair do zero em gráficos no Python com a biblioteca Plotly. Assim você vai poder complementar suas análises de dados e deixá-las ainda melhores.

Como você deve saber, os gráficos são peças importantes nessa parte de análise de dados para melhorar a visualização das informações, então vamos te mostrar como criar esses gráficos no Python!

Continue lendo para aprender.

Como fazer gráficos no Python

Neste tutotrial, vamos utilizar o Jupyter (Pacote Anaconda) para rodar o código. Não se preocupe em decorar tudo que vai ver aqui, pois é possível buscar as informações que vier e precisar na documentação.

À medida que vai utilizando o código, você acaba decorando algumas coisas. Mas para outras é inevitável verificar a documentação, e não há nenhum problema nisso!

Vamos aos gráficos!

Preparando o ambiente

O primeiro passo antes de iniciar é importar a biblioteca do Plotly. Para isso escreva no início do seu arquivo .py a linha:

Python
import plotly.express as px 

Se não tiver a biblioteca, basta escrever no terminal: pip install plotly

Explicação: Quando utilizamos esse “as” logo depois da biblioteca que estamos importando é para facilitar sua vida. Isso vai fazer com que você só precise escrever o que está depois do “as”. Nesse caso, quando for fazer referência à biblioteca no código, é só escrever px, ao invés de escrever plotly.express por extenso toda vez.

Criando um gráfico

Python
dados_x=['2018','2019','2020','2
021']
dados_y=[10,20,5,35]

fig=px.line(x=dados_x, y=dados_y, title="Vendas x Ano", height=400, width=1000, line_shape='spline')
fig.show()
Gráfico de linha com estilo spline

Aqui já vamos começar com a criação do nosso primeiro gráfico. Nós temos os dados de x e de y, e com essas informações o gráfico é ciado.

Vamos utilizar o px.line para criar um gráfico de linha e dentro dele vamos utilizar alguns argumentos para criar o nosso gráfico.

  • Title – É o título que vamos dar ao gráfico;
  • Height – É a altura do gráfico (não é o tamanho do eixo e sim a altura do gráfico em si);
  • Width – É a largura do gráfico (novamente, não é o tamanho do eixo X, mas a largura do gráfico como um todo);
  • Line_Shape – É o formato da linha que será utilizada.
Python
dados_x=['2018','2019','2020','2021']
dados_y=[10,20,5,35]

fig=px.line(x=dados_x, y=dados_y, title="Vendas x Ano", height=400, width=1000)
fig.update_yaxes(title='Vendas', title_font_color='red', ticks='outside', tickfont_color='yellow')
fig.show()

Configurando o gráfico

Alterando as informações do eixo Y

Para esse segundo gráfico temos as mesmas informações, mas agora vamos fazer algumas mudanças no eixo Y com a utilização do update_yaxes.

  • Title – Esse é o título do eixo Y e não do gráfico como um todo;
  • Title_font_color – Aqui podemos alterar a cor do título do eixo Y;
  • Ticks – Representam os tracinhos em preto ao lado do eixo para indicar onde estão cada uma das informações desse eixo;
  • Tickfont_color – Essa é a cor da informação que está no eixo ao lado do tracinho (tick).

Caso queira saber mais informações sobre alteração do eixo x, cores, fontes e legendas no arquivo já vamos deixar todos esses links para que você possa acessar as documentações.

Alterando o eixo x

https://plotly.com/python/reference/layout/xaxis/

Cores

https://plotly.com/python/reference/layout/#layout-paper_bgcolor

Fontes

https://plotly.com/python/reference/layout/#layout-font

Legendas

https://plotly.com/python/reference/layout/#layout-showlegend

Vamos agora a construção do Gráfico de Pizza!

Python
dados_x=['2018','2019','2020','2021']
dados_y=[10,20,5,35]

fig=px.pie(names=dados_x, values=dados_y, width=300, height=300)
fig.show()

Tipos de gráfico

Gráfico de Pizza

As informações aqui já são basicamente o que já tínhamos anteriormente, então você já vai estar familiarizado com os nomes.

A única diferença é que ao invés de eixo X e Y nós vamos ter nomes e valores, dessa forma o Python vai saber diferenciar os dados e criar o gráfico de pizza baseado nessas informações.

Python
dados_x=['2018','2019','2020','2021']
dados_y=[10,20,5,35]

fig=px.bar(x=dados_x, y=dados_y, width=700, height=300)
fig.show()
Como Criar Gráficos no Python
Gráfico de Barras

O gráfico de barra já é bem similar ao gráfico de linha, a única diferença é o nome da função que vai ser utilizada que agora é px.bar, mas os argumentos já são os mesmos.

Python
dados_x=[1,4,6,7,8,4,3,2,1,5]
dados_y=[10,20,5,35,2,3,40,25,16,27]

fig=px.scatter(x=dados_x, y=dados_y)
fig.show()
Como Criar Gráficos no Python

Nesse exemplo temos o gráfico de dispersão, que é aquele famoso gráfico de pontos, também bastante utilizado para análise de dados.

Para o nosso último gráfico vamos utilizar a biblioteca pandas para ler um arquivo e em seguida criar um Gráfico de Gantt.

Primeiramente nós vamos fazer a importação dos dados e mostrar eles na tela.

Python
import pandas as pd

df_cronograma = pd.read_excel('Tarefas.xlsx')
display(df_cronograma)
Importando e mostrando os dados importados
Importando e mostrando os dados importados

OBS: Caso você tenha alguma dúvida sobre os comandos do pandas nós temos um outro post só sobre esse assunto, basta clicar aqui para acessar o conteúdo.

Python
fig = px.timeline(df_cronograma, x_start="Início", x_end="Fim", y="Tarefa")
fig.update_yaxes(autorange="reversed")
fig.show()
Como Criar Gráficos no Python

Aqui temos o nosso Gráfico de Gantt, que é um gráfico de linha do tempo. Para criar ele, veja no código acima que utilizamos o px.timeline. E em seguido, seus argumentos:

  • df_cronograma – Esse é o nome do arquivo que acabamos de importar para o Python;
  • X_start – É o início da tarefa, que neste caso é “Início”, pois é esse o nome da coluna dos dados que contém as datas de início de cada atividade;
  • X_end – É o término de cada uma das tarefas, neste caso é o “Fim”, pois é o nome da coluna;
  • Y – É a informação que vamos colocar no eixo Y, que nesse caso são as tarefas que foram realizadas.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: A aula parte do zero com o Plotly Express: instala a biblioteca, importa e monta gráficos de linha, pizza, barras e dispersão, ajustando título, tamanho e eixos com a ajuda da documentação. No fim, cria um gráfico de Gantt a partir de tarefas de uma planilha Excel lida com o pandas.

Neste vídeo (41 min):

  • 4:16 - Instalar a biblioteca com pip install plotly
  • 5:53 - Importar com import plotly.express as px
  • 9:05 - Primeiro gráfico de linha com px.line
  • 11:04 - O gráfico não aparece até chamar fig.show()
  • 14:06 - Título, altura e largura do gráfico
  • 18:24 - Eixo Y: novo título e cor da fonte
  • 22:12 - Gráfico de pizza com px.pie
  • 28:17 - Gráfico de barras com px.bar
  • 30:44 - Gráfico de dispersão com px.scatter
  • 34:05 - Ler as tarefas de um arquivo Excel com o pandas
  • 37:21 - Gráfico de Gantt com o início e o fim de cada tarefa
  • 39:02 - Inverter a ordem das tarefas no eixo Y

Trechos do vídeo:

  • A instalação da biblioteca é feita uma vez; depois disso, cada programa que for usá-la só precisa importá-la.
  • No Jupyter, Shift + Tab mostra os argumentos que um tipo de gráfico aceita, e a documentação do Plotly traz o que cada ajuste permite fazer.
  • Para a cor da fonte, funcionam nomes padrão como red, blue e black; para uma cor específica, dá para usar o código hexadecimal.
Ícone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python

Gráficos de Corrida de Barras

Agora vamos aprender um tipo mais específico de gráfico.

Você já viu aqueles gráficos dinâmicos de corrida de barras que dominam a internet? Eles aparecem em stories, reels, shorts e posts, mostrando evoluções como bilheterias de filmes, vendas por país, desempenho de times de futebol ou até salários de jogadores.

Nesta parte você vai aprender a criar esses gráficos de forma prática e rápida com apenas três linhas de código em Python, usando as bibliotecas Pandas e Plotly Express.

E o melhor: eles não servem só para redes sociais, mas também para análises profissionais no mercado de trabalho. Vamos aprender como!

Por que Gráficos de Corrida de Barras?

Gráficos de corrida de barras são visualmente impactantes e intuitivos, permitindo mostrar mudanças ao longo do tempo de forma clara. Por exemplo, você pode visualizar:

  • Evolução de vendas por país em uma empresa.
  • Crescimento do valor de times de futebol ao longo dos anos.
  • Comparações dinâmicas de qualquer métrica (ex.: faturamento, popularidade, desempenho).

Com poucas linhas de código, você cria uma ferramenta poderosa para apresentações profissionais ou relatórios corporativos.

Estrutura da Base de Dados

Para criar um gráfico de corrida de barras, sua base de dados precisa conter:

  • Uma coluna com os anos (ou outra métrica de tempo).
  • Uma coluna com a categoria que será exibida no eixo Y (ex.: países, times, produtos).
  • Uma coluna com os valores numéricos que serão mostrados no eixo X (ex.: vendas, faturamento).

Exemplo de base de dados (vendas_paises.csv):

Python
ano,pais,vendas
2020,Brasil,80
2020,Estados Unidos,100
2020,Alemanha,60
2020,China,90
2020,Índia,50
2021,Brasil,90
2021,Estados Unidos,95
2021,Alemanha,70
2021,China,110
2021,Índia,65
...

Dica: Use a base de dados fornecida no tutorial ou crie a sua com o mesmo formato. A ordem dos dados não importa, desde que cada linha tenha ano, categoria e valor.

Código para Criar o Gráfico

Com a base de dados pronta, você pode criar o gráfico de corrida de barras com apenas três linhas de código (excluindo importações). Aqui está o código completo:

Python
import pandas as pd
import plotly.express as px

# 1. Carregar a base de dados
tabela = pd.read_csv('vendas_paises.csv')

# 2. Criar o gráfico de corrida de barras
grafico = px.bar(tabela, x='vendas', y='pais', color='pais', orientation='h',
                 text='vendas', range_x=[0, tabela['vendas'].max()],
                 animation_frame='ano', animation_group='pais')

# 3. Exportar o gráfico como HTML
grafico.write_html('corrida_vendas.html')

Explicação do Código

  1. Carregar a base de dados:
    • pd.read_csv('vendas_paises.csv'): Importa o arquivo CSV para um DataFrame do Pandas, armazenado na variável tabela.
  2. Criar o gráfico de barras:
    • px.bar(): Cria um gráfico de barras com Plotly Express.
    • Parâmetros:
      • x='vendas': Define a coluna vendas como o eixo X (valores numéricos).
      • y='pais': Define a coluna pais como o eixo Y (categorias).
      • color='pais': Atribui uma cor diferente para cada país.
      • orientation='h': Define as barras como horizontais (use 'v' para verticais).
      • text='vendas': Exibe os valores de vendas dentro das barras.
      • range_x=[0, tabela['vendas'].max()]: Fixa o eixo X do zero ao maior valor de vendas, garantindo consistência na animação.
      • animation_frame='ano': Define a coluna ano como o marcador de tempo para a animação (cada frame mostra um ano).
      • animation_group='pais': Identifica cada barra como um “corredor” (país) que evolui ao longo do tempo.
  3. Exportar o gráfico:
    • grafico.write_html('corrida_vendas.html'): Gera um arquivo HTML interativo com a animação, que pode ser aberto em qualquer navegador.

Visualizando o Resultado

  1. Salve o código em um arquivo (ex.: criar_grafico.py).
  2. Execute o código no terminal:python criar_grafico.py
  3. Um arquivo corrida_vendas.html será gerado na mesma pasta.
  4. Abra o arquivo no navegador (clique duplo no arquivo, não no VS Code) para ver a animação.

O que você vai ver?

  • Um gráfico de barras horizontais onde cada barra representa um país.
  • As barras mudam de tamanho ao longo do tempo (anos), mostrando a evolução das vendas.
  • Cada país tem uma cor única, e os valores de vendas aparecem nas barras.
  • A animação mostra, por exemplo, a China ultrapassando os Estados Unidos ou a Índia crescendo rapidamente.

Nota: Na primeira execução, o gráfico pode parecer um pouco lento devido ao processamento inicial. A partir da segunda vez, ele rodará de forma fluida.

Aplicações Práticas

Esses gráficos não são apenas para redes sociais! Eles são perfeitos para:

  • Relatórios corporativos: Mostre a evolução de vendas por região ou produto.
  • Análises de mercado: Compare o desempenho de empresas ou setores.
  • Apresentações: Crie visualizações impactantes com mínima configuração.
  • Projetos pessoais: Analise dados como bilheterias de filmes, rankings de esportes ou métricas de redes sociais.

Com apenas três linhas de código, você cria uma visualização profissional que, em ferramentas como Excel, exigiria muito mais esforço.

Próximos Passos

  • Personalize o gráfico: Adicione títulos, ajuste cores ou modifique a velocidade da animação com parâmetros adicionais do Plotly Express (ex.: title, animation_duration).
  • Use seus próprios dados: Substitua o arquivo CSV por dados relevantes para seu projeto.
  • Integre em sites: Incorpore o arquivo HTML em uma página web para compartilhamento.
  • Explore outras visualizações: O Plotly Express oferece gráficos de linhas, dispersão e mais, todos com animações dinâmicas.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Previsão de Vendas com Python em Menos de 15 Linhas!

Nesta seção você vai aprender a criar um gráfico interativo no Plotly Express com previsões de vendas, preços ou demanda de forma rápida e prática. Entenda como fazer modelos de regressão linear em menos de 15 linhas de código!

Baixe a base de dados aqui embaixo e siga lendo para aprender.

Passo a Passo para Criar Previsões

1. Instalar Bibliotecas

Use Pandas (manipulação de dados), Scikit-Learn (previsões), Plotly Express (gráficos interativos) e Statsmodels (suporte à regressão).

Instale com:

Codigo
pip install pandas scikit-learn plotly statsmodels

2. Código Completo

Com a base de dados historico.csv (contendo colunas “mês” e “vendas”), crie previsões para os meses futuros:

Python
import pandas as pd
import plotly.express as px
from sklearn.linear_model import LinearRegression

# Carregar base de dados
tabela_historico = pd.read_csv('historico.csv')

# Definir variáveis X (mês) e Y (vendas)
X = tabela_historico[['mês']]
y = tabela_historico['vendas']

# Treinar modelo de regressão linear
modelo = LinearRegression()
modelo.fit(X, y)

# Criar tabela para previsão (meses 25, 26, 27)
meses_prever = pd.DataFrame({'mês': [25, 26, 27]})
previsoes = modelo.predict(meses_prever)

# Criar tabela de previsões
tabela_previsoes = pd.DataFrame({'mês': [25, 26, 27], 'vendas': previsoes, 'tipo': 'previsão'})
tabela_historico['tipo'] = 'histórico'

# Unir histórico e previsões
tabela_grafico = pd.concat([tabela_historico, tabela_previsoes])

# Criar gráfico interativo
grafico = px.scatter(tabela_grafico, x='mês', y='vendas', color='tipo', trendline='ols')
grafico.show()

Como Funciona?

  1. Carregar Dados: Importe o arquivo CSV com o histórico de vendas (ex.: meses 1 a 24).
  2. Dividir Dados:
    • X: Coluna “mês” (usada para prever).
    • Y: Coluna “vendas” (o que você quer prever).
  3. Treinar Modelo: A regressão linear do Scikit-Learn aprende a relação entre meses e vendas.
  4. Fazer Previsões: Use o modelo para prever vendas nos meses 25, 26 e 27.
  5. Unir Dados: Combine o histórico com as previsões, adicionando uma coluna “tipo” para diferenciar.
  6. Visualizar: Crie um gráfico interativo com Plotly Express, com linha de tendência e cores distintas para histórico (azul) e previsões (vermelho).

Resultado: Um gráfico interativo mostrando vendas passadas e previstas, com valores como 187 vendas (mês 25), 191 (mês 26) e 195 (mês 27). Passe o mouse para ver detalhes ou dê zoom!

Como refinar sua análise

  • Regressão Linear: Ideal para casos simples com relações lineares. Para projetos complexos, considere modelos como árvores de decisão, KNN ou SVM.
  • Aprimoramentos: Adicione etapas como tratamento de dados e feature engineering para previsões mais robustas.
  • Explore: Use o minicurso gratuito na descrição para aprender mais sobre ciência de dados!

Criando Gráficos Dinâmicos de Sunburst com Plotly Express

Nesta seção vamos criar gráfico dinâmico de Sunburst com apenas quatro linhas de código em Python, também usando a biblioteca Plotly Express. Este gráfico é ideal para análises percentuais, como a distribuição de vendas por continentes e países, oferecendo uma visualização interativa que permite explorar diferentes níveis de dados de forma intuitiva.

Diferente dos gráficos de pizza tradicionais, o Sunburst é dinâmico, permitindo clicar e filtrar camadas, como continentes ou países, para analisar proporções específicas.

Baixe a base de dados aqui embaixo e siga lendo para aprender.

Por que usar gráficos Sunburst?

Gráficos Sunburst são visualmente impactantes e perfeitos para apresentações profissionais ou relatórios, pois:

  • Mostram divisões percentuais de forma hierárquica (ex.: continentes → países).
  • São interativos, permitindo filtrar dados com cliques (ex.: focar apenas nas vendas da Ásia).
  • Facilitam o storytelling de dados, guiando o público por uma análise lógica e clara.

Por exemplo, você pode visualizar que as Américas representam 39% das vendas globais, sendo 55% desse total dos Estados Unidos, ou que a China representa 51% das vendas na Ásia.

Estrutura da Base de Dados

Para criar o gráfico, sua base de dados (em formato CSV) deve conter:

  • Uma coluna com categorias hierárquicas (ex.: continente, país).
  • Uma coluna numérica para os valores (ex.: vendas_m millions).

Exemplo de base de dados (vendas_distribuicao.csv):

Codigo
continente,pais,vendas_millions
Américas,Brasil,10
Américas,Canadá,7
Américas,Estados Unidos,22
Ásia,China,19
Ásia,Índia,6
Ásia,Japão,12
Europa,Alemanha,10
Europa,França,8
Europa,Reino Unido,6

Dica: A base de dados deve conter pelo menos uma coluna numérica para calcular os percentuais. A ordem das linhas não importa, desde que as colunas estejam nomeadas corretamente.

Instalando as Bibliotecas

Você precisará das bibliotecas Pandas (para manipulação de dados) e Plotly Express (para criação do gráfico). Instale-as com:

Codigo
pip install pandas plotly

Código para Criar o Gráfico

Com a base de dados pronta, o gráfico Sunburst pode ser criado com apenas quatro linhas de código (excluindo importações). Veja o código completo:

Python
import pandas as pd
import plotly.express as px

# 1. Carregar a base de dados
tabela = pd.read_csv('vendas_distribuicao.csv')

# 2. Criar o gráfico Sunburst
grafico = px.sunburst(tabela, path=['continente', 'pais'], values='vendas_millions', color='continente', title='Divisão de Vendas Globais')

# 3. Adicionar percentuais ao gráfico
grafico.update_traces(textinfo='label+percent')

# 4. Exibir o gráfico
grafico.show()

Explicação do Código

  1. Carregar a base de dados:
    • pd.read_csv(‘vendas_distribuicao.csv’): Importa o arquivo CSV para um DataFrame do Pandas, armazenado na variável tabela.
  2. Criar o gráfico Sunburst:
    • px.sunburst(): Cria o gráfico Sunburst com Plotly Express.
    • Parâmetros:
      • path=[‘continente’, ‘pais’]: Define a hierarquia das camadas, começando por continente (centro do gráfico) e depois pais (camadas externas). Você pode adicionar mais camadas (ex.: cidade) se a base de dados permitir.
      • values=’vendas_millions’: Especifica a coluna numérica usada para calcular os percentuais.
      • color=’continente’: Atribui cores diferentes para cada continente, mantendo a mesma cor para os países dentro de um mesmo continente.
      • title=’Divisão de Vendas Globais’: Define o título do gráfico.
  3. Adicionar percentuais:
    • grafico.update_traces(textinfo=’label+percent’): Adiciona os rótulos e percentuais em cada fatia do gráfico, mostrando, por exemplo, “Estados Unidos 22%” ou “China 51%” quando filtrado por continente.
  4. Exibir o gráfico:
    • grafico.show(): Renderiza o gráfico interativo no navegador, permitindo clicar em continentes ou países para explorar os dados.

Visualizando o Resultado

  • Execute o código em um ambiente Python (ex.: Jupyter Notebook ou arquivo .py).
  • O gráfico será aberto em um navegador, mostrando:
    • A divisão percentual global (ex.: Américas 39%, Ásia 37%, Europa 24%).
    • Ao clicar em um continente (ex.: Ásia), o gráfico foca na divisão percentual dos países daquele continente (ex.: China 51%, Japão 33%, Índia 16%).
  • Passe o mouse sobre as fatias para ver detalhes ou clique para filtrar.

Nota: Na primeira execução, o gráfico pode parecer um pouco lento devido ao processamento inicial. A partir da segunda vez, ele será mais fluido.

como criar graficos no python

Dicas para Personalização

  • Mais camadas: Adicione mais colunas ao path (ex.: [‘continente’, ‘pais’, ‘cidade’]) para criar hierarquias mais profundas.
  • Cores personalizadas: Use o parâmetro color_continuous_scale ou defina cores específicas na documentação do Plotly.
  • Título e layout: Ajuste o título, fontes ou layout com grafico.update_layout(title_font_size=20, …) (consulte a documentação do Plotly).
  • Evite muitas fatias: Mantenha o gráfico simples, com poucas categorias, para evitar complexidade visual.

Aplicações Práticas

O gráfico Sunburst é ideal para:

  • Relatórios corporativos: Mostrar a distribuição de vendas por região, produto ou setor.
  • Análises de mercado: Comparar o desempenho de filiais, marcas ou categorias.
  • Apresentações dinâmicas: Criar visualizações interativas para reuniões ou relatórios.
  • Projetos pessoais: Analisar dados como gastos por categoria, desempenho de equipes ou métricas de redes sociais.

Conclusão

Nessa aula nós te mostramos como sair do zero em gráficos no Python utilizando a biblioteca Plotly.

Então aprendemos a criar gráficos e até como fazer alterações no gráfico para ir ajustando e deixá-lo da melhor forma possível.

No final ainda tivemos a criação de um Gráfico de Gantt que é um gráfico para análise de projetos e tarefas ao longo do tempo e aprendemos a fazer os Gráficos de Corrida de Barras, Gráfico interativo de previsão e um gráfico Sunburst dinâmico e interativo!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos