2017-01-10 13 views
2

私は5つのプロットと1つの共有凡例があります(2行、3列) - グリッドに配置したいパネルがあります。右下のパネルは凡例に使用する必要があります。空のパネルの凡例をcowplot/ggplot2で表示します

library(ggplot2) 
library(cowplot) 
df <-data.frame(a=seq(1,20),b=seq(1,20), c=as.factor(c(rep("A", 10),rep("B",10)))) 
O <- ggplot(df, aes(x = a, y = b)) + geom_point(aes(col=c)) 
legend <- get_legend(O) 

A <- ggplot(df, aes(x = a, y = b)) + geom_point(aes(col=c), show.legend = F) 
B <- ggplot(df, aes(x = c, y = b)) + geom_boxplot(aes(col=c), show.legend = F) 
C <- ggplot(df, aes(x = a, y = b)) + geom_line(aes(group=c, col=c), show.legend=F) 
D <- ggplot(df, aes(a)) + geom_histogram() 



lol <- plot_grid(A, B, C, 
       D, A, NULL, ncol=3, nrow=2, 
       align="hv", rel_widths = c(1, 1, 1, 1, 1, 1), 
       labels = c('A', 'B', 'C', 'D', 'E', '')) 

これは、ここで指定したチュートリアルは以下:今すぐ質問を https://cran.r-project.org/web/packages/cowplot/vignettes/shared_legends.html

を、私はビネットの最後のplotコマンドととティンカー製:

lol + draw_grob(legend, 2/3.3, 0, .3/3.3, 1) 

が、私はのロジックを把握することはできませんdraw_grob引数に与えられた(見かけの?)座標系。誰かが空の場所に伝説をナビゲートする方法を明確にすることはできますか?

アライメントが機能しないため、 'plot_grid'に 'legend'オブジェクトを使用できないことに注意してください。

答えて

1

あなたは、左下隅、及び(x +幅, Y + height`)における右上のように点(xy)を有する長方形としてそれを見る必要があります。

ので、この場合には:あなたが望むかもしれない

enter image description here

lol + draw_grob(legend, 2/3, 0, 1/3, 0.5) 
全体ではなく、キャンバス、他のプロットの実際の描画領域とそれにレベルを置くこと yを少し上げます。

関連する問題