R 设置sepwidth热图。2(gplots)
我正试图增加热图中行和列之间的宽度。 我使用sepwidth,但是当我尝试增加sepwidth时,它不会向右移动列或行 这里有一个例子R 设置sepwidth热图。2(gplots),r,R,我正试图增加热图中行和列之间的宽度。 我使用sepwidth,但是当我尝试增加sepwidth时,它不会向右移动列或行 这里有一个例子 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,
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.4,0.4),
sepcolor="purple",
colsep=1:ncol(mat),
rowsep=1:nrow(mat))
谢谢你的帮助。我不确定我是否完全理解你想要什么。无论如何,我的猜测是,您希望在第一列之前和第一行之上添加空格
sepwidth
定义列和行之间的空间量,并基于向量colsep
和rowsep
中的值应用该空间。在您的情况下,您只需在colsep
和rowsep
的定义中提前启动一个单元,如下代码所示:
setseed(8765) ## added for reproducibility
# Your code
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)
## First call to get "hm1"
hm1 <- heatmap.2( mat,
key=FALSE,
trace="none",
ColSideColors=colorside,
cexRow=0.6,
breaks=bk1,
col=col,
sepwidth=c(0.4,0.4),
sepcolor="purple",
colsep=0:ncol(mat), ## changed
rowsep=0:nrow(mat)) ## changed
# Look at lwid and define a new one to use
hm1$layout$lwid
# [1] 1.5 4.0
my_lwid <- c(1.0, 4.5)
## call with altered lwid
hm2 <- heatmap.2( mat,
key=FALSE,
trace="none",
ColSideColors=colorside,
cexRow=0.6,
breaks=bk1,
col=col,
sepwidth=c(0.4,0.4),
sepcolor="purple",
lwid = my_lwid, ## added
colsep=0:ncol(mat),
rowsep=0:nrow(mat))
hm2$layout$lwid
setseed(8765)##增加了再现性
#你的代码
图书馆(gplots)
mat=矩阵(rnorm(100),ncol=5)
色边=灰色(1:5/5)
bk1=序号(最小值(垫)、最大值(垫)、伸出长度=11)
颜色=红绿色(10)
##第一次呼叫获取“hm1”
hm1谢谢,但是我注意到,当我增加sepwidth时,它只从下一列/行占用一个空间,所以它实际上不会移动列/行,而是从下一列或行占用这个空间。我认为这种行为是内置的。您可以使用lwid
,它定义了图形中零件的宽度。通过这种方式,可以增加热图占用的水平空间比例(与行树状图相反)。