2022-10-25 03:42:37, 多层组学定制服务 上海欧易生物医学科技有限公司
柱状图是一种常见的数据可视化方式,主要用于展示趋势、排序、分布、相关性等数据分析的含义、应用广泛。柱状图有许多类型,包括常规款、堆积柱状图、簇状图等,种类繁多,让人眼花缭乱,那我们怎么用R语言绘制想要的形式呢?下面小鹿就带大家一起去看看!
1.常规柱状图
我们经常会对KEGG中重要的代谢通路进行绘图,下面就用柱状图来展示代谢通路富集结果:
#载入R包,没有请先安装
library(openxlsx)
library(ggplot2)
library(dplyr)
library(tidyverse)
library(reshape2)
library(ggExtra)
#数据处理
data <- read.xlsx("data.xlsx")
data <- data[order(data$log,decreasing = T),]
data[''term''] <- factor(data[["term"]],levels = as.character(data[["term"]]))
head(data)
#绘图
col<- c("#000000","#191970","#000080","#0000CD","#0000EE","#0000FF")#颜色自定义
p <- ggplot(data,aes(x=log,y=term,fill=log))+labs(x="-log(Pvalue)",y="")+
geom_bar(stat = "identity",position = "dodge",width = 0.6)+#水平柱状图
scale_x_continuous(expand = c(0,0))+#去除柱子与y轴间的距离
theme(panel.background = element_blank(),#绘图背景色
panel.border = element_rect(fill=NA,color="black", size=1),#绘图边界
axis.ticks.length.y = unit(0, ''cm''),#y轴刻度线
axis.ticks.length.x = unit(-0.1, ''cm''),#x轴刻度线
legend.position = "none",#隐藏图例
axis.text.y = element_text(colour = "black"),#y轴标签颜色
text = element_text(family = "sans"))+#指定字体
scale_fill_gradientn(colours=colorRampPalette(rev(col))(length(data$log)))+#柱子填充色为自定义渐变色
geom_vline(xintercept=-log10(0.01), linetype=5,colour = "red",lwd = 1)+#垂直参考线
geom_vline(xintercept=-log10(0.05), linetype=5,colour = "blue",lwd = 1)
2.堆积柱状图
微生物研究中,往往要对样本中的微生物种类进行统计,下面就从统计每个样本中门的数量分布来观察不同样本的物种丰富程度。
data1 <- read.xlsx("d2.xlsx",1)
head(data1)
#数据处理——phylum(门)蛋白数量最多的10个门绘制堆积图
d1 <- data1
#筛选排名前十的门
phy1 <- as.data.frame(sort(table(d1$phylum),decreasing = T))[1:10,]
colnames(phy1) <- c("phylum","number")
d1[,2:10][which(!(is.na(d1[,2:10])),arr.ind = T)] <- 1
d1[,2:10][which((is.na(d1[,2:10])),arr.ind = T)] <- 0
mydata1 <- subset(d1,d1$phylum %in% phy1$phylum)
d2 <- aggregate(mydata1[,2:10],list(mydata1$phylum),sum)
colnames(d2)[1] <- "phylum" #某列重命名
d2 <- merge(d2,phy1)
d2 <- d2[order(d2$number,decreasing = T),]
#统计每个样本的每个门下对应的蛋白表达个数
d2$phylum <- apply(d2["phylum"],1,function(x){paste("p_",x,collapse = "")})
d2$phylum <- factor(d2$phylum, levels = rev(d2$phylum))
data <- melt(d2[,-dim(d2)[2]],id="phylum")
#绘图数据
绘图:#自定义填充色颜色
fill1 <- c("#8E44AD","#BB8FCE","#E67E22","#F8C471","#FC4A24","#FD7B5F","#2ECC71","#9CF699","#3498DB","#85C1E9")
p <- ggplot(data,aes(x=variable,y=value,fill=phylum))+
geom_bar(stat = "identity",position = "fill",width = 0.65)+#比例堆叠柱状图
scale_fill_discrete(type = rev(fill1))
p1 <- p + ylab("Relative Abundance(%)") + xlab("")+
theme(text=element_text(size=16, family="serif"),#图形文本大小字体
axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1),#x轴标签位置调整
panel.border = element_rect(fill=NA,color="grey", size=1),#绘图区边界线
panel.background = element_blank(),#绘图区背景
legend.title = element_blank(),#隐藏图例标题
legend.key.size = unit(20, "pt"),#图例键大小
legend.key.height = unit(10, "pt"),#图例键长
legend.key.width = unit(10, "pt"))#图例键宽
3.边缘柱状图
当然,柱状图也可以和其它类型图片结合,比如散点图、箱线图、密度图、小提琴图、热图等,下面展示一下密度边缘直方图:
data <- data1[c("MW.[kDa]","calc..pI")]
colnames(data) <- c("MW","PI")
head(data)
#绘制散点图
p <- ggplot(data = data,aes(x=MW,y=PI))+
geom_point(colour="#8A2BE2",size=1.5)+#散点图点颜色大小
geom_rug(color = "#8A2BE2",length = unit(0.4, "cm"))+#边缘地毯颜色长度
xlab("Molecular Weight")+ylab("Isoelectric Point")+
theme_classic()#主题
#添加边际直方图
p <- ggMarginal(p,type = "histogram",#边际类型
xparams = list(fill="#8DEEEE",color = "#D3D3D3"),#X边际颜色
yparams = list(fill="#FFE4E1",color = "#D3D3D3"))#Y边际颜色
小结:在生物分析中,柱状图利用柱子高度直观展现数据间的差异,而R可以根据不同分析需求将数据以不同的方式展示。
组间簇状图适合分析有层级关系的数据、分析对比组内各项数据;
堆积柱状图可以形象的展示一个大分类包含的每个小分类的数据,以及小分类的占比情况,显示的是单个项目与整体之间的关系;
边缘柱状图在散点图的基础上添加了柱状图,不仅能展现数据的分布情况,还能直观分析数据的变化。
本文的三种绘图方式简单明了,一起来画画看吧!
猜你还想看
1、Nat Commu | 空间代谢组+磷酸化蛋白+转录组研究胶质母细胞瘤患者异种移植模型的药代动力学和药效学整合图谱
2、Sci Immunol | IF:30+,微生物衍生的代谢物TMAO驱动免疫激活并促进胰腺癌患者对免疫检查点阻断的反应
3、Nat Commu | 蛋白质组学+脂质组学探究多胺对非酒精性脂肪肝的预防机制
4、Science关注 | 通过高分辨率质谱成像技术和单细胞转录组技术揭示鞘脂控制真皮成纤维细胞异质性
END
Aning|撰文
小久|排版
欢迎转发到朋友圈
本文系鹿明生物原创
转载请注明本文转自鹿明生物
我知道你在看哟
点击“阅读原文”了解更多
04-26 赛默飞生命科学
【反射颜色测量】典型配置、硬件说明、软件操作04-26
【文末福利】东北人做实验,爆笑来袭!小嘴儿叭叭的~04-25 黑龙江办事处
直播预告 | 大规模设备更新-赛默飞生命科学专场直播04-25 赛默飞生命科学
【转载】「最佳的抗皱塑形运动方案」研究表明:这两类运动可有效延缓皮肤衰老,特别是对于女性!04-25 生物谷
【有奖征集】「寻找实验室最美身影」主题摄影大赛火热征稿中04-25
让你的干细胞研究“研”值飙升的秘密04-25 赛默飞生命科学
CIBF2024|H.E.L诚邀新老朋友莅临指导04-25 Don Lin
苏州佳谱科技有限公司参与制定国家标准,助力水泥窑固体废物处理技术规范发展04-25
DW行业解决方案|食品安全微生物实验室能力建设04-24 DW
全国排名公布!色谱大赛战况激烈,高手如云!04-24 市场宣传部
在众多可能中,找到你的“那一个”04-24 赛默飞生命科学
融合创新,质领未来—钢研纳克蝉联检测及科学仪器行业重磅奖项04-24 钢研纳克
4月24日直播 | 使用安捷伦Seahorse技术快速精准检测线粒体毒性04-24 安捷伦细胞分析
Nature 子刊|陆军军医大肿瘤微环境新成果,一作分享研究思路04-24 转载自生物学霸
4月25日直播 | 中国PIC/S成员资格对监管实验室的影响与含义04-24 安捷伦细胞分析
它来了,符合国家卫生行业标准的流式细胞仪性能校准服务!04-24 安捷伦科技
剑桥大学/阿斯利康利用RTCA揭示cGAS-STING 该明星分子在神经小胶质细胞炎症中的机制04-24 安捷伦细胞分析
4月26日直播 | 类器官研究大讲堂 开启精准医学新时代04-24 安捷伦细胞分析
追忆星空回响,坚守使命信念——中科科仪与“东方红一号”的峥嵘岁月04-24