top of page

Uma Breve Introdução ao Plotly

Atualizado: 29 de ago. de 2023

O Plotly é um pacote de visualização de dados que oferece uma variedade de ferramentas para criar gráficos e painéis interativos, dentro de um ambiente baseado em navegador. O seu uso é aberto e está disponível para diversas linguagens de programação, como Javascript, Julia, R e, claro, Python.


As possibilidades de plotagem interativa de dados costumam orbitar ao redor de três pacotes distintos dentro do ecossistema científico do Python: o próprio Plotly, Bokeh e Altair. Cada um tem suas vantagens, desvantagens e características distintas de funcionamento. O Plotly se destaca pela facilidade de uso e a boa qualidade visual. É possível criar gráficos altamente personalizáveis e interativos em pouco tempo e com poucas linhas de código.


Visualizações de dados precisam de... dados.

Antes de explorarmos as funcionalidades do Plotly, vamos antes abrir e processar os dados históricos de Concentração de Dióxido de Carbono (CO₂) na Atmosfera. Essas séries históricas são mantidas de forma contínua pelo Observatório de Mauna Loa desde 1958 e são indicadores de grande importância para o estudo das mudanças climáticas globais.


E para poder processar arquivos de dados, o pacote Pandas é uma das melhores opções em Python.


Aliás, o próprio Pandas também merece a ter a sua Breve Introdução por aqui em outro momento.


A função .read_csv() permite a leitura da tabela de dados de CO₂ da forma como está armazenada no site do Observatório de Mauna Loa, mas também serve para qualquer arquivo em formato .txt ou .csv que você possa ter em seu computador. O argumento comment='#' informa ao Pandas que as linhas iniciadas com # são referentes a comentários e devem ser desconsideradas. Como as colunas de dados são separadas por espaços em branco, sep='\s+' delimita cada uma delas independentemente da quantidade de espaços entre as mesmas. Por fim, header=None define que a tabela não terá nenhuma linha de cabeçalho com os nomes das colunas, o que fará com que o Pandas atribua nomes genéricos a cada uma delas uma sequência numérica que começa em 0.


Mesmo com esse procedimento, a tabela de dados ainda não está necessariamente nos melhores formatos para uso. A falta de uma coluna de datas bem descrita costuma causar dores de cabeça quando se usa o Pandas, por exemplo. Por isso, uma boa saída é reorganizar os dados em um novo DataFrame e atribuir o resultado a uma nova variável.


No caso, o novo DataFrame em co2_df possui uma coluna chamada 'Tempo' preenchida com datas mensais geradas por .date_range() entre Março de 1958 a Fevereiro de 2023. As outras duas colunas são preenchidas com as séries de CO₂ mensal e dessazonalizado contidos no arquivo de dados original. Por fim, .set_index() foi usado para definir que a coluna 'Tempo' terá o importante papel de índice da tabela, o que é uma boa prática e permite uma manipulação mais dinâmica dos dados.


Uma Curva de Keeling interativa


Um dos gráficos mais icônicos da história das ciências ambientais é a Curva de Keeling, que recebe esse nome por conta do trabalho pioneiro de Charles Keeling (1928-2005). De forma simples, a Curva é um gráfico de linha que representa o aumento progressivo da concentração de CO₂ na Atmosfera desde o final dos anos 50. E como já foi mencionado alguma vezes neste post, gráficos de linha são apenas um tipo entre os vários possíveis de serem criados com o uso do Plotly.



Uma opção de uso do Plotly se dá pela API do Plotly Express, que facilita ainda mais a criação de gráficos interativos. E por convenção, o Plotly Express é importado dentro do código como import plotly.express as px.


Gráficos de linha são criados com a função px.line() do Plotly Express. No exemplo, o eixo x foi definido como sendo o índice de co2_df, que contém as datas de cada registro. Já o eixo y foi definido como a coluna 'CO2 Mensal', que contém a série histórica da concentração de CO₂ do Observatório de Mauna. Para definir a estética do gráfico, o argumento color_discrete_sequence foi usado para definir a cor da linha em azul 'Blue'. Como resultante, temos uma curva contínua que representa a evolução da concentração de CO₂ na Atmosfera ao longo dos anos. Isto é, a Curva de Keeling.


Para aumentar o nível da informação, podemos representar o comportamento do CO₂ sem as variações sazonais e com maior foco na tendência de crescimento da concentração ao longo dos anos. Para isso, utilizamos .add_trace() para incluir a série de 'CO2 Dessazonal' novamente com px.line de forma similar ao que foi feito anteriormente. Dessa vez, a curva terá a color amarela definida em color_discrete_sequence=['yellow'] para diferenciá-la do primeiro gráfico de linha. Por fim, .data[0] foi utilizado para adicionar a nova curva com a anterior dentro da figura. Um pequeno truque do Plotly Express.


Como a estética é importante para qualquer bom gráfico, .update_layout() nos permite alterar os parâmetros de formatação da figura de forma fácil com alguns argumentos simples de serem utilizados. Podemos modificar o título do gráfico com title, os nomes dos eixos x e y com xaxis_title e yaxis_title separadamente, mudar as cores de fundo e remover aquele azul característico do Plotly com plot_bgcolor e paper_bgcolor, a altura e largura do gráfico com height e width e o tamanho da fonte do título com title_font. Mas a lista inteira de opções, claro, é muito maior que isso.


O Plotly vale a pena


Por fim, vemos que o Plotly pode ser um aliado poderoso para criação de visualizações interativas de dados em aplicações para todas as ciências ambientais. Com uma sintaxe simples e direta, o Plotly Express permite fazer gráficos personalizados em poucas linhas de código, o que ajuda a acelerar o processo de idealização. Além disso, a possibilidade de interação pode contribuir com a identificação de padrões e na própria análise exploratória dos dados. Ou seja, saber usar o Plotly a seu favor é uma competência importante para pesquisadores e profissionais que trabalham com dados climáticos, contribuindo com uma comunicação mais efetiva e clara dos seus resultados.


Ainda não acabou! Clique no botão a seguir e baixe o Jupyter Notebook do post.




Comments


Commenting on this post isn't available anymore. Contact the site owner for more info.

Meteonorte Meteorologia LTDA
Impact Hub Manaus, Sala E, Box 290.
Av. Ephigênio Salles, 1299. 69060-020
Manaus, Amazonas, Brasil.

 
Fale com a Meteonorte
meteonorte@meteonorte.com
(92) 99520-5744

White on Transparent.png
  • LinkedIn - Círculo Branco
  • Facebook - Círculo Branco
  • Instagram - White Circle
  • Telegram
bottom of page