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|撰文
小久|排版
欢迎转发到朋友圈
本文系鹿明生物原创
转载请注明本文转自鹿明生物
我知道你在看哟
点击“阅读原文”了解更多
03-29
生态环境部将发布新修订《排污许可管理办法》,新增第三方机构的处罚条款...|032803-29
光大绿色环保:对危废价格回升持乐观态度03-29
新建涉VOCs排放的项目要入园区?化工复配项目也要进入化工园区?某省厅审批人员咨询03-28
环境部发布《铸造工业大气污染防治可行技术指南》03-28
由于工艺要求,用不了低VOCs原料,那么高VOCs原料无法替代证明咋写?请看案例、资料03-28
拆旧建新、拆小建大(规模不增)是否要对照《环评名录》做环评?属于改扩建?03-28
新危废标签的危险特性警示图形中腐蚀性和毒性外沿有虚框?一键生成新危废标签等,含二维码、二维码等03-28
自动生成新危废标签!噪声预测免费!精彩直播。公示、lims免费03-28 环保小智
【线上培训】第6期“污废水处理工”培训+证书03-28
江苏《含重金属污泥综合利用污染控制技术规范(征求意见稿)》03-28
什么样的人适合读博?你可曾考虑博士毕业后意味着什么?03-28
杰青副校长,履新教育部!03-28
北大教授:只剩下学术的生活是危险的03-28
北大“韦神”出了道数学题,有老师用ChatGPT做答,结果出乎意料03-28
945万预算 | 秦皇岛市市控环境空气自动监测站运维服务项目招标03-28
部长突击查污染后,已拘留32人...生态环境部召开3月例行新闻发布会03-28
生态环境部:2023年工作台历(大气篇)03-28
催化燃烧+活性炭吸附处理设施突发火灾...官方高效处置事故并下达紧急通知03-28
罚!非甲烷总烃无组织排放03-28