Следующий пример выглядит как мои данные:
library(ggplot2)
library(gridExtra)
set.seed(123)
a=sample(1:100, 100)
b=sample(1:50, 100, replace = TRUE)
obj= data.frame(a,b)
ggplot(obj, aes(a, b, col=a))+
geom_point()+
geom_path()+
coord_cartesian(xlim =c(0, 100), ylim = c(0, 50))
Числа масштабируются здесь, xaxis в два раза длиннее оси y, как видно в R. Однако, как только я расположу их с grid.arrange и перенести их в PDF, графики станут квадратными:
plot1=ggplot(obj, aes(a, b, col=a))+
geom_point()+
geom_path()+
coord_cartesian(xlim =c(0, 100), ylim = c(0, 50))
plot2= ggplot(as.data.frame(c(1,2),c("1","2")), aes(1,1))+
geom_point()
plot3= ggplot(obj,aes(a))+
geom_histogram()
grid.arrange(plot1, plot2, plot1, plot3, nrow=2)
Я сделал свой PDF в альбомной форме, чтобы соответствовать графикам, но они остались в квадрате. Добавление ширины, кажется, просто масштабирует положение четырех графиков, а не оси. Я играл с Cowplot, но этот не совместим с PDF (я запускаю al oop на многих файлах данных, которые собирают графики в один файл PDF. У кого-нибудь есть другие предложения? Заранее спасибо.
И бонусный вопрос ... Как поменять легенду, чтобы темные 25 были на вершине?