有谁能告诉我如何绘制二进制数据的热力图,类似于此链接中的热力图-Binary R heatmap still displays gradient,
我试图这样做,但我想我无法正确输入文件。 这是我想要绘制的数据链接 - https://www.dropbox.com/s/7k1uskwrfuaugw3/Dataset.csv?dl=0
以下是我的数据子集-
Strains gene1 gene2 gene3 gene4 gene5
strain1 1 1 1 1 1
strain2 1 1 1 1 1
strain3 1 1 1 1 1
strain4 1 1 1 1 1
strain5 1 1 1 1 1
strain6 1 1 1 1 1
strain7 1 1 1 1 1
strain8 1 1 1 1 1
strain9 1 1 0 0 0
我得到的输出是:
翻译完成,希望对你有所帮助。
library(gplots)
file1<- read.csv('Dataset.csv',header = T)
class(file1)
dat <- data.frame(file1)
dim(dat)
names(dat)
head(dat)
rownames(dat) <-dat$Strains
head(dat)
dim(dat)
head(dat)
dat.tdy <- dat[,2:26]
dat.n <- scale(t(dat.tdy))
dat.tn <- t(dat.n)
col = c("black", "grey")
row_names <- rownames(dat.tn)
heatmap.2(dat.tn, scale = "none", Rowv = NA, Colv = NA, col = c("black", "grey"), margin=c(6, 4),trace='none',labRow = row_names,
lhei=c(1,4),cexRow = 1,cexCol = 1,
lwid=c(.1,1), keysize=0.1, key.par = list(cex=0.5), sepwidth=c(0.1,0.1),
sepcolor="white",
colsep=1:ncol(dat),
rowsep=1:nrow(dat))
这段代码能够正常运行并输出结果,但是当我与输入文件进行核对时,发现热图中的颜色矩阵与输入文件不同。例如,在热图中,gene7只有一个黑色方块,但在输入文件中实际上有近13个零。
我感觉有更简单的方法来解决这个问题,但作为R的新手,我无法找出错误所在。我在输入文件方面做错了什么,请帮忙解决。谢谢。