一. 简介
利用柱形图展示不同样品中基因表达的整体情况,首先读取基因表达矩阵,再将数据格式转换成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"可以统一纵坐标刻度