Я хочу устроить 3 квадратных ggplots, показывая один из них больше, а два других меньше вместе с первым.grid.arrange(): расположите 3 участка аккуратно
Вот моя попытка:
gg1 <- ggplot(mtcars,aes(x=hp,y=mpg))+
geom_point(aes(color=factor(cyl)),alpha=.5)+
stat_smooth(method='lm', se=F, color='red')+
ggtitle('plot 1')+
theme_bw()+
theme(aspect.ratio=1,
legend.position = c(1, 1),
legend.justification = c(1,1),
legend.background = element_rect(colour = NA, fill = NA))
gg2 <- ggplot(mtcars)+
geom_density(aes(x=hp, color=factor(cyl)))+
ggtitle('plot 2')+
theme_bw()+
theme(aspect.ratio=1,
legend.position = c(1, 1),
legend.justification = c(1,1),
legend.background = element_rect(colour = NA, fill = NA))
gg3 <- ggplot(mtcars)+
geom_density(aes(x=mpg, color=factor(cyl)))+
ggtitle('plot 3')+
theme_bw()+
theme(aspect.ratio=1,
legend.position = c(1, 1),
legend.justification = c(1,1),
legend.background = element_rect(colour = NA, fill = NA))
grid.arrange(arrangeGrob(gg1),
arrangeGrob(gg2,gg3, ncol=1),
ncol=2, widths=c(1,1))
В принципе, я хочу, чтобы верхняя граница маленького Plot2 быть на одном уровне с верхней границей большого Plot1, а нижняя граница plot3 быть на одном уровне с нижняя граница участка1. Также ggtitle1 должны быть на одном уровне с ggtitle 2.
Когда я сохранить тройную сюжет (даже сохраняя нужное соотношение сторон)
png(file = 'test.png',width=900,height=600)
grid.arrange(arrangeGrob(gg1),
arrangeGrob(gg2,gg3, ncol=1),
ncol=2, widths=c(1,1))
dev.off()
я получаю что-то вроде этого
Любые идеи о том, как управлять аккуратной организацией?
это не решит проблему и в любом случае, я хочу, чтобы ширина была чем-то вроде c (2,1) – ikashnitsky
Ha! widths = c (2,1) решить проблему)) Спасибо! – ikashnitsky
Честно говоря, я не полностью изучил проблему, я только что понял, но да, 'widths = c (2,1)' решает ее :-) – drmariod