Visualizando dados de mudanças climáticas com ggplot2: um tutorial passo a passo
Aprenda a usar ggplot2 no R para criar visualizações envolventes de dados sobre mudanças climáticas. Este tutorial passo a passo ensina você a encontrar, analisar e visualizar dados históricos de clima.
"O aquecimento global não é uma previsão. Está acontecendo" - James Hansen
As mudanças climáticas são um tema urgente que nos afeta a todos, e a visualização de dados pode ser uma ferramenta poderosa para aumentar a conscientização. Neste tutorial passo a passo, você vai aprender a usar ggplot2 no R para criar visualizações impactantes de dados climáticos históricos. Ao final, você saberá como encontrar conjuntos de dados curados, plotar dados históricos de clima e personalizar seus gráficos para contar uma história envolvente.
As mudanças climáticas são um tema urgente que nos afeta a todos, e a visualização de dados pode ser uma ferramenta poderosa para aumentar a conscientização. Neste tutorial passo a passo, você vai aprender a usar ggplot2 no R para criar visualizações impactantes de dados climáticos históricos. Ao final, você saberá como encontrar conjuntos de dados curados, plotar dados históricos de clima e personalizar seus gráficos para contar uma história envolvente.
Neste tutorial, você vai aprender onde encontrar dados históricos de temperatura confiáveis e curados e como visualizá-los com ggplot2.
Saber onde encontrar conjuntos de dados curados com dados históricos de clima;
Sentir-se à vontade para plotar dados históricos de clima com ggplot2;
Ser capaz de personalizar seus gráficos no ggplot2 para contar melhor sua história.
Passo 1: encontrando e carregando os dados
Os dados para este tutorial estão disponíveis no National Centers for Environmental Information (NCEI). O NCEI é a principal autoridade em dados ambientais nos EUA e oferece dados de alta qualidade sobre clima, ecossistemas e recursos hídricos. O conjunto de dados Global Summary of the Year (GSOY) traz dados históricos de clima por cidade e estação. Para este tutorial, vamos usar dados de Berkeley, CA. Se preferir, você pode escolher outra cidade.
Os dados serão carregados com read_csv. O primeiro argumento é o caminho do arquivo e o segundo, col_select, informa ao R quais colunas você quer carregar. Note que este dataset contém várias variáveis, mas estamos interessados apenas em "DATE" e "TAVG". "DATE" traz o ano da observação da temperatura e "TAVG" é a temperatura média anual em graus Celsius. Para saber mais sobre as variáveis disponíveis, consulte o codebook do dataset.
A seguir, você vai imprimir o dataset e suas estatísticas descritivas para ter uma visão inicial dos dados. A função summary() do R informa que os dados vão de 1893 a 2019 e que a menor temperatura média anual observada em Berkeley, CA, nesse período foi 12,9 ºC. A maior média foi 15,93 ºC.
summary(df) DATE TAVG Min. :1893 Min. :12.901st Qu.:19261st Qu.:13.50 Median :1956 Median :13.91 Mean :1956 Mean :13.973rd Qu.:19853rd Qu.:14.33 Max. :2019 Max. :15.93NA's :33Tecnologia
Passo 2: tratando valores ausentes
A função summary() revelou que há 33 temperaturas ausentes. Você também pode verificar NAs de uma variável específica usando a função is.na(), que retorna TRUE se a observação for NA. Em seguida, é possível somar todos os valores ausentes. A função sum() converte TRUE em 1.
print(paste("There are", sum(is.na(df$TAVG)),"missing values in this dataset."))[1]"There are 33 missing values in this dataset."Tecnologia
Como estamos trabalhando com uma série temporal, vamos preencher os valores ausentes com interpolação linear. Esse método assume que os dados variaram linearmente durante o período ausente. Aliás, quando você plota uma série temporal com um gráfico de linhas, os intervalos entre as observações, mesmo quando não há dados faltantes, também são preenchidos com uma linha reta conectando os pontos.
Para fazer a interpolação linear, vamos usar o pacote imputeTS. Depois de instalar e carregar a biblioteca, você pode usar na_interpolation() para preencher os valores ausentes. Passe dois argumentos: primeiro, a coluna do dataframe que você quer tratar e, segundo, o método a ser usado na imputação.
Uma visualização no ggplot2 é construída por camadas. Como na figura abaixo, cada camada contém um objeto geom — ou seja, um elemento que você vê no gráfico (linhas, pontos, etc.).
Primeiro, você precisa passar um dataset para a função ggplot(). Depois, vai mapear variáveis para estéticas — propriedades visuais de um objeto geom. Exemplos de estéticas são a posição no eixo x, a posição no eixo y, a cor e o tamanho. Para saber mais sobre ggplot, confira o curso Introduction to Data Visualization with ggplot2, do Rick Scavetta, com quem aprendi bastante sobre visualização de dados.
Camadas do ggplot2. Imagem criada pelo autor.
A seguir, nosso mapeamento (aes()) informa ao ggplot que a posição no eixo x depende da variável "DATE" e a posição no eixo y depende da temperatura. Note que, se você plotar apenas essa camada, o ggplot mostrará somente os eixos.
Antes de começar a usar o ggplot, vamos definir algumas configurações globais para aplicar a todos os gráficos. A primeira é o tamanho e a resolução. A segunda é o tema.
Agora você pode adicionar uma segunda camada com pontos indicando as temperaturas ao longo do tempo. Note que dá para adicionar a camada ao gráfico criado no passo anterior.
Por fim, você pode adicionar uma terceira camada com as linhas. É importante destacar que alguns autores afirmam que as linhas não representam dados observados e devem ser usadas com cuidado. Para uma discussão completa, consulte o capítulo 13 de Fundamentals of Data Visualization, de Claus O. Wilke.
Nesta seção, você vai aprender a personalizar seu gráfico para deixá-lo claro, informativo e bonito.
Para tornar o aumento de temperatura mais visível, vamos mapear a estética de cor dos pontos também para "TAVG". Como é uma variável numérica, o ggplot2 usará um gradiente para representar valores contínuos como cores. Você pode escolher qual cor representa temperaturas baixas e altas com a função scale_color_gradient().
Além disso, você pode definir os rótulos dos eixos x e y com xlab() e ylab(), respectivamente. Um título pode ser adicionado com ggtitle(). Por fim, vamos aumentar o tamanho dos pontos e adicionar transparência para dar visibilidade a dados sobrepostos.
ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size =7, alpha =0.8)+scale_color_gradient(name ="ºC", low ="#47BEFB", high ="#ED6AA8")+ggtitle("Tendência histórica da temperatura do ar em Berkeley, CA")+xlab("Ano")+ylab("Temperatura média anual em Berkeley [ºC]")Tecnologia
Edward Tufte, referência em visualização de dados, recomenda maximizar a proporção de tinta usada para exibir dados não redundantes. Segundo ele, isso deixa o gráfico mais claro e evita distrair o leitor.
O tema do ggplot2 que estamos usando (theme_bw()) já vai nessa direção, mas ainda podemos eliminar as grades do painel no gráfico acima. Para isso, use a função theme() e passe dois argumentos: panel.grid.minor = element_blank() e panel.grid.major = element_blank().
ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size =7, alpha =0.8)+scale_color_gradient(name ="ºC", low ="#47BEFB", high ="#ED6AA8")+ggtitle("Tendência histórica da temperatura do ar em Berkeley, CA")+xlab("Ano")+ylab("Temperatura média anual em Berkeley [ºC]")+theme(# Elimina as grades: panel.grid.minor = element_blank(), panel.grid.major = element_blank())Tecnologia
Passo 5: criando um tema do ggplot2 para sua visualização
Agora você vai aprender a criar seu próprio tema no ggplot2. Como exemplo, vamos criar um theme_datacamp() para deixar o gráfico mais alinhado e harmonioso com o site da DataCamp.
Primeiro, criamos uma lista com algumas cores da DataCamp para usar depois.
datacamp_colors <- list(green ="#74F065", darkblue ="#05192D", blue ="#47BEFB", pink ="#ED6AA8")Tecnologia
Em seguida, vamos carregar a fonte do Google chamada "Manjari" para usar no nosso tema. Você pode carregá-la facilmente com o pacote "showtext". Se ainda não tiver, instale-o.
Logo abaixo, carregamos o pacote e usamos a função font_add_google() para carregar a "Manjari". Também informamos ao R para renderizar textos usando o "showtext" com showtext_auto():
Agora, vamos usar theme() para personalizar o gráfico. A figura abaixo mostra alguns dos argumentos disponíveis. Para a lista completa, consulte a referência do ggplot2.
Argumentos do tema. Imagem criada pelo autor.
Você pode criar um novo tema com uma função que chama a função theme() do ggplot2 contendo suas especificações personalizadas. Note que partimos do tema preto e branco (theme_bw()) e então eliminamos as grades e alteramos as cores do fundo, do painel e dos textos. Além disso, adicionamos uma margem de 0,5 cm ao gráfico. Para facilitar mudanças futuras, criamos dois argumentos para o usuário especificar as cores desejadas de texto/painel e de fundo.
theme_datacamp <-function(text_panel_color, background_color){ theme_bw()+ theme(text=element_text(size=28, family="Manjari", face ="bold", color = text_panel_color),# Eliminates grids panel.grid.minor = element_blank(), panel.grid.major = element_blank(), # Changes panel, plot and legend background to dark blue panel.background = element_rect(fill = background_color), plot.background = element_rect(fill = background_color), legend.background = element_rect(fill= background_color), # Changes legend texts color to white legend.text = element_text(color = text_panel_color, margin = margin(0, 0, 0, -0.5, "cm")), legend.title = element_text(color = text_panel_color), legend.text.align = 0, # Changes color of plot border to white panel.border = element_rect(size = 1, color = text_panel_color), # Changes color of axis texts to white axis.text.x = element_text(color = text_panel_color), axis.text.y = element_text(color = text_panel_color), axis.title.x = element_text(color= text_panel_color), axis.title.y = element_text(color= text_panel_color), # Changes axis ticks color to white axis.ticks.y = element_line(color = text_panel_color), axis.ticks.x = element_line(color = text_panel_color), # Adds margin plot.margin = margin(1, 1, 1, 1, "cm") )}Tecnologia
Agora, basta adicionar theme_datacamp() ao seu gráfico, especificando as cores preferidas. Aqui, usei as cores da DataCamp:
ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size =7, alpha =0.8)+scale_color_gradient(name ="ºC", low = datacamp_colors$blue, high = datacamp_colors$pink)+ggtitle("Tendência histórica da temperatura do ar em Berkeley, CA")+xlab("Ano")+ylab("Temperatura média anual em Berkeley [ºC]")+theme_datacamp(text_panel_color = datacamp_colors$green, background_color = datacamp_colors$darkblue)Tecnologia
Por fim, você pode exibir a tendência de temperatura com um suavizador LOESS (locally estimated scatterplot smoothing), como recomendado por Claus O. Wilke no capítulo 14 de Fundamentals of Data Visualization. Para isso, adicione uma camada no ggplot com o elemento geom_smooth().
ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size =7, alpha =0.8)+geom_smooth(color = datacamp_colors$green, se =FALSE)+scale_color_gradient(name ="ºC", low = datacamp_colors$blue, high = datacamp_colors$pink)+ggtitle("Tendência histórica da temperatura do ar em Berkeley, CA", subtitle ="Visualização usando theme_datacamp()")+xlab("Ano")+ylab("Temperatura média anual em Berkeley [ºC]")+theme_datacamp(text_panel_color = datacamp_colors$green, background_color = datacamp_colors$darkblue)Tecnologia
Sinta-se à vontade para testar outras combinações de cores e fontes para criar visualizações ainda mais convincentes. Abaixo, por exemplo, eu mudo a curva LOESS, o painel e a cor do texto para branco.
ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size =7, alpha =0.8)+geom_smooth(color ="white", se =FALSE)+scale_color_gradient(name ="ºC", low = datacamp_colors$blue, high = datacamp_colors$pink)+ggtitle("Tendência histórica da temperatura do ar em Berkeley, CA", subtitle ="Visualização usando theme_datacamp()")+xlab("Ano")+ylab("Temperatura média anual em Berkeley [ºC]")+theme_datacamp(text_panel_color ="white", background_color = datacamp_colors$darkblue)Tecnologia
Conclusão
Neste tutorial, você aprendeu a usar ggplot2 no R para visualizar dados climáticos históricos de forma eficaz. Passamos por tudo: desde a busca por dados confiáveis até a criação de um tema personalizado no ggplot2 — preparando você para aumentar a conscientização sobre mudanças climáticas por meio da visualização de dados.
Como próximo passo, aprofunde-se em visualização de dados e programação em R com os cursos da DataCamp Introduction to Data Visualization with ggplot2 e Intermediate R. Eles vão ajudar você a evoluir as habilidades que adquiriu aqui e a encarar projetos mais complexos.
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.
Este tutorial é uma valiosa contribuição da nossa comunidade e foi editado pela DataCamp para garantir clareza e precisão.
Quer compartilhar sua própria experiência? Vamos adorar ouvir você! Envie seus artigos ou ideias pelo nosso formulário de contribuições da comunidade.
"O aquecimento global não é uma previsão. Está acontecendo" - James Hansen
As mudanças climáticas são um tema urgente que nos afeta a todos, e a visualização de dados pode ser uma ferramenta poderosa para aumentar a conscientização. Neste tutorial passo a passo, você vai aprender a usar ggplot2 no R para criar visualizações impactantes de dados climáticos históricos. Ao final, você saberá como encontrar conjuntos de dados curados, plotar dados históricos de clima e personalizar seus gráficos para contar uma história envolvente.
As mudanças climáticas são um tema urgente que nos afeta a todos, e a visualização de dados pode ser uma ferramenta poderosa para aumentar a conscientização. Neste tutorial passo a passo, você vai aprender a usar ggplot2 no R para criar visualizações impactantes de dados climáticos históricos. Ao final, você saberá como encontrar conjuntos de dados curados, plotar dados históricos de clima e personalizar seus gráficos para contar uma história envolvente.
Neste tutorial, você vai aprender onde encontrar dados históricos de temperatura confiáveis e curados e como visualizá-los com ggplot2.
Passo 1: encontrando e carregando os dados
Os dados para este tutorial estão disponíveis no National Centers for Environmental Information (NCEI). O NCEI é a principal autoridade em dados ambientais nos EUA e oferece dados de alta qualidade sobre clima, ecossistemas e recursos hídricos. O conjunto de dados Global Summary of the Year (GSOY) traz dados históricos de clima por cidade e estação. Para este tutorial, vamos usar dados de Berkeley, CA. Se preferir, você pode escolher outra cidade.
Os dados serão carregados com
read_csv. O primeiro argumento é o caminho do arquivo e o segundo,col_select, informa ao R quais colunas você quer carregar. Note que este dataset contém várias variáveis, mas estamos interessados apenas em "DATE" e "TAVG". "DATE" traz o ano da observação da temperatura e "TAVG" é a temperatura média anual em graus Celsius. Para saber mais sobre as variáveis disponíveis, consulte o codebook do dataset.A seguir, você vai imprimir o dataset e suas estatísticas descritivas para ter uma visão inicial dos dados. A função
summary()do R informa que os dados vão de 1893 a 2019 e que a menor temperatura média anual observada em Berkeley, CA, nesse período foi 12,9 ºC. A maior média foi 15,93 ºC.Passo 2: tratando valores ausentes
A função
summary()revelou que há 33 temperaturas ausentes. Você também pode verificar NAs de uma variável específica usando a funçãois.na(), que retorna TRUE se a observação for NA. Em seguida, é possível somar todos os valores ausentes. A funçãosum()converte TRUE em 1.Como estamos trabalhando com uma série temporal, vamos preencher os valores ausentes com interpolação linear. Esse método assume que os dados variaram linearmente durante o período ausente. Aliás, quando você plota uma série temporal com um gráfico de linhas, os intervalos entre as observações, mesmo quando não há dados faltantes, também são preenchidos com uma linha reta conectando os pontos.
Para fazer a interpolação linear, vamos usar o pacote imputeTS. Depois de instalar e carregar a biblioteca, você pode usar
na_interpolation()para preencher os valores ausentes. Passe dois argumentos: primeiro, a coluna do dataframe que você quer tratar e, segundo, o método a ser usado na imputação.Passo 3: criando a primeira versão do gráfico
Uma visualização no ggplot2 é construída por camadas. Como na figura abaixo, cada camada contém um objeto geom — ou seja, um elemento que você vê no gráfico (linhas, pontos, etc.).
Primeiro, você precisa passar um dataset para a função ggplot(). Depois, vai mapear variáveis para estéticas — propriedades visuais de um objeto geom. Exemplos de estéticas são a posição no eixo x, a posição no eixo y, a cor e o tamanho. Para saber mais sobre ggplot, confira o curso Introduction to Data Visualization with ggplot2, do Rick Scavetta, com quem aprendi bastante sobre visualização de dados.
Camadas do ggplot2. Imagem criada pelo autor.
A seguir, nosso mapeamento (
aes()) informa ao ggplot que a posição no eixo x depende da variável "DATE" e a posição no eixo y depende da temperatura. Note que, se você plotar apenas essa camada, o ggplot mostrará somente os eixos.Antes de começar a usar o ggplot, vamos definir algumas configurações globais para aplicar a todos os gráficos. A primeira é o tamanho e a resolução. A segunda é o tema.
Agora você pode adicionar uma segunda camada com pontos indicando as temperaturas ao longo do tempo. Note que dá para adicionar a camada ao gráfico criado no passo anterior.
Por fim, você pode adicionar uma terceira camada com as linhas. É importante destacar que alguns autores afirmam que as linhas não representam dados observados e devem ser usadas com cuidado. Para uma discussão completa, consulte o capítulo 13 de Fundamentals of Data Visualization, de Claus O. Wilke.
Passo 4: personalizando seu gráfico
Nesta seção, você vai aprender a personalizar seu gráfico para deixá-lo claro, informativo e bonito.
Para tornar o aumento de temperatura mais visível, vamos mapear a estética de cor dos pontos também para "TAVG". Como é uma variável numérica, o ggplot2 usará um gradiente para representar valores contínuos como cores. Você pode escolher qual cor representa temperaturas baixas e altas com a função
scale_color_gradient().Além disso, você pode definir os rótulos dos eixos x e y com
xlab()eylab(), respectivamente. Um título pode ser adicionado comggtitle(). Por fim, vamos aumentar o tamanho dos pontos e adicionar transparência para dar visibilidade a dados sobrepostos.Edward Tufte, referência em visualização de dados, recomenda maximizar a proporção de tinta usada para exibir dados não redundantes. Segundo ele, isso deixa o gráfico mais claro e evita distrair o leitor.
O tema do ggplot2 que estamos usando (
theme_bw()) já vai nessa direção, mas ainda podemos eliminar as grades do painel no gráfico acima. Para isso, use a funçãotheme()e passe dois argumentos:panel.grid.minor = element_blank()epanel.grid.major = element_blank().Passo 5: criando um tema do ggplot2 para sua visualização
Agora você vai aprender a criar seu próprio tema no ggplot2. Como exemplo, vamos criar um
theme_datacamp()para deixar o gráfico mais alinhado e harmonioso com o site da DataCamp.Primeiro, criamos uma lista com algumas cores da DataCamp para usar depois.
Em seguida, vamos carregar a fonte do Google chamada "Manjari" para usar no nosso tema. Você pode carregá-la facilmente com o pacote "showtext". Se ainda não tiver, instale-o.
Logo abaixo, carregamos o pacote e usamos a função
font_add_google()para carregar a "Manjari". Também informamos ao R para renderizar textos usando o "showtext" comshowtext_auto():Agora, vamos usar
theme()para personalizar o gráfico. A figura abaixo mostra alguns dos argumentos disponíveis. Para a lista completa, consulte a referência do ggplot2.Argumentos do tema. Imagem criada pelo autor.
Você pode criar um novo tema com uma função que chama a função
theme()do ggplot2 contendo suas especificações personalizadas. Note que partimos do tema preto e branco (theme_bw()) e então eliminamos as grades e alteramos as cores do fundo, do painel e dos textos. Além disso, adicionamos uma margem de 0,5 cm ao gráfico. Para facilitar mudanças futuras, criamos dois argumentos para o usuário especificar as cores desejadas de texto/painel e de fundo.Agora, basta adicionar
theme_datacamp()ao seu gráfico, especificando as cores preferidas. Aqui, usei as cores da DataCamp:Por fim, você pode exibir a tendência de temperatura com um suavizador LOESS (locally estimated scatterplot smoothing), como recomendado por Claus O. Wilke no capítulo 14 de Fundamentals of Data Visualization. Para isso, adicione uma camada no ggplot com o elemento
geom_smooth().Sinta-se à vontade para testar outras combinações de cores e fontes para criar visualizações ainda mais convincentes. Abaixo, por exemplo, eu mudo a curva LOESS, o painel e a cor do texto para branco.
Conclusão
Neste tutorial, você aprendeu a usar ggplot2 no R para visualizar dados climáticos históricos de forma eficaz. Passamos por tudo: desde a busca por dados confiáveis até a criação de um tema personalizado no ggplot2 — preparando você para aumentar a conscientização sobre mudanças climáticas por meio da visualização de dados.
Como próximo passo, aprofunde-se em visualização de dados e programação em R com os cursos da DataCamp Introduction to Data Visualization with ggplot2 e Intermediate R. Eles vão ajudar você a evoluir as habilidades que adquiriu aqui e a encarar projetos mais complexos.