Script para Criação de um Gráfico Climático (Climatograma)

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