我正在尝试创建一个结合了条形图的热图,这样每行的末尾都是一个长度与该行相关的条形图。我们的想法是将以下两个结合起来:
library(gplots)
data(mtcars)
x <- as.matrix(mtcars[,2:11])
hm<-heatmap(x)
barplot(mtcars[hm$rowInd,"mpg"],horiz=T,names.arg=row.names(mtcars)[hm$rowInd],las=2,cex.names=0.7,col="purple",2)
我的问题是如何在使行和条对齐的同时将两者结合起来? 感谢。
答案 0 :(得分:1)
您无法合并图表,因为(根据文档)heatmap() uses layout and draws the image in the lower right corner of a 2x2 layout. Consequentially, it can not be used in a multi column/row layout, i.e., when par(mfrow = *) or (mfcol = *) has been called.
你最好的方法是使用ggplot2和gridExtra来组合图形。为此,需要使用ggplot创建热图和条形图。
您可以在ggplot2教程here上找到热图。
使用以下命令将两个图组合后使用:
#Create the plots
g1 <- heatmap
g2 <- barplot
#Arrange them in a grid
gg1 <- ggplot_gtable(ggplot_build(g1))
gg2 <- ggplot_gtable(ggplot_build(g2))
grid.arrange(gg1, gg2, ncol=2)