Comme je vois que tu es en forme, je te soumets un truc que je n’ai pas réussi à faire :
Sur ton graphique comme sur le mien, les noms de mois sont centrés sur la marque (tick) correspondant au premier jour du mois. Comment faire pour que le nom soit au milieu du mois ?
Ah et sinon je vois qu’il y a un virus dans ton ordi, il apparaît dans les informations de session, ligne 4. On s’en occupera à la prochaine rencontre…
C’est bizarre @marcandre le volume que ça prends chez toi. Toute mon installation R fait 190 Mo, et c’est moins au téléchargement vu que les paquets sont compressés. Tu as installé les paquets des dépôts de ta distribution ?
Je ne me risquerais pas à interpréter ce graphique ici. Il y a beaucoup trop de biais possibles dans ces données et dans leurs interactions.
Rappelez-vous que corrélation n’est pas causalité
Donc DTEND et DTSTART ce sont les noms des colonnes de ic_read("fr-en-calendrier-scolaire.ics") qui correspondent au début et fin des vacances scolaires. Est-ce que tu peux donner le résultat de juste cette partie de la ligne de commande ?
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 ?
Alors, ca donnait la meme erreur obscure. J’ai ouvert le fichier, et c’etait une vieille page d’erreur HTML. Apres recuperation du bon fichier, ca marche!
J’adore la fraicheur de votre page d’accueil ! Bravo !
Une vraie scientifique qui a de la créativité, cela ne court pas les rues…
Est-ce que vous connaissez Snap*!* ? Cela devrait vous plaire.
Il faudra programmer vos propres fonctions statistiques, mais je pense que cela vaut la peine d’y jeter un coup d’oeil (peut-être un peu approfondi).
Voici quelques exemples en image ici
Oui il faudrait laisser les marques là où elles sont (début/fin de mois), et décaler uniquement les textes. Peut être avec l’équivalent ggplot de text(), à voir…
C’est la première idée que j’ai eue
dans theme(..., axis.text.x = element_text(hjust = 0)), de mémoire
Mais ça se cale jamais pile au milieu tu vois (il faut bidouiller entre la valeur de hjust et la taille de la figure en sortie), j’ai pas cherché plus loin du coup.
Merci beaucoup pour les infos ! Je connais un tout petit peu oui, et je jetterai un œil un peu plus à l’occasion, par curiosité.
Seulement, je n’ai pas la force de même imaginer recoder des fonctions stats de R dans un autre langage !