Dashboard Météo

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)

 

 

Publicités

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.