Faire pleuvoir des points de données
La bimodalité accrue que l'on observe au début de la semaine pourrait être intéressante, mais avant d'en rester là, dessinons des points individuels sous les densités pour mieux comprendre comment l'estimateur à noyau (KDE) interpole.
Nous avons ajouté au code des exercices précédents une géométrie de points pour faire exactement cela. Vous remarquerez que le rendu n'est pas très joli. Pour l'améliorer, nous allons faire quelques ajustements…
D'abord, réduisez légèrement l'alpha des points pour visualiser le chevauchement. Ensuite, changez la forme des points pour des lignes verticales de style geom_rug() ('|').
À ce stade, si vous exécutez le code, vous verrez que les points empiètent maladroitement sur les formes de densité. Il faut « pousser » un peu les traits vers le bas de l'axe des y. Pour ce faire, utilisez l'argument position avec la fonction utilitaire position_nudge().
Cette activité fait partie du cours
Les meilleures pratiques de visualisation avec R
Instructions de l’exercice
- Abaissez l'
alphades points à0.2pour montrer le chevauchement. - Changez la
shapede la ligne à'|'pour utiliser l'espace plus efficacement. - Descendez les points pour qu'ils n'empiètent pas sur la forme de densité avec
position = position_nudge(y = -0.05).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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() )