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

metafor包forest()函数绘制森林图时如何修改默认效应量标注文本

解决方法

方案1:内置参数快速修改

你要调整的两处文本可以通过修改模型属性+forest()内置参数实现:

  • 替换「Log Ratio of means」为「Log Response Ratio」:直接在forest()函数中添加xlab = "Log Response Ratio即可覆盖默认生成的x轴标题
  • 替换「Log [ROM]」为「LnR」:调用绘图函数前先修改rma.mv返回的模型对象的measure属性,metafor会自动读取该属性生成效应量缩写标注
Modsub <- rma.mv (yi = yi, V = vi,random= list(~ 1|ID_ES, ~ 1|ID_Study), data = subset_data)
# 新增:修改效应量缩写为自定义内容
Modsub$measure <- "LnR"

windows(height = 80, width = 50)
forest(Modsub,
       slab= subset_data$Author, 
       cex=2, 
       efac= 0.4,
       col= "grey", 
       mlab= "Gesamt-Effektschätzer", 
       header="Autor(en) und Jahr",
       # 新增:自定义x轴标题
       xlab = "Log Response Ratio")

如果该方案生成的缩写格式(默认会显示为Log [LnR])不符合你的要求,可使用自由度更高的方案2。

方案2:关闭默认标注后手动添加

你可以先关闭forest函数的默认x轴标注,再用R基础绘图的text()函数完全自定义文本内容和位置:

Modsub <- rma.mv (yi = yi, V = vi,random= list(~ 1|ID_ES, ~ 1|ID_Study), data = subset_data)

windows(height = 80, width = 50)
forest(Modsub,
       slab= subset_data$Author, 
       cex=2, 
       efac= 0.4,
       col= "grey", 
       mlab= "Gesamt-Effektschätzer", 
       header="Autor(en) und Jahr",
       # 关闭默认x轴标题
       xlab = NA)

# 手动添加自定义文本,x、y参数控制位置,可根据你的图大小灵活调整
# 添加底部x轴标题:Log Response Ratio(默认居中显示)
text(x = mean(par("usr")[1:2]), y = -2, labels = "Log Response Ratio", cex = 2, pos = 1)
# 添加效应量缩写:LnR
text(x = 0, y = -1, labels = "LnR", cex = 2)

注:手动添加时的y坐标数值需要和你设置的ylim匹配,如果你的森林图纳入研究数量多、ylim范围大,对应调大y的负数值即可调整到目标位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:18:00