同じpngまたはpdfで2つ以上のヒートマップを並べて表示しようとしています。この場合、レイアウトまたはmfcolが機能していません。誰かがこれを手伝ってくれませんか。
質問する
12048 次
4 に答える
4
最近導入された gridGraphics パッケージを使用した 1 つのオプションを次に示します。
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)
于 2015-08-02T03:02:35.760 に答える
3
heatmap.2 のヘルプドキュメントに記載されているように、
「heatmap.2()」は「レイアウト」を使用し、2x2 レイアウトの右下隅に「画像」を描画します。したがって、複数の列/行のレイアウトでは使用できません。つまり、'par(mfrow= *)' または '(mfcol= *)' が呼び出された場合です。
同じことがヒートマップにも当てはまります。
于 2014-03-05T02:52:43.777 に答える
1
まったく同じ問題が発生した後、次の解決策を思い付きました。
1) ggplot2 を使用して、次のようにデンドログラムでヒートマップを作成します: ggplot2 を使用してラティス デンドログラム グラフを再現し、multiplot() 関数で配置します ( http://www.cookbook-r.com/Graphs/Multiple_graphs_on_one_page_%28ggplot2%29/ ) 。
2) しかし、これは大変な作業であり、基本の heatmap() 関数に固執したかったのです。以下は簡単で (単純な R ではありません)、imagemagick がインストールされている場合は Linux で動作します。
m <- matrix(runif(10^2), ncol=10)
for (i1 in 1:4) {
ifile <- paste0(i1,'_heatmap.pdf')
pdf(ifile)
heatmap(m)
d <- dev.off()
}
system('montage -geometry 100% -tile 2x2 ./*_heatmap.pdf outfile.pdf')
于 2015-03-27T09:24:55.950 に答える