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

在R中基于数据框绘制可分组分离的Raincloud图求助

问题:如何在R语言中绘制分组清晰的Raincloud图

需求说明

  • 基于dat_red数据框绘制Raincloud图
  • 主分组为Risk_Cyto(包含Intermediate、Poor、Good三个类别),每个主分组下再细分FAB亚型(包含M4、M0、M2、M1、M3、M5)
  • 目标效果:主分组与子分组清晰分离,避免元素堆叠混乱

数据与现有代码背景

  • 数据框:dat_red(已提供dput结构)
  • 已完成数据读取与预处理步骤
  • 现有绘图代码生成的图存在元素堆叠、分组无法区分的问题

解决方案建议

1. 统一设置分组偏移对齐

使用ggplot2结合ggdist绘制Raincloud图时,核心是给所有图层添加一致的position_dodge()参数,让同一主分组下的FAB子分组横向错开,避免重叠。示例代码如下:

library(ggplot2)
library(ggdist)

# 替换`your_value_column`为实际数值列名
ggplot(dat_red, aes(x = Risk_Cyto, y = your_value_column, fill = FAB, color = FAB)) +
  # 绘制半小提琴密度图
  ggdist::stat_halfeye(
    position = position_dodge(width = 0.7),
    adjust = 0.8,
    width = 0.6,
    justification = -0.2,
    point_color = NA
  ) +
  # 绘制箱线图
  geom_boxplot(
    width = 0.2,
    position = position_dodge(width = 0.7),
    outlier.shape = NA
  ) +
  # 绘制散点
  ggdist::stat_dots(
    position = position_dodge(width = 0.7),
    side = "left",
    justification = 1.1,
    binwidth = 0.2
  ) +
  # 美化坐标轴与主题
  labs(x = "细胞遗传学风险分组", y = "观测指标") +
  theme_minimal()

关键参数说明:

  • position_dodge(width = 0.7):给所有图层设置相同的偏移宽度,确保同一主分组下的子分组对齐且不重叠
  • justification:调整密度图和散点的位置,避免与箱线图堆叠

2. 固定分组展示顺序(可选)

如果需要自定义分组的展示顺序,可将因子列重新指定层级:

# 设定Risk_Cyto的展示顺序
dat_red$Risk_Cyto <- factor(dat_red$Risk_Cyto, levels = c("Good", "Intermediate", "Poor"))
# 设定FAB亚型的展示顺序
dat_red$FAB <- factor(dat_red$FAB, levels = c("M0", "M1", "M2", "M3", "M4", "M5"))

3. 优化视觉区分度(可选)

  • 使用scale_fill_brewer(palette = "Set2")或自定义颜色向量,让不同FAB亚型的颜色差异更明显
  • 微调width参数(密度图、箱线图的宽度),避免分组间过度拥挤

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:20:43