十. 基因表达作图--ggplot2::geom_bar

一. 简介

利用柱形图展示不同样品中基因表达的整体情况,首先读取基因表达矩阵,再将数据格式转换成row,col,value三列的格式,然后利用ggplot2画图

读取数据格式:
    gene_id sample1 sample2 sample3 sample4 sample5 sample6 sample7
1   EVM0000001.1    2.20    5.95    9.45    0.43   16.87    2.64   10.11
2   EVM0000002.1    0.08    0.56    0.04    0.00    0.22    0.04    0.18
3   EVM0000003.1    0.04    0.00    0.00    0.05    0.18    0.06    0.40
4   EVM0000004.1    1.32    2.76    0.00    1.30    0.25   18.42    0.14
5   EVM0000005.1    1.76    5.24    2.45   17.54    2.81    1.25    5.56
6   EVM0000006.1    3.40    2.82    2.73    1.98    5.58    2.79    7.44
7   EVM0000007.1    0.00    0.25    0.00    0.11    0.00    0.36    0.00
8   EVM0000008.1    0.00    0.00    0.00    0.00    0.00    0.00    0.00
9   EVM0000009.1    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10  EVM0000010.1    0.07    6.11    0.03    0.05   16.40    0.12    0.04
...
转换后数据格式:
      row     col   value
1     1 sample1    2.20
2     2 sample1    0.08
3     3 sample1    0.04
4     4 sample1    1.32
5     5 sample1    1.76
...

二. 画图代码

library("ggplot2")
library("cowplot")
df<-read.table("4_sample.FPKM",header = T, sep = "\t")#读取数据
df=df[,-1]去掉第一列
nrow <- dim(df)[1]
ncol <- dim(df)[2]
row <- rep(row.names(df),ncol)#生成新数据框的第一列
col <- rep(colnames(df), each=nrow)#生成新数据框的第二列
frame <- data.frame(row,col,value =as.numeric(unlist(df)))#生成新数据框,共三列
p<-ggplot(frame,aes(as.numeric(row),value))+
  facet_wrap(~ col, ncol = 1,scales="free")+ #按col分成多个图
  geom_bar(stat = "identity",fill="#33a02c",width = 1)+
  scale_x_continuous() +
  labs(x = "Gene",y="FPKM")#修改x轴和y轴标签
p

三. 结果展示

下图展示全转录组在不同样品中的表达,去掉第11行中的scales="free"可以统一纵坐标刻度


7_sample.FPKM.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容