Worcester  <- seasonalts("Climate_Northeast_WorcesterMA 6-16-19.xlsx", "Worcester")
## New names:
## New names:
## New names:
## New names:
## • `` -> `...2`
NewHaven   <- seasonalts("Climate_Northeast_NewHavenCT.xlsx", "New Haven")
## New names:
## • `` -> `...2`
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `Year = as.numeric(Year)`.
## Caused by warning:
## ! NAs introduced by coercion
## New names:
## New names:
## • `` -> `...2`
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `Year = as.numeric(Year)`.
## Caused by warning:
## ! NAs introduced by coercion
## New names:
## • `` -> `...2`
Warwick <- seasonalts("Climate_Northeast_WarwickRI.xlsx", "Warwick")
## New names:
## New names:
## New names:
## New names:
## • `` -> `...2`
all_avg <- bind_rows(Worcester, NewHaven, Warwick)

p <- ggplot(
  all_avg,
  aes(x = Year, y = Avg, color = City, linetype = Month,
      group = interaction(City, Month))
) +
  geom_line(linewidth = 1) +
  theme_classic() +
  scale_x_continuous(
    breaks = seq(min(all_avg$Year, na.rm = TRUE),
                 max(all_avg$Year, na.rm = TRUE),
                 by = 5)
  ) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  labs(
    x = "Year",
    y = "Average Temperature",
    title = "Average Temperature by City and Season",
    color = "City",
    linetype = "Month"
  )

ggplotly(p)