#r #ggplot2 #patchwork
Вопрос:
Я устраиваю несколько сюжетов, используя patchwork
пакет. На одном из графиков текст расположен вертикально, что толкает метку оси x вниз (как и должно быть), но когда я объединяюсь со вторым графиком, метки оси x на обоих участках перемещаются вниз. Я хотел бы сохранить метку оси x второго графика в исходном положении. Проще объяснить на примере:
library(ggplot2)
library(patchwork)
# Toy data
mtcars2 <- mtcars[1:5, ]
mtcars2$mod <- row.names(mtcars2)
# make 2 plots
p1 <- ggplot(mtcars2, aes(mod, mpg))
geom_col()
theme(axis.text.x = element_text(angle = 90, vjust = 0, hjust = 1))
p2 <- ggplot(mtcars2, aes(hp, disp))
geom_point()
# arrange plots next to each other
p1 p2
Но я хочу:
Возможно ли это? Я не привязан к patchwork
этому, и я пытался gridExtra::grid.arrange()
, но вместо этого изменил размеры участков.
Ответ №1:
Используя library(cowplot)
, ось x p2
будет опускаться, не так, как в вашем примере, но я хочу, чтобы это вам помогло. Если вам нужно указать местоположение оси x в том же положении, пожалуйста, дайте мне знать.
Дополнительная заметка от @phalteman
Добавив , align = "h", axis = "b"
plot_grid
, это действительно станет тем, что вы хотели!!
library(cowplot)
mtcars2 <- mtcars[1:5, ]
mtcars2$mod <- row.names(mtcars2)
# make 2 plots
p1 <- ggplot(mtcars2, aes(mod, mpg))
geom_col()
theme(axis.text.x = element_text(angle = 90, vjust = 0, hjust = 1))
p2 <- ggplot(mtcars2, aes(hp, disp))
geom_point()
# arrange plots next to each other
plot_grid(p1, p2, align = "h", axis = "b") #Thanks to @phalteman
Комментарии:
1. Включите
align = "h", axis = "b"
это в свой вызовplot_grid()
, и он сделает именно то, о чем просил ОП.