1

plot()関数によって作成された4つのサブプロットを含む大きなプロットを作成したいと思います。すべてのサブプロットは、png/pdfファイル形式で保存されます。RにこれらのプロットをRにインポートしてから、すべてのサブプロットを含む大きなプロットを作成する方法はありますか?

4

2 に答える 2

1

'grImport'パッケージには、PDFファイルを読み取り、RGMLに変換してから、グリッドグラフィックフレームワーク内で使用するためにインポートする機能があります。

'png'パッケージにはreadPNG機能があります。

そして、latemailがこれらのプロットを作成したデータとコードの両方を持っているかどうかを示唆しているので、layout関数を調べるかpar、引数mfrow、mfcol、またはmfgで使用することをお勧めします。

于 2013-01-14T01:14:40.350 に答える
1

各プロットを作成し、それらを一緒にレイアウトしてから1つのファイルとして保存することにより、ソースで問題を修正するのは簡単ではないでしょうか。gridレイアウト関数は、私が知る限り、基本関数と連動するはずですplot。を使用した簡単な例を次に示しggplot2ます。使用する場合ggplotは、ファセット関数も使用できる可能性があります。画像の後にコードが続きます。

スクリーンショット

library(ggplot2)
library(grid)

set.seed(23456)
mydf <- data.frame(mydate = seq(as.Date('2012-01-01'), as.Date('2012-12-01'), by = '1 month'),
                   run1 = runif(12, 100, 200),
                   run2 = runif(12, 300, 400),
                   run3 = runif(12, 1000, 2000),
                   run4 = runif(12, 2000, 3000))

p1 <- ggplot(data = mydf) +
         geom_line(aes(x = mydate, y = run1))

p2 <- ggplot(data = mydf) +
         geom_line(aes(x = mydate, y = run2))

p3 <- ggplot(data = mydf) +
         geom_line(aes(x = mydate, y = run3))

p4 <- ggplot(data = mydf) +
         geom_line(aes(x = mydate, y = run4))


png(filename = paste("multipleplot.png", sep = ""), width = 600, height = 600, units = "px", res = NA)
grid.newpage()
pushViewport(viewport(layout = grid.layout(2, 2, widths = c(300, 300))))

vplayout <- function(x, y)
    viewport(layout.pos.row = x, layout.pos.col = y)

print(p1, vp = vplayout(1,1))
print(p2, vp = vplayout(1,2))
print(p3, vp = vplayout(2,1))
print(p4, vp = vplayout(2,2))
dev.off()
于 2013-01-14T01:21:23.860 に答える