Я пытаюсь использовать grid.arrange для отображения нескольких графиков на той же странице, сгенерированной ggplot. Графики используют одни и те же данные x, но с разными y переменными. Графики выходят с различными размерами из-за у-данных, имеющих разные масштабы.
Я попытался использовать различные параметры темы в ggplot2, чтобы изменить размер графика и переместить метку оси y, но никто не работал, чтобы выровнять графики. Я хочу, чтобы графики располагались в квадрате 2 x 2, чтобы каждый график имел одинаковый размер и выравнивание по оси x.
Вот несколько тестовых данных:
A <- c(1,5,6,7,9)
B <- c(10,56,64,86,98)
C <- c(2001,3333,5678,4345,5345)
D <- c(13446,20336,24333,34345,42345)
L <- c(20,34,45,55,67)
M <- data.frame(L, A, B, C, D)
И код, который я использую для построения:
x1 <- ggplot(M, aes(L, A,xmin=10,ymin=0)) + geom_point() + stat_smooth(method='lm')
x2 <- ggplot(M, aes(L, B,xmin=10,ymin=0)) + geom_point() + stat_smooth(method='lm')
x3 <- ggplot(M, aes(L, C,xmin=10,ymin=0)) + geom_point() + stat_smooth(method='lm')
x4 <- ggplot(M, aes(L, D,xmin=10,ymin=0)) + geom_point() + stat_smooth(method='lm')
grid.arrange(x1,x2,x3,x4,nrow=2)
Если вы запустите этот код, вы увидите, что нижние два графика имеют меньшую площадь заговора из-за большей длины единиц осей y.
Как сделать окна реального графика одинаковыми?



 (Обратите внимание, что cowplot изменяет тему ggplot2 по умолчанию. Вы можете получить серый, хотя если вы действительно этого хотите.)
(Обратите внимание, что cowplot изменяет тему ggplot2 по умолчанию. Вы можете получить серый, хотя если вы действительно этого хотите.)

