我正在尝试使用heatmap.2制作热图,但没有单元格边框。如果我将参数sepwidthsepcolor设置为无效,则必须包括colseprowsep参数,但仍要这样做,某些单元格边框未绘制,有什么想法吗?

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))

最佳答案

看来您的问题出在colseprowsep参数上。从帮助文件中:



您的代码将创建一个向量,而不是“指示应分隔的列或行”,只要矩阵中的元素数量即可。如果设置了colsep=c(1,3),则第一列和第二列之间的分隔符以及第三列和第四列之间的分隔符将被着色。我不相信不使用colseprowsep参数就可以为单元格边框着色。除非为这些参数指定了值,否则默认情况下不会绘制单元格边框。

# 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))

关于r - 使用heatmap.2绘制单元格边框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21624881/

10-11 07:03