On peut faire comme ça :
ggplot(covid_974) + # initialise le graphique
aes(x = jour, y = hosp) + # attribue un rôle aux variables de covid_974
geom_rect( # ajoute des rectangles bleus pour les vacances scolaires
data = vacances,
mapping = aes( # définit les rôles des variables du jeu de données vacances
xmin = as.Date(DTSTART), ymin = -Inf, # coins inférieurs gauches
xmax = as.Date(DTEND), ymax = Inf, # coins supérieurs droits
fill = "Vacances scolaires" # légende
),
inherit.aes = FALSE, # ne garde pas les rôles des variables de covid_974
alpha = 0.3
) +
geom_smooth( # ajoute la ligne rouge lissée
color = "red",
method = "loess",
formula = "y ~ x",
span = 0.04, # étendue du lissage
se = FALSE # pas de "ruban" de confiance
) +
geom_line(alpha = 0.5) + # ajoute la ligne grise avec les données brutes
scale_x_date( # modifie les paramètres par défaut de l'axe des x qui est de nature "date"
breaks = unique(as.Date(c(paste0(str_sub(covid_974$jour, end = 7), "-15")))),
# date_breaks = "month", # une graduation tous les mois
date_labels = "%b %y" # le label est le nom du mois en lettres abbrégé
) +
scale_fill_manual(values = "steelblue") + # choisi manuellement la couleur de remplissage
labs(
title = str_replace_all(fichier, pattern = "(-)|(.csv)", " "), # ajoute un titre (automatisé avec le nom du .csv)
x = NULL, # enlève le nom de l'axe x
y = "Nombre d'hospitalisations journalières", # modifie le nom de l'axe y
fill = NULL # enlève le titre de la légende pour le remplissage (fill)
) +
theme(legend.position = "bottom") # place la légence en bas du graphique
Mais déjà j’aime pas mon code pour le faire (ligne qui commence par breaks) : composition de 5 fonctions , et en plus je trouve que ça porte plus à confusion de mettre la graduation au 15 du mois, tu n’es pas d’accord ?
Wooo, tu as l’oeil ! J’espère qu’il n’est pas trop méchant ?