短版: 如何獲得axis.text和axix.title之間的差額的價值?獲取axis.text和axis.title之間的臨界值
龍版本: 我試圖合併三個ggplot圖形。規模應該是一致的,所以我使用rbind(與ggplotGrob)來對齊前兩個圖形。但是最後一個有一些方面,所以三個都不可能使用這個解決方案。
我的想法是在第三個圖形中手動設置axis.title和axis.text之間的空間(這可以使用margin和element_text來完成)。 但是,要做到這一點,我應該在前兩個圖形之一中獲取此邊距的值。我相信這個信息在ggplotGrob中可用,但我不知道在grob結構中檢索這個值的路徑。
假的代碼示例:
library(ggplot2)
library(gridExtra)
a <- ggplotGrob(ggplot(iris[iris$Species != "setosa",], aes(x=Sepal.Length, y=Petal.Width*100000, color=Species)) + geom_line() + theme(legend.position="none"))
b <- ggplotGrob(ggplot(iris[iris$Species != "setosa",], aes(x=Sepal.Length, y=Petal.Length, color=Species)) + geom_line() + theme(legend.position="none"))
c <- ggplotGrob(ggplot(head(mpg, 100), aes(class)) + geom_bar() + facet_grid(.~manufacturer, scales="free_x"))
g1 <- rbind(a, b, size="first")
grid.arrange(g1, c, ncol=1)
當前的結果: 前兩個圖形與繪圖區一致,但不是最後一個。 result plot
預期結果: 所有三個圖形的繪圖區域對齊。
本主題可能幫助你:http://stackoverflow.com/questions/38637261/perfectly-align-several-plots – bVa
謝謝@bVa! –