输入表达矩阵
在这里生成一个随机数据,横轴为基因名,纵轴为样本名,数据代表基因的表达量。
实际作图应根据表达矩阵。
rm(list=ls())set.seed(10086) #这句代码表示生成的随机数组是一致的,不会改变exp = matrix(rnorm(18),ncol = 6)exp = round(exp,2)rownames(exp) = paste0("gene",1:3)colnames(exp) = paste0("test",1:6)exp[,1:3] = exp[,1:3]+1exp
转置
将样本名变为横轴,基因名作为纵轴,并在数据最后一列进行分组。
library(tidyr)library(tibble)library(dplyr)dat = t(exp)dat = as.data.frame(dat)dat = rownames_to_column(.data = dat)dat = mutate(.data = dat, group = rep(c("control","treat"),each = 3))
准备数据
利用pivot_longer函数,把数据变成长数据,便于画图。
pdat = pivot_longer(data = dat,cols = starts_with("gene"),names_to = "gene",values_to = "count")
绘图
绘图和分面。
library(ggplot2)p = ggplot(pdat,aes(gene,count))+geom_boxplot(aes(fill = group))+geom_jitter()+theme_bw()pp + facet_wrap(~gene, scales = "free")

