让数据点"下雨"
周初出现的双峰趋势可能有说服力,但在收尾前,我们应该在密度曲线下方绘制单个数据点,这样可以直观看到 KDE 的插值在做什么。
在之前练习的代码基础上,已添加了点图层来实现这一点。您会注意到,现在的图并不好看。为了改进,我们要做几件事……
首先,稍微降低点的 alpha,以便观察重叠。其次,把点的形状切换为 geom_rug() 风格的竖线('|')。
此时如果运行代码,您会看到这些点与密度形状尴尬地相互遮挡。我们需要把刻度线在 y 轴方向上"轻推"一下。为此可使用 position 参数配合辅助函数 position_nudge()。
本练习是课程的一部分
R 中的可视化最佳实践
练习说明
- 将点的
alpha降到0.2,以展示重叠。 - 将线的
shape改为'|',以更高效地利用空间。 - 使用
position = position_nudge(y = -0.05)将点向下推,避免与密度形状重叠。
交互式实操练习
通过完成这段示例代码来试试这个练习。
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() )