我想用一个绘图网格制作一个图形,所有图形的高度都相同,但有些图形的宽度是其他图形的一半。我已经成功地使用了egg包的gtable_frame和gtable_cbind,但是仍然存在一个问题:y轴文本在不同的图形上具有不同的数字位数,而且我无法设法使y轴标题垂直对齐。 基本上,我的问题与这一问题(cowplot: axis title forcefully aligned when aligning two plots)完全相反
我尝试使用边距大小和标题的标题而没有成功。
以下是可重现的示例:
library(ggplot2)
library(egg)
library(cowplot)
library(gridExtra)
library(grid)
p1 <- ggplot(mtcars, aes(cyl, hp, colour = factor(cyl))) +
geom_point() +
theme(legend.position="none")
p2 <- ggplot(mtcars, aes(mpg, cyl, colour = factor(cyl))) +
geom_point() +
theme(legend.position="none")
p3 <- ggplot(mtcars, aes(mpg, wt, colour = factor(cyl))) +
geom_line() +
theme(legend.position="none")
g1 <- ggplotGrob(p1)
g2 <- ggplotGrob(p2)
g3 <- ggplotGrob(p3)
fg1 <- gtable_frame(g1, debug = TRUE)
fg2 <- gtable_frame(g2, debug = TRUE)
fg12 <- gtable_frame(gtable_cbind(fg1, fg2),
width = unit(2, "null"),
height = unit(1, "null"))
fg3 <- gtable_frame(g3,
width = unit(2, "null"),
height = unit(1, "null"),
debug = TRUE)
grid.newpage()
line1 <- gtable_cbind(fg1, fg1)
line2 <- gtable_cbind(fg12, fg3)
line3 <- gtable_cbind(fg3, fg12)
combined <- gtable_rbind(line1, line2, line3)
grid.draw(plot_grid(combined))
我希望“ wt”和“ hp”标题在同一行上对齐。 感谢您的帮助!