top of page
Buscar

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 has been turned off.
bottom of page