Я хочу сделать фигуру с сеткой графиков, все одинаковой высоты, но некоторые с половиной ширины других.Я успешно использовал gtable_frame и gtable_cbind пакета egg, но осталась одна проблема: тексты по оси y имеют разные цифры на разных графиках, и мне не удается выровнять заголовки по оси y по прямой вертикальной линии.По сути, мой вопрос прямо противоположен этому ( cowplot: заголовок оси принудительно выравнивается при выравнивании двух графиков )
Я пытался играть с размерами полей и объемами заголовков безsuccess.
Вот воспроизводимый пример:
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"чтобы быть на одной линии.Спасибо за вашу помощь!