R语言如何实现按条件分组密度图与整体平均密度图叠加
实现方法
ggdensity来自ggpubr包,返回的是标准ggplot2对象,你可以直接在分组密度图的基础上叠加全局密度线图层,无需拆分创建两个图再合并,具体实现如下:
方法1:一次性构建合并图(推荐)
直接在ggdensity的调用后追加全局geom_density图层,指定独立数据源即可:
library(ggplot2) library(ggpubr) combined_plot <- ggdensity(biolReps, x = "a", color = "b", fill = "b", alpha = 0.6) + # 叠加全局黑色密度线,关闭继承避免分组映射干扰 geom_density(data = df, aes(x = a), color = "black", linewidth = 1.2, inherit.aes = FALSE)
参数说明:
alpha = 0.6:调低分组密度图的透明度,避免遮挡上方黑色线条inherit.aes = FALSE:不继承ggdensity中设置的按b分组的颜色映射,保证全局密度线为单一黑色linewidth:调整黑色线的粗细,突出显示叠加效果
方法2:复用已生成的d1、d2对象
如果你已经提前创建好了两个单独的绘图对象,可以直接提取d1的图层追加到d2上:
combined_plot <- d2 + d1$layers[[1]] + # 修正叠加图层的颜色为纯黑,避免和分组色冲突 scale_color_identity()
原有参考图
- 整体黑色密度图(d1):

- 分组着色密度图(d2):

内容的提问来源于stack exchange,提问作者keenan
相关产品推荐
相关产品推荐

