Faire pleuvoir (des points de données)
La bi‑modalité plus marquée que l’on observe en début de semaine pourrait être intéressante, mais il vaut mieux tracer les points individuels sous les densités pour comprendre comment la KDE interpole, avant d’en rester là.
Nous avons ajouté au code des exercices précédents une géométrie de points pour faire exactement cela. Vous verrez que le rendu n’est pas très satisfaisant. Pour l’améliorer, nous allons procéder en plusieurs étapes…
D’abord, diminuez légèrement les alpha des points pour visualiser les recouvrements. Ensuite, remplacez la forme des points par des traits verticaux à la manière de geom_rug() ('|').
À ce stade, si vous exécutez le code, vous verrez que les points chevauchent maladroitement les densités. Nous devons « pousser » les petits traits un peu vers le bas sur l’axe des y. Pour cela, utilisez l’argument position avec la fonction utilitaire position_nudge().
Cet exercice fait partie du cours
Bonnes pratiques de visualisation avec R
Instructions
- Réduisez
alphades points à0.2pour rendre le recouvrement visible. - Modifiez la
shapedes lignes en'|'pour une utilisation plus efficace de l’espace. - Décalez les points vers le bas pour éviter le chevauchement avec la densité :
position = position_nudge(y = -0.05).
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
md_speeding %>%
mutate(day_of_week = factor(day_of_week, levels = c("Mon","Tues","Wed","Thu","Fri","Sat","Sun") )) %>%
ggplot(aes( x = percentage_over_limit, y = day_of_week)) +
geom_point(
# make semi-transparent with alpha = 0.2
# turn points to vertical lines with shape = '|'
# nudge the points downward by 0.05
) +
geom_density_ridges(bandwidth = 3.5, alpha = 0.7) +
scale_x_continuous(limits = c(0,150), expand = c(0,0)) +
labs(subtitle = 'Guassian kernel SD = 3.5') +
theme( axis.ticks.y = element_blank() )