# Load required libraries
library(readxl)
library(dplyr)
library(ggplot2)
library(scales)
library(tidyr)

# Step 1: Load the cleaned temperature data
df <- read_excel("D:/thesis/cleaned_temperature_data.xlsx") 

# Step 2: Convert 'Min_Temperature' to numeric
df <- df %>%
  mutate(Min_Temperature = as.numeric(Min_Temperature))

# Step 3: Reshape the data to long format
df_long <- df %>%
  pivot_longer(cols = c(Max_Temperature, Min_Temperature), 
               names_to = "Type", 
               values_to = "Temperature")

# Step 4: Ensure Month is an ordered factor for proper sequencing
df_long$Month <- factor(df_long$Month, 
                        levels = c("Jan", "Feb", "Mar", "Apr", "May", "Jun", 
                                   "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"),
                        ordered = TRUE)

# Step 5: Create the line graph with facets for months in order
ggplot(df_long, aes(x = Year, y = Temperature, color = Type, group = Type)) +
  geom_line(size = 1) +  # Add lines
  geom_point(size = 2) +  # Add points
  facet_wrap(~ Month, scales = "free_y", nrow = 3, ncol = 4) +  # Correct sequence of months
  labs(title = "Monthly Temperature Trends Over Years",
       x = "Year", y = "Temperature (°C)") +
  scale_y_continuous(breaks = scales::pretty_breaks(n = 10)) +  # Proper Y-axis
  scale_x_continuous(breaks = seq(min(df$Year, na.rm = TRUE), max(df$Year, na.rm = TRUE), by = 1)) +  # Remove decimals in Year
  scale_color_manual(values = c("Max_Temperature" = "red", "Min_Temperature" = "blue")) +  # Color mapping
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))  # Rotate X-axis labels for clarity