Pular para o conteúdo principal

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.
Atualizado 17 de set. de 2026  · 11 min lido

Explorar com IA

ChatGPTClaudePerplexity

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.

  • 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.

library(readr)2​3df <- read_csv('USC00040693.csv',4            col_select = c("DATE", "TAVG"))5​Rows: 118 Columns: 2── Column specification ────────────────────────────────────────────────────────Delimiter: ","dbl (2): DATE, TAVG

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.90   1st Qu.:1926   1st Qu.:13.50   Median :1956   Median :13.91   Mean   :1956   Mean   :13.97   3rd Qu.:1985   3rd Qu.:14.33   Max.   :2019   Max.   :15.93                  NA's   :33     

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."

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.

install.packages("imputeTS", quiet = TRUE)
library(imputeTS)Registered S3 method overwritten by 'quantmod':  method            from  as.zoo.data.frame zoo 
df$TAVG <- na_interpolation(df$TAVG, option ="linear")

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.

library(ggplot2)options(repr.plot.width = 10, repr.plot.height = 6, repr.plot.res = 150 )theme_set(theme_bw())
axes <- ggplot(data = df, aes(x = DATE, y = TAVG))axes

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.

dot_plot <- axes + geom_point()dot_plot

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.

dot_plot +geom_line()

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() 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]")

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())

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")

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.

install.packages("showtext", quiet = TRUE)

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():

library(showtext)font_add_google("Manjari")showtext_auto()Loading required package: sysfontsLoading required package: showtextdb

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")  )}

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)

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)

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)

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.

Tópicos
R
Data Analysis
Relacionado

Tutorial

Como fazer um histograma ggplot2 no R

Aprenda a criar um histograma ggplot2 no R. Crie histogramas no R com base na gramática dos gráficos.

Kevin Babitz

15 min

Tutorial

Tutorial de Pipes em R para iniciantes

Saiba mais sobre o famoso operador de pipe %>% e outros pipes no R, por que e como você deve usá-los e quais alternativas você pode considerar!
Karlijn Willems's photo

Karlijn Willems

15 min

Tutorial

Gráfico de linha de série temporal do Matplotlib

Este tutorial explora como criar e personalizar gráficos de linha de séries temporais no matplotlib.
Elena Kosourova's photo

Elena Kosourova

8 min

Tutorial

Introdução à plotagem com Matplotlib em Python

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.

Kevin Babitz

25 min

Tutorial

Tutorial de regressão linear no R

Neste tutorial, você aprenderá os fundamentos de um modelo estatístico muito popular: a regressão linear.

Eladio Montero Porras

15 min

Tutorial

Tutorial do Python Seaborn Line Plot: Criar visualizações de dados

Descubra como usar o Seaborn, uma biblioteca popular de visualização de dados em Python, para criar e personalizar gráficos de linha em Python.
Elena Kosourova's photo

Elena Kosourova

12 min

Ver MaisVer Mais