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

如何使用R语言复现效应估计的分面分组森林图?

复现分面效应估计森林图

1. 准备工作:加载依赖包

首先安装并加载ggplot2,这是绘制该图的核心工具:

install.packages("ggplot2")
library(ggplot2)

2. 数据标签替换

根据你给出的对应关系,把数据中的编码标签替换为实际名称:

# 替换Level的数字编码为对应名称
effect_data$Level <- factor(
  effect_data$Level,
  levels = 1:4,
  labels = c("TM", "RC", "S2", "S1")
)

# 替换M1的字母编码为对应分组名(示例补充了你提到的3个,剩余9个可自行修改)
effect_data$M1 <- factor(
  effect_data$M1,
  levels = letters[1:12],
  labels = c("Fladen", "Landsort", "Utlagan",
             "Group4", "Group5", "Group6",
             "Group7", "Group8", "Group9",
             "Group10", "Group11", "Group12")
)

3. 绘制分面森林图

这个图的正式名称是分面森林图(Faceted Forest Plot),代码如下:

ggplot(effect_data, aes(x = EffectEstimate, y = M1)) +
  # 添加效应为0的参考虚线
  geom_vline(xintercept = 0, linetype = "dashed", color = "gray50") +
  # 绘制置信区间
  geom_errorbarh(aes(xmin = LowerCI, xmax = UpperCI), height = 0.2, color = "black") +
  # 绘制效应估计点
  geom_point(size = 2, color = "#1f77b4") +
  # 按Level变量分面,可通过ncol调整列数
  facet_wrap(~ Level, ncol = 1) +
  # 设置坐标轴标签
  labs(x = "效应估计值(95%置信区间)", y = "分组") +
  # 使用简洁主题并调整样式
  theme_bw() +
  theme(
    strip.background = element_rect(fill = "#f0f0f0"),
    strip.text = element_text(face = "bold"),
    axis.text.y = element_text(size = 10),
    axis.title = element_text(size = 12, face = "bold")
  )

自定义调整提示

  • 若想改变分面布局,修改facet_wrap中的ncol参数(比如ncol=2会变成2列布局)。
  • 可以调整geom_point的color/size、geom_errorbarh的color来匹配目标图的样式。
  • 如果需要更紧凑的布局,可添加theme(panel.spacing = unit(0.5, "lines"))调整分面间距。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 18:13:18