R 热图.2(gplots)如何更改颜色键的水平大小并添加图例

R 热图.2(gplots)如何更改颜色键的水平大小并添加图例,r,heatmap,R,Heatmap,我正在用热图制作热图。我知道如何控制许多参数,但我仍然没有找到一种方法使颜色的关键点变宽,或者将其作为一条带放在绘图的侧面或底部 使用“关键点大小”可按比例修改高度和宽度 另外,当使用ColsideColor时,我使用legend()放置颜色标签,但“topright”不在右上角。我知道这是关于绘图区域、边距等的内容,但我还没有找到一个很好的解释文本,说明heatmap.2绘图是如何构造的,如何通过坐标定位事物,以及如何处理oma、mar等,具体取决于边距、样本、树深度,等。图例可以放在一个开放

我正在用热图制作热图。我知道如何控制许多参数,但我仍然没有找到一种方法使颜色的关键点变宽,或者将其作为一条带放在绘图的侧面或底部

使用“关键点大小”可按比例修改高度和宽度

另外,当使用ColsideColor时,我使用legend()放置颜色标签,但“topright”不在右上角。我知道这是关于绘图区域、边距等的内容,但我还没有找到一个很好的解释文本,说明heatmap.2绘图是如何构造的,如何通过坐标定位事物,以及如何处理oma、mar等,具体取决于边距、样本、树深度,等。图例可以放在一个开放的区域或重叠一点的热图。任何一点好的文本理解这些问题的R图形将真正感谢

使用的编码是:

df<- data.frame(  x1=rnorm(120,mean=rep(1:3,each=4),sd=0.2)
                  ,x2=rnorm(120,mean=rep(1:3,each=4),sd=0.2)
                  ,x3=rnorm(120,mean=rep(1:3,each=4),sd=0.2)
                  ,x4=rnorm(120,mean=rep(1:3,each=4),sd=0.2)
                  ,x5=rnorm(120,mean=rep(1:3,each=4),sd=0.2)
                  ,x6=rnorm(120,mean=rep(1:3,each=4),sd=0.2)
                  ,x7=rnorm(120,mean=rep(1:3,each=4),sd=0.2)
                  ,x8=rnorm(120,mean=rep(1:3,each=4),sd=0.2)
                  ,y1=rnorm(120,mean=rep(c(1,2,1),each=4),sd=0.2)
                  ,y2=rnorm(120,mean=rep(c(1,2,1),each=4),sd=0.2)
                  ,y3=rnorm(120,mean=rep(c(1,2,1),each=4),sd=0.2)
                  ,y4=rnorm(120,mean=rep(c(1,2,1),each=4),sd=0.2)
                  ,y5=rnorm(120,mean=rep(c(1,2,1),each=4),sd=0.2)
                  ,y6=rnorm(120,mean=rep(c(1,2,1),each=4),sd=0.2)
                  ,y7=rnorm(120,mean=rep(c(1,2,1),each=4),sd=0.2)
                  ,y8=rnorm(120,mean=rep(c(1,2,1),each=4),sd=0.2)
)
dataMatrix <- as.matrix(df)[sample(1:120),]
heatmap.2(dataMatrix
          , col=rev(brewer.pal(11,"RdBu"))
          , density.info="none"
          , key=TRUE
          , symkey=FALSE
          , trace="none"
          , cexRow=1
          , scale='row'
          , margins =c(10,9)
          , ColSideColors=c(rep("red", ncol(df)/2), rep("green", ncol(df)/2))
          , main="Log2_intensities median centered"
          , keysize=0.9)

legend('topright', c("x", "y"),lty=1, col=c("red", "green"), cex=0.8)

df您可以尝试添加“inset”参数并使用大小将图例进一步向右移动(第一个值)和/或向顶部移动(第二个值),例如:


图例('topright',inset=c(.02,.02)等。)

这里介绍了组织绘图的方法: 当使用
ColSideColors
时,
heatmap.2
会将绘图绘制为

1冷色

2热图

3。。。如上面的链接所示


从未使用
行边颜色进行过测试。换句话说,您可以使用
lmat
lwid
lhei
热图参数来组织绘图。2
。这可以为您的图例提供一些空间。

我知道heatplus可以完成其中一些工作,但目前所有代码都是使用heatmap()和heatmap.2()完成的,我现在无法更改。如果您坚持使用heatmap.2,您必须接受将图例放在左上角。可能还有其他方法来绘制图例,但这些方法不属于热图。我不确定你到底愿意改变什么以获得不同的输出。如果您正在寻找一个简单的参数来传递给函数,那就不会发生。