2024年3月,Nature Medicine(IF:58.7,2023-2024) 上发表了一篇名为“与 65 岁以上中国成年人热浪死亡率相关的危险因素”原始研究文章。
这篇文章的图非常有意思,在回归图中,作者没有采用传统的表格来呈现结果,而是采用了森林图来展示回归结果,我们来看看这篇文章的回归图
我们以这张图为例,我们来尝试复现一下这张图
1.首先,构建我们的数据表,如下所示
2.导入进Rstudio
# 加载必要的R包
library(ggplot2)
#导入数据
df_grouped <- read.csv("示例数据.csv")
# 生成森林图
p <- ggplot(df_grouped, aes(x = variable, y = estimate, ymin = lower, ymax = upper, color = group)) +
geom_pointrange(position = position_dodge(width = 0.5), size = 0.8) + # 绘制点和线段,展示效应值和置信区间
geom_errorbar(width = 0.2, position = position_dodge(width = 0.5), linewidth = 0.8) + # 绘制误差条
geom_point(position = position_dodge(width = 0.5), size = 3, shape = 18) + # 绘制点,代表效应估计值
coord_flip() + # 翻转坐标轴,使图像水平显示
scale_color_manual(values = c("Without assistance" = "#2e974e", "Partial assistance" = "#00A1E1", "Full assistance" = "#C52A20")) + # 自定义颜色
labs(x = "", y = "HR", color = "") + # 设置坐标轴标签和图例
geom_hline(yintercept = 1.0, linetype = "dashed", color = "black", linewidth = 0.8) + # 添加基准线(HR = 1)
theme_classic() +
theme(
axis.text.x = element_text(size = 12), # 设置x轴标签字体大小
axis.text.y = element_text(size = 12), # 设置y轴标签字体大小
axis.title.y = element_blank(), # 隐藏y轴标题
legend.position = "top", # 将图例放置在顶部
legend.text = element_text(size = 12), # 设置图例字体大小
legend.key = element_blank(), # 移除图例的背景框
panel.grid.major.y = element_line(color = "grey", linetype = "dotted") # 添加水平虚线
)
# 显示图形
print(p)
3.查看结果
是不是和原图一模一样呢?
Comments 2 条评论
博主 Ubanillx
博主 北斗
嘻嘻