You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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):d1(整体黑色密度线)
  • 分组着色密度图(d2):d2(按b分组着色的密度图)

内容的提问来源于stack exchange,提问作者keenan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:45:03