数据和代码获取:请查看主页个人信息!!!
关键词“高端堆积柱状图”
大家好,今天我将介绍如何使用ggplot2包绘制高端堆积柱状图。
本次绘图灵感来源于下面这篇文章,之所以复现这张图,有这么几个原因:
-
配色,看着很舒服的配色方案
-
细节:重点基因斜体加粗显示
-
主题:theme_cowplot的运用
https://doi.org/10.1038/s41586-023-05729-x
Step1:数据载入
rm(list=ls())
pacman::p_load(tidyverse, cowplot)
# 载入数据
load('df.luad.rda')
load('df.lusc.rda')
load('p.luad.rda')
load('p.lusc.rda')
Step2:配色+可视化1
# 配色
col.palette <- setNames(c("#a6dba0", "#c2a5cf", "#762a83"), c("depleted", "maintained", "enriched"))
# 绘图
p1 <- ggplot(df.luad, aes(fct_rev(gene_name), n, fill = classification)) +
geom_bar(stat = "identity", position = position_fill()) +
xlab("") + ylab("Proportion") +
ggtitle("LUAD") +
coord_flip() +
scale_fill_manual(values = col.palette) +
theme_cowplot(font_size = 16) +
theme(axis.text.y =
element_text(face = ifelse(rev(levels(df.luad$gene_name)) %in% names(which(p.luad < 0.05)), "bold", "plain")))
p1
ggsave('pic1.png', p1, bg = 'white', width = 5, height = 6)
上面的代码在结合element_text和ifelse,实现了重点基因的选择性加粗展示。
当然也可以加粗+斜体展示:
Step3:加粗+斜体
p1 +
theme(axis.text.y =
element_text(face = ifelse(rev(levels(df.luad$gene_name)) %in% names(which(p.luad < 0.05)), "bold.italic", "plain")))
接下来对第二份数据继续进行可视化展示:
Step4:可视化2
p2 <- ggplot(df.lusc, aes(fct_rev(gene_name), n, fill = classification)) +
geom_bar(stat = "identity", position = position_fill()) +
xlab("") + ylab("Proportion") +
ggtitle("LUSC") +
coord_flip() +
scale_fill_manual(values = col.palette) +
theme_cowplot(font_size = 16) +
theme(axis.text.y =
element_text(face = ifelse(rev(levels(df.lusc$gene_name)) %in% names(which(p.lusc < 0.05)), "bold", "plain")))
p2
ggsave('pic2.png', p2, bg = 'white', width = 5, height = 4)
数据和代码获取:请查看主页个人信息!!!
关键词“高端堆积柱状图”