R语言ggplot2包绘制高端堆积柱状图

发布于:2024-06-01 ⋅ 阅读:(56) ⋅ 点赞:(0)

数据和代码获取:请查看主页个人信息!!!

关键词“高端堆积柱状图”

大家好,今天我将介绍如何使用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")))p1ggsave('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")))p2ggsave('pic2.png', p2, bg = 'white', width = 5, height = 4)

图片

数据和代码获取:请查看主页个人信息!!!

关键词“高端堆积柱状图”