首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用R添加热图周围的barplot

使用R添加热图周围的barplot
EN

Stack Overflow用户
提问于 2015-04-27 14:35:19
回答 1查看 1.4K关注 0票数 0

我的问题不同于这个Side-by-side plots with ggplot2。有两个原因: 1)当我使用gridExtra时,使用heatmap ()函数时,由heatmap()生成的热图和由其他函数生成的柱状图不能保存在一张图片中。2)我希望"barplots对应于heatmap的行/列“。我尝试过使用gridExtra,但随着数据集的不同,情况发生了变化。

我想将一些条形图与热图合并,这样左/右条形图与热图的行相对应,并且顶部/底部条形图与热图的列相对应。就像这张图片(底部有一个条形图) MATLAB Bar graph + HeatMap/Imagesc

现在使用了NMF包中的aheatmap(),代码如下(但我不能添加barplots):

代码语言:javascript
复制
n <- 50; p <- 20
x <- abs(rmatrix(n, p, rnorm, mean=4, sd=1))
x[1:10, seq(1, 10, 2)] <- x[1:10, seq(1, 10, 2)] + 3
x[11:20, seq(2, 10, 2)] <- x[11:20, seq(2, 10, 2)] + 2
rownames(x) <- paste("ROW", 1:n)
colnames(x) <- paste("COL", 1:p) 
annotation = data.frame(Var1 = factor(1:p %% 2 == 0, labels = c("Class1", "Class2")), Var2 = 1:10)
aheatmap(x, annCol = annotation, Rowv=FALSE)

有什么建议使用aheatmap()或者甚至使用其他包来添加barplot吗?

EN

回答 1

Stack Overflow用户

发布于 2015-04-27 16:26:24

那么,在开始的时候,沿着这些思路做些什么?

代码语言:javascript
复制
m <- matrix(abs(rnorm(25 * 10)), ncol = 25)

plotMyHeat <- function(x) {
  x <- t(x)
  l <- matrix(c(1,2), ncol = 2)
  layout(l)
  op <- par(mar = c(2,2,1,0))  
  image(x)
  par(mar = c(2,1,1,1))
  barplot(rowMeans(x),horiz = TRUE, yaxs = "i")
  par(op)
}

plotMyHeat(m)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29888763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档