2016-11-29 6 views
5

grid.arrangeを使用してリストからggplot2プロットの倍数を作成しますが、列で並べる前にそれらを並べる必要があります。 grid.arrange ggplot2リストを使用して行ではなく列別にプロットする

do.call(grid.arrange,c(gg_list1,gg_list2 , ncol = 2, nrow = 3)) 

が、それは上から下へ前に左から右へいっぱい:

gg_list1 <- list(qplot(mpg, disp, data = mtcars), 
       qplot(hp, wt, data = mtcars), 
       qplot(qsec, wt, data = mtcars)) 

gg_list2 <- list(qplot(mpg, disp, data = mtcars), 
       qplot(hp, wt, data = mtcars), 
       qplot(qsec, wt, data = mtcars)) 

私はこれを行うことができます知っています。

do.call(grid.arrange, c(gg_list1, arrangeGrob(gg_list2, nrow = 3), ncol = 2)) 

しかしError: length(widths) == ncol is not TRUE

任意のアイデアを得る:

私は、これは試してみましたか?

答えて

6

あなたがもっと欲しい場合はあなたが必要とするすべては

grid.arrange(grobs = c(gg_list1, gg_list2), ncol = 2, as.table = FALSE) 

grid plot

ですので、cで平らに、列単位埋めるためにリストとas.tableパラメータを渡すためにgrobsパラメータを使用することができます

my_layout <- rbind(c(1, 1:3, 4), c(1, 1:3, 4), c(1, 1:3, 5), c(1, 1:3, 6)) 

my_layout 
##  [,1] [,2] [,3] [,4] [,5] 
## [1,] 1 1 2 3 4 
## [2,] 1 1 2 3 4 
## [3,] 1 1 2 3 5 
## [4,] 1 1 2 3 6 

grid.arrange(grobs = c(gg_list1, gg_list2), layout_matrix = my_layout) 

:複雑なレイアウトは、layout_matrixパラメータを使用します

詳細はthe arrangeGrob vignetteを参照してください。

+0

ありがとうAlistaire。 'grob ='引数を使った最初の例は、上から下に向かって左から右へ、fyiでいっぱいですが、おそらくあなたはそれを知っていましたか?あなたの2番目の例が働いた!ありがとうございました - 私はこれを過去4時間にわたって把握しようとしていますが、冗談はありません。 – Bonono

+2

'as.table = FALSE'を追加して列方向に塗りつぶすことができます。私は編集します。 – alistaire

関連する問題