Objetivo: Visualizar dados de precipitação (em barras) e temperatura média (em linha) em um mesmo gráfico, utilizando dois eixos Y (um para cada variável). Fonte dos dados: Obtive os dados no site do INMET: https://mapas.inmet.gov.br/ Nessa página, há um mapa com diversas estações meteorológicas espalhadas pelo Brasil. Basta escolher a estação que melhor representa o clima da sua área de estudo e fazer o download dos dados.
Pré-processamento: Depois de baixar os dados, calculei a média mensal da temperatura e a soma mensal da precipitação diretamente no Excel. Em seguida, exportei os dados já organizados para o R, prontos para a visualização no gráfico. ENCAMINHAREI MEUS DADOS PARA VIZUALIZAÇÃO DE COMO OS DADOS FICARAM ORGANIZADOS
# Carrega todos os pacotes necessários
library(tidyverse)
# Pasta onde está meus dados,troque para sua pasta onde estão seus dados
setwd("C:/Users/55669/Dropbox/Mestrado/Brincando de R/Monografia Elliza")
# Puxando os dados da pasta
dados1<-read.table("climafeito.txt", h=T)
# Garante que os meses apareçam no eixo X na ordem original do arquivo
dados1$mes <- factor(dados1$mes, levels = unique(dados1$mes))
# Cria o gráfico: barras = precipitação, linha/pontos = temperatura
ggplot(dados1, aes(x = mes)) +
# Adiciona as barras da precipitação (mm)
geom_bar(aes(y = precip), stat = "identity", fill = "blue4", width = 0.7) +
# Adiciona a linha da temperatura (temperatura multiplicada por 10 para caber na mesma escala do gráfico)
geom_line(aes(y = mediatemp * 10, group = 1), color = "black", size = 1.4) +
# Adiciona pontos pretos sobre a linha da temperatura
geom_point(aes(y = mediatemp * 10), color = "black", size = 3) +
# Define dois eixos Y: um para precipitação (esquerda) e outro para temperatura (direita)
scale_y_continuous(
name = "Precipitação (mm)",
sec.axis = sec_axis(~./10, name = "Temperatura (°C)") # Corrige escala da temperatura (divide por 10)
) +
# Aplica um tema visual minimalista
theme_minimal() +
# Remove o nome do eixo X
labs(x = "") +
# Ajusta estilos dos textos dos eixos
theme(
axis.title.y = element_text(color = "black", size = 28, face = "bold"),
axis.title.y.right = element_text(color = "black", size = 28, face = "bold"),
axis.text.y.left = element_text(color = "black", size = 24, face = "bold"),
axis.text.y.right = element_text(color = "black", size = 24, face = "bold"),
axis.text.x = element_text(color = "black", size = 20, face = "bold", angle = 45, hjust = 1)
)