这是使用最近推出的 gridGraphics 包的一个选项,
library(gridGraphics)
library(grid)
heatmap(as.matrix(mtcars))
library(gridGraphics)
grab_grob <- function(){
grid.echo()
grid.grab()
}
g <- grab_grob()
grid.newpage()
# library(gridExtra)
# grid.arrange(g,g, ncol=2, clip=TRUE)
lay <- grid.layout(nrow = 1, ncol=2)
pushViewport(viewport(layout = lay))
grid.draw(editGrob(g, vp=viewport(layout.pos.row = 1,
layout.pos.col = 1, clip=TRUE)))
grid.draw(editGrob(g, vp=viewport(layout.pos.row = 1,
layout.pos.col = 2, clip=TRUE)))
upViewport(1)
Run Code Online (Sandbox Code Playgroud)
正如heatmap.2的帮助文档中所述,
'heatmap.2()' 使用 'layout' 并在 2x2 布局的右下角绘制 'image'。因此,它不能用于多列/行布局,即当调用“par(mfrow= *)”或“(mfcol= *)”时。
热图也是如此。