我的问题不同于这个Side-by-side plots with ggplot2。有两个原因: 1)当我使用gridExtra时,使用heatmap ()函数时,由heatmap()生成的热图和由其他函数生成的柱状图不能保存在一张图片中。2)我希望"barplots对应于heatmap的行/列“。我尝试过使用gridExtra,但随着数据集的不同,情况发生了变化。
我想将一些条形图与热图合并,这样左/右条形图与热图的行相对应,并且顶部/底部条形图与热图的列相对应。就像这张图片(底部有一个条形图) MATLAB Bar graph + HeatMap/Imagesc
现在使用了NMF包中的aheatmap(),代码如下(但我不能添加barplots):
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吗?
发布于 2015-04-27 16:26:24
那么,在开始的时候,沿着这些思路做些什么?
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)https://stackoverflow.com/questions/29888763
复制相似问题