pythonic生物人

复现Nature 子刊图,换数据可用!

本次使用R语言复现一下Nature子刊中的1张分面图,信息集中、饱满、节约版面!

s41564-025-02077-6原图
s41564-025-02077-6原图
❤️复现效果图❤️
❤️复现效果图❤️

R语言复现

该图为分面图+散点图+统计值+拟合曲线+置信区间的组合图,下面一步步复现它!

  • 🔸geom_point + geom_smooth绘制基础图,该图重点在趋势:将shape设置为3+,alpha设置接近透明,
ggplot(data, aes(x = .data[[x_var]], y = .data[[y_var]])) +  
# 散点图,shape = 3设置形状为+
    geom_point(shape = 3, size = 3, alpha = 0.4, stroke = 0.1, color = "black") +
# 拟合曲线,置信区间
    geom_smooth(method = lm, colour = "red", fill = "grey", size = 0.4) +
# xy轴标题
    labs(x = x_lab, y = y_axis_label) 
Image
  • 🔸使用egg::ggarrange绘制第1行"Temperature"变量的5个子图,
# 绘制1行5列分面图
egg::ggarrange(
    plots[[1]], plots[[2]], plots[[3]], plots[[4]], plots[[5]],
    ncol = 5, 
    widths = rep(1, 5)
  )
Image

同样的方法,分别绘制变量"Cotyledon_pH"、变量"Testae_plup_pH"的5个子图。

  • 🔸最后使用egg::ggarrange将变量"Temperature"、"Cotyledon_pH"、"Testae_plup_pH"的子图拼接为3行5列的最终图,
# 组合所有图形
  final_plot <- egg::ggarrange(
    temp_plots, cotyledon_plots, testa_plots,
    nrow = 3
  )
Image
  • 🔸注意细节1,as.expression结合bquote、bolditalic设置斜体
# p value中p斜体
as.expression(bquote(bolditalic(p) == bold(.(p_value))))
Image
  • 🔸注意细节2,y轴共享标题
Image

本期结束!


测试数据+详细代码,即将会加入👉《保姆级R可视化教程》来了!

加入学习(备注:299)

图片