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

如何基于协变量调整前后的logistic回归结果绘制森林图

R语言ggplot2拆分协变量调整前后森林图的方法

预处理注意事项

  • 先统一治疗方案命名:原始数据中调整后的组4有小写的c,先统一改为大写C,避免被识别为不同治疗方案
  • 修正列名匹配:原有代码里CI的列名写为Low.CI和Up.CI,和原始数据的Low_CI、High_CI不一致,需要先对齐

修改后的完整代码

# 加载所需包
library(tidyverse)

# 预处理数据
data <- data %>%
  mutate(Treatment = str_to_upper(Treatment), # 统一治疗名大小写
         Sortnum = nrow(data) - as.numeric(rownames(data)),
         Label = fct_reorder(Treatment, Sortnum))

# 绘图代码
ggplot(data, aes(x=Label, y=OR, color = factor(Group))) +  
  geom_point(size=3) + # 放大点方便识别
  coord_flip() + 
  # 修正CI列名匹配原始数据
  geom_errorbar(aes(ymin=Low_CI, ymax=High_CI), width=0.2, linewidth=1, color = 'gray50')+ 
  ylab("OR(95% Confidence Interval)")+ 
  geom_hline(yintercept =1, linetype=2)+ 
  # 核心修改:按调整状态分面,调整前后完全拆分,也可以写成Adjustment~. 仅按调整状态分面
  facet_grid(Group~Adjustment, scales = "free_y", space = "free_y") + 
  scale_y_log10(breaks=c(0.2,0.4,0.6,0.8,1.0,1.2,1.4, 1.6,  2.0, 2.4),
                position="left",limits=c(0.2,2.5))+ 
  theme(panel.background = element_blank(), 
        axis.line = element_line(colour = "black"),
        axis.title=element_text(size=20),
        text = element_text(size=18), 
        axis.title.y=element_blank(),
        axis.text.x = element_text(colour="grey20",size=16),
        axis.text.y = element_text(colour="black",size=20), 
        legend.position=c(0.25, 0.2), 
        legend.title=element_blank(), 
        legend.text = element_text(size=16), 
        legend.background = element_rect(color = "black",fill = "white", size = 0.3, linetype = "solid"),
        # 美化分面标签,明确标识调整前后
        strip.text = element_text(size=16, face="bold"),
        strip.background = element_rect(fill="lightgray", color="black")
  )

核心修改说明

  • 移除了原代码中多余的geom_line:森林图不需要连线,不同治疗方案是独立指标,连线是造成不同结果混淆、出现无意义合并线条的核心原因
  • 调整分面规则:将原来仅按研究组Group分面,改为同时按调整状态Adjustment分面,系统会自动将调整前、调整后的结果拆分为独立的展示区域,完全不会混淆
  • 如果需要生成两张完全独立的调整前、调整后森林图,仅需要用filter(Adjustment == "Before")和filter(Adjustment == "After")拆分数据后分别运行绘图代码即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:36:03