我正在尝试使用heatmap.2
制作热图,但我没有获得单元格边框。如果我设置参数sepwidth
和sepcolor
它不起作用,我必须包含colsep
和rowsep
参数,但仍然这样做,一些单元格边框没有绘制,任何想法?
heatmap.2(as.matrix(df), key=F, trace="none", ColSideColors=colorside,
cexRow=0.6, breaks=bk1, col=colors2,
lmat=rbind(c(0,0), c(0,4), c(0,1), c(3,2), c(0,0)),
lhei=c(0.4,0.3,0.05,0.4,0.6),
sepwidth=c(0.01, 0.01), sepcolor="black",
colsep=1:length(df), rowsep=1:length(df))
答案 0 :(得分:22)
您的问题似乎与colsep
和rowsep
参数有关。从帮助文件:
的行
colsep, rowsep, sepcolor
(可选)整数向量指示 哪些列或行应与前面的列分开 或用狭窄的颜色sepcolor
您的代码不是“指示应分隔哪些列或行”,而是创建一个向量,只要矩阵中的元素数量即可。如果您设置了colsep=c(1,3)
,则第1列和第2列之间的分隔符以及第3列和第4列之间的分隔符将被着色。我不相信有一种方法可以在不使用colsep
和rowsep
参数的情况下为单元格边框着色。默认情况下,不会绘制单元格边框,除非这些参数是给定的值。
# First, a reproducible data set
library(gplots)
mat = matrix( rnorm(100), ncol=5 )
colorside = gray(1:5/5)
bk1 = seq(min(mat),max(mat),length.out=11)
col = redgreen(10)
# And now the heatmap
heatmap.2( mat,
key=FALSE,
trace="none",
ColSideColors=colorside,
cexRow=0.6,
breaks=bk1,
col=col,
sepwidth=c(0.1,0.1),
sepcolor="purple",
colsep=1:ncol(mat),
rowsep=1:nrow(mat))
答案 1 :(得分:-3)
组 heatmap.2(as.matrix(df),key = F,trace =“both”......