library(ggplot2)
library(ggridges)
set.seed(123)
<- data.frame(
df category = factor(rep(LETTERS[1:3], each = 100)),
value = c(rnorm(100, 0), rnorm(100, 1), rnorm(100, 2))
)
# 调整 density_ridges 的 scale 参数,并设置点的位置
ggplot(df, aes(x = value, y = category)) +
geom_density_ridges(
aes(fill = category),
scale = 0.4, # 控制密度图的高度(较小值会使密度图更扁平)
rel_min_height = 0.01 # 设置最小高度以避免尾部过长
+
) geom_point(aes(color = category), size = 5, position = position_nudge(y = -0.2))
绘制点脊图
ggplot2
最近在绘制气泡图时,发现点太密集了,想再绘制一个核密度图,来展示数据的分布。
最先考虑的方案是:将geom_density()
和geom_point()
合并,创建一个新的geom
。由于没有创建过自定义的geom
,AI生成的结果不易修改,最终放弃。
最后想到了ggridges
包中可以分组单独绘制密度图,稍加修改得到最总的绘制结果。