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)] <- 1d1[,2:10][which((is.na(d1[,2:10])),arr.ind = T)] <- 0mydata1 <- 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-03 Anton Paar China
Service售后 | 告别手动记录 ,拥抱数据未来!04-03 Anton Paar China
重磅发布|安东帕折光仪强腐蚀应用与数据合规双突破04-03 Anton Paar China
春焕新礼 | 线上商城惊喜大促正式开启04-03 Anton Paar China
邀请函 | 纳米粒度及 Zeta 电位仪线上培训会04-03 Anton Paar China
助力固态电池材料突破瓶颈 | 安东帕全面材料性能表征方案(二)04-03 Anton Paar China
展会预告 | 盛瀚色谱诚邀您参加第29届青岛市分析测试学会年会系列学术报告会!04-02
权威文章!Intabio ZT-ZenoTOF 7600联用系统解锁ADC电荷异构体分析04-02 SCIEX
国抽无死角,筛查全覆盖:SCIEX推出750种农残数据库,精准狙击“隐形杀手”04-02 SCIEX
荣耀时刻!SCIEX ZenoTOF 8600系统荣获“2025仪器设备卓越产品”大奖04-02 SCIEX
EAD Talk:ZenoTOF 8600质谱全新EaciD碎裂方式,突破糖肽分析瓶颈04-02 SCIEX
全球挑战等你加入!SCIEX邀您参与首届AIPC人工智能蛋白质组学系列赛04-02 SCIEX
会议邀请 | CPQC2026制药行业质量控制技术大会(郑州站)04-02 STIER 施启乐
肽有可为,创见未来 | 全链方案应对行业共性痛点04-01 汉尧
【温馨提示】上海汉尧2026清明假期放假及发货物流安排04-01 汉尧
展会邀请丨4月13日-15日,雷磁在上海环博会等您!04-01
从张雪机车到施启乐,为何中国智造能赢在细节?04-01 STIER 施启乐
GLMY创想仪器丨亮相百铸订单春季采购会04-01
“测不准、控不住、做不快”?创想仪器带你告别元素检测的三大“顽疾”04-01
【全新力作】多角度见证微观世界,NS-180Z系列纳米粒度电位分析仪实力登场!04-01 欧美克仪器








