繁体   English   中英

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

[英]heatmap.2 (gplots) how to change horizontal size of the color key and add a legend

我用heatmap制作热图。 我知道如何控制许多参数,但我还没有找到一种方法,只使颜色键更宽或将其作为条形图的侧面或底部。

使用按键,它可以按比例修改高度和宽度。

另外,当使用ColSideColors时,我使用legend()来放置颜色标签,但是“topright”不在右上角。 我知道这是关于绘图区域,边距等的,但我还没有找到一个很好的解释性文本,关于heatmap.2 plot的结构如何以及如何通过坐标定位事物以及如何处理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)

你可以尝试添加'inset'参数并使用尺寸来进一步向右移动图例(第一个值)和/或进一步向顶部移动(第二个值),例如:

传奇('topright',inset = c(。02,。02)等......)

有一种方法可以组织你在这里描述的情节: 在R heatmap中移动颜色键.2(gplots包的功能)当有一个ColSideColorsheatmap.2会将图绘制为

1 ColSideColors

2热图

3 ...等等,如上面的链接

从未使用RowSideColors进行测试。 换句话说,您可以使用lwid lmatlwidlhei参数组织heatmap.2 这可以为你的传奇提供一些空间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM