J’ai découvert cette semaine l’existance du package weathercan qui permet d’extraire directement à partir de R les données météo historiques des stations météorologique du Canada. Moi qui cherchait une façon de simplifier ma vie pour avoir accès a ces données, c’est juste parfait!
Donc, avec ces données, j’ai voulu monté une visualisation qui me permet de voir l’évolution de la tempétature, de l’humidité, de la vitesse du vent et des précipitations dans un même visuel. Voici donc comment je m’y suis prise:
#Historique des données
valcartier_hour <- weather_dl(station_ids = 29452, start = "2020-01-01") %>%
select(date,rel_hum, temp, wind_spd) %>%
group_by(date) %>%
summarise_all(mean, na.rm = TRUE)
valcartier_day <- weather_dl(station_ids = 29452,
start = "2020-01-01",interval = "day", quiet = TRUE) %>%
select(date, total_precip)
historique<-valcartier_hour %>%
left_join(valcartier_day, by="date") %>%
dplyr::rename(vent=wind_spd,
humidite=rel_hum,
temperature=temp,
vent=wind_spd,
precipitation=total_precip) %>%
gather(type, valeur, -date)
#Graphique
gg<-ggplot(historique, aes(x=date, y=valeur, group=type, color=type))
gg<-gg + geom_line(size=1)
gg<-gg + geom_ribbon(aes(x=date,ymax=valeur, fill=type),ymin=0,alpha=0.3)
gg<-gg + scale_color_manual(values=c("#731963", "#F0E100", "#7CB518", "#01BAEF"))
gg<-gg + scale_fill_manual(values=c("#731963", "#F0E100", "#7CB518", "#01BAEF"))
file_names <- list(
'humidite'="Humidité (%)",
'precipitation'="Précipitations (mm)",
'temperature'="Tempétature (°C)",
'vent'="Vent (km/h)")
file_labeller <- function(variable,value){
return(file_names[value])
}
gg<-gg + facet_wrap(.~type, scale="free", labeller = file_labeller)
#ajuster la légende
gg<-gg + theme(legend.position = "null")
#ajuster les axes
gg<-gg + scale_x_date(date_breaks = "1 week", date_labels = "%b %d", expand=c(0,0))
#modifier le thème
gg <- gg + theme(plot.background = element_rect(fill = "#171717"),
panel.background = element_rect(fill = "#171717"),
panel.grid.major.y= element_blank(),
panel.grid.major.x= element_blank(),
panel.grid.minor = element_blank(),
axis.line.x = element_line(color="white"),
axis.line.y = element_line(color="white"),
axis.ticks.x = element_blank(),
axis.ticks.y = element_blank())
#ajuster le facet_wrap
gg<-gg + theme(strip.background = element_blank(),
strip.text.x = element_text(color="white", size=19, hjust=0))
#ajouter les titres
gg<-gg + labs(title="Québec",
subtitle = " ",
x=" ",
y=" ")
gg<-gg + theme( plot.title = element_text(size=37, hjust=0,vjust=0.5, family="Tw Cen MT", color="white"),
plot.subtitle = element_blank(),
plot.caption = element_blank(),
axis.title.y = element_blank(),
axis.title.x = element_blank(),
axis.text.x = element_text(size=12, hjust=0.5,vjust=0.5, family="Tw Cen MT", color="white"),
axis.text.y = element_text(size=12, hjust=0.5,vjust=0.5, family="Tw Cen MT", color="white"))
date<-Sys.Date()
aspect_ratio <- 2
height <- 6
ggsave(paste0("~/Documents/ENTREPRISE/Projets R/Weather/Meteocode data/2020/", date,".png"),
height = height , width = height * aspect_ratio)