AI复现Nature子刊i+j图(中)
使用R语言复现一下Nature aging中以下子图i、j。
复现效果图
✅子图i和子图j分别展示了雄性和雌性小鼠中,一系列衰老标志基因和疾病相关基因在不同脑区(HIP和FFCC)的表达倍数变化(Relative Expression, RE)。
X轴,每个基因的名称,例如, Apoe、Trem2、Lgals3等基因。Y轴,相对于年轻同性的表达比值(RE)。值越高,说明老年组中该基因表达上调越明显。 分组,每种基因下有两组柱/点,分别代表HIP和FFCC。 星号,标记了在老年组中显著高于年轻组(q < 0.05)的基因。
✅复现代码学习
导入R package
library(patchwork)
library(ggplot2)
library(readxl)
geom_jitter添加抖动散点,蓝色箭头所指,
# 散点:每个old样本一个点
geom_jitter(position = jitter_d, size = 1.7, stroke = 0.35, fill = NA)
geom_linerange添加误差线
geom_linerange(data = s,
aes(x = gene, ymin = pmax(0, mean_y - sem_y),
ymax = mean_y + sem_y, group = region),
inherit.aes = FALSE, position = dodge,
colour = "#111111", linewidth = 0.15)
geom_crossbar添加均值横线
# 均值横线
geom_crossbar(data = s,
aes(x = gene, y = mean_y, ymin = mean_y,
ymax = mean_y, group = region),
inherit.aes = FALSE, position = dodge,
width = 0.55, linewidth = 0.15, colour = "#111111",
middle.linewidth = 0.15)
添加显著性星号
# 显著性星号
geom_text(data = q, aes(x = gene, y = y_pos, label = "*", colour = region),
inherit.aes = FALSE, size = 4.6, vjust = 0.5, show.legend = FALSE)
文字斜体、上标细节设置
# x轴标签走plotmath实现斜体
scale_x_discrete(
drop = FALSE,
labels = function(x) parse(text = unname(gene_labels[x]))) +
scale_y_continuous(breaks = seq(0, y_max, 5),
expand = expansion(mult = c(0, 0.03)))
theme主题细节设置
theme_classic(base_family = "sans") +
theme(
plot.title = element_text(face = "bold", size = 13, hjust = 0,
margin = margin(b = 2)),
axis.title.y = element_text(size = 9),
axis.text.y = element_text(size = 8, colour = "#222222"),
axis.text.x = element_text(size = 7.5, colour = "#222222",
angle = 90, vjust = 0.5, hjust = 1,
margin = margin(t = 2, b = 2)),
axis.line = element_line(colour = "#222222", linewidth = 0.35),
axis.ticks = element_line(colour = "#222222", linewidth = 0.3),
legend.position = c(0.07, 0.93),
legend.background = element_blank(),
legend.key = element_blank(),
legend.text = element_text(size = 8),
legend.spacing.y = unit(0, "pt"),
plot.margin = margin(5, 5, 0, 5)
)
AI复现子图abcdefgh代码👉:AI搞定Nature子刊主图「a~h 8张图」