pythonic生物人

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

本次使用R语言复现一下Nature上的c图!

s41586-021-04194-8 c原图
s41586-021-04194-8 c原图

c复现效果图

Image

R语言复现c图

ggplot(df_gain_rate, aes(x = phase, y = value)) +
# 戒断期灰色底
  annotate("rect", xmin = 1.4, xmax = Inf, ymin = -Inf, ymax = Inf) +
# 蜂群散点
  geom_beeswarm(aes(fill = group)) +
# 组均值横标
  stat_summary(aes(group = group), geom = "crossbar") +
  geom_hline(yintercept = 0, linetype = 1) +
  geom_vline(xintercept = 1.4, linetype = 2) +
# 4组比较标注 — 括号高度基于 phase 数据最大值 + 间隙,永不重叠
  add_hsig(0.70, 0.90, y_gain_exp, "****") 
Image

该图比较不同处理组在两个实验阶段(如暴露期 vs 戒断期)的体重增长率(gain rate)差异,并突出阶段分界与组间统计学差异。

值得学习的点:

  • 灰色、白色背景使用,标示戒断期 / 第二阶段,与暴露期形成视觉分区
  • 蜂群散点geom_beeswarm展示每一个动物的体重增长率,避免点重叠,比普通jitter更规整
  • stat_summary在每个组内画出均值(横线)+ 置信区间/四分位范围
  • geom_hline添加辅助线,可直观判断哪些组整体在增重、哪些在减重
  • add_hsig标出两组之间的显著差异p value

-推荐阅读-

matplotlib教程:20w字+数百张图形+1W行代码+详细代码注释

图片

seaborn教程:12.3万字+500多张图形+8000行代码

图片

R可视化教程:28个章节+11w字+数百张图

图片
图片

一些有用的学习资源:

👉2026可视化工具TOP3

👉学习R可视化

👉Python matplotlib

👉嫌Matplotlib繁琐?试试Seaborn


加入学习

(备注:299)

图片