2017-01-23 28 views
4

各ページに複数のグラフを含むpdfファイルを作成しています。gridextraパッケージのmarrangeGrobを使ってグラフを作成すると、最初のページは常に空白になります。最初のページでプロットを開始するにはどうすればよいですか?ここではいくつかのサンプルコードがあります:R:marrangeGrobを使ってpdf結果を空白の最初のページにする

library(gridextra) 
library(ggplot2) 
data(iris) 

Plotlist <- list() 

Plotlist[[1]] <- ggplot(data = subset(iris, Species == "setosa"), 
         aes(x = Sepal.Width, y = Sepal.Length)) + 
     geom_point() 

Plotlist[[2]] <- ggplot(data = subset(iris, Species == "versicolor"), 
         aes(x = Sepal.Width, y = Sepal.Length)) + 
     geom_point() 

Plotlist[[3]] <- ggplot(data = subset(iris, Species == "virginica"), 
         aes(x = Sepal.Width, y = Sepal.Length)) + 
     geom_point() 

pdf("iris.pdf", width = 8.5, height = 11) 
marrangeGrob(Plotlist, nrow = 2, ncol = 1) 
dev.off() 

PDFの2ページ目でもトップ、「2の1ページ」で述べているので、いくつかの切断がどこかにあります。

+0

次のようにして、以下のコードを使用して3つのプロットを生成することができます: 'Plotlist < - lapply(スプリット(アイリス、アイリス$種)、機能(S){ ggplotを(S、aes(x = Sepal.Width、y = Sepal.Length))+ geom_point() }) – eipi10

+0

ああ...素敵で簡潔です。ヒントをありがとう! – LauraS

答えて

6

私は、ggplot2では、オープンデバイスが必要なグリッドユニットを評価するためにグリッド関数を呼び出すために最近何かが変更されたと思います。あなたはこの回避策を試すことができます

glist <- lapply(Plotlist, ggplotGrob) 
ggsave("iris.pdf", marrangeGrob(glist, nrow = 2, ncol = 1)) 
+1

ありがとう!それはうまくいった! – LauraS

+0

も金曜日の夜に私のために働いて、私の毛深いお尻を救った! –

関連する問題