2015-11-25 65 views
2

我想創建一個具有標有「(A)」,「(B)」,「(C)」的3個圖(p1,p2,p3)和一個沒有標籤的傳說。但我的審判失敗了。你介意幫我嗎?謝謝你的時間!添加標籤到面板包括3個圖表和一個圖例

我提取的傳說,從我的曲線圖的一個感謝功能get_legend

get_legend<-function(myggplot){ 
    tmp <- ggplot_gtable(ggplot_build(myggplot)) 
    leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box") 
    legend <- tmp$grobs[[leg]] 
    return(legend) 
} 
legend <- get_legend(p1)# Save the legend 
p1 <- p1 + theme(legend.position="none")# Remove the legend from the box plot 

這是我寫的有最後的圖中的腳本,但是,這是行不通的:

grid.arrange(p3, p1, p2, legend, labels=c("(A)", "(B)", "(C)", " "), ncol=4, widths=c(2, 2, 2, 0.8)) 

此腳本下面的作品,但遺憾的是沒有標籤我的三個地塊:

grid.arrange(p3, p1, p2, legend, ncol=4, widths=c(2, 2, 2, 0.8)) 

3plots without labels and legend

有什麼建議嗎?非常感謝你!

回答

2

你可以試試這個代碼(未經測試):

plots <- mapply(arrangeGrob, list(p3, p1, p2, legend), bottom=c("A", "B", "C", ""), SIMPLIFY=FALSE) 

do.call(grid.arrange, plots)