3分钟学会,让你的导师眼前一亮的柱状图

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可以根据不同分析需求将数据以不同的方式展示。

组间簇状图适合分析有层级关系的数据、分析对比组内各项数据;

堆积柱状图可以形象的展示一个大分类包含的每个小分类的数据,以及小分类的占比情况,显示的是单个项目与整体之间的关系;

边缘柱状图在散点图的基础上添加了柱状图,不仅能展现数据的分布情况,还能直观分析数据的变化。

本文的三种绘图方式简单明了,一起来画画看吧!


如果你还在为不知如何绘制SCI图表而忧愁,还在为毕业论文制图效率低下美观度不满意而焦心,或者想要找到一个高效制图的集中地……

欧易云是欧易/鹿明生物旗下的科研图表聚集地,里面火热绘图工具+教程,使用便捷且能自动调色增加科研图的美观度,同时还将上线更多科研图功能,请持续关注欧易云平台,相信聪明的你一定不会错过!

云平台地址:

https://cloud.oebiotech.cn/task/

热度翻倍,工具直达,只等你来云平台地址:https://cloud.oebiotech.cn/task/


猜你还想看


1、Nat Commu | 空间代谢组+磷酸化蛋白+转录组研究胶质母细胞瘤患者异种移植模型的药代动力学和药效学整合图谱

2、Sci Immunol | IF:30+,微生物衍生的代谢物TMAO驱动免疫激活并促进胰腺癌患者对免疫检查点阻断的反应

3、Nat Commu | 蛋白质组学+脂质组学探究多胺对非酒精性脂肪肝的预防机制

4、Science关注 | 通过高分辨率质谱成像技术和单细胞转录组技术揭示鞘脂控制真皮成纤维细胞异质性

END

Aning|撰文

小久|排版

欢迎转发到朋友圈

本文系鹿明生物原创

转载请注明本文转自鹿明生物

我知道你在看

点击“阅读原文”了解更多


  • 客服电话: 400-6699-117 转 1000
  • 京ICP备07018254号
  • 电信与信息服务业务经营许可证:京ICP证110310号
  • 京公网安备1101085018
  • 客服电话: 400-6699-117 转 1000
  • 京ICP备07018254号
  • 电信与信息服务业务经营许可证:京ICP证110310号
  • 京公网安备1101085018

Copyright ©2007-2024 ANTPEDIA, All Rights Reserved