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.查看结果

是不是和原图一模一样呢?

此作者没有提供个人介绍
最后更新于 2024-11-24