Я організую кілька точкових ділянок з gridExtra. Коли я будую сюжет однієї ділянки, легенда має правильний розмір і в правильному місці. Це виглядає так:
Моя проблема виникає, коли я використовую gridExtra grid.arrange()
побудувати кілька в сітці. Легенди не змінюються з рештою ділянок і виглядають так:
Ось код для ділянки і рядок для створення сітки:
b2 <- ggplot(y2, aes(Rain_discrete, Cum_stress))+
geom_point(aes(color = Planting), size = 2.25)+
guides(colour = guide_legend(direction = "vertical",
title.position = "top", title = NULL,
label.theme = element_text(size = 8, angle = 0)))+
theme(legend.justification=c(1,1),
legend.position=c(1,1),
legend.margin = margin(1,1,1,1),
plot.title = element_text(size = 9, angle = 0),
plot.margin = margin(2,1,4,1),
axis.title.x = element_text(size = 8, angle = 0),
axis.title.y = element_text(size = 8, angle = 90),
axis.text.x = element_text(size = 8, angle = 0),
axis.text.y = element_text(size = 8, angle = 0))+
coord_cartesian(xlim = c(0, 85), ylim = c(-30,420))+
xlab("Discrete Rain")+
ylab("Cumulative Stress")+
ggtitle("2002")
grid.arrange(b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13)
Я маніпулював характеристиками легенди шляхом скидання label.theme = element_text(size = 8, angle = 0)
від напрямної частини ділянки. Моя логіка полягає в тому, що безпосереднє визначення розміру тексту запобігало адекватному зміні розмірів ділянок. Це не спрацювало. Я не можу точно визначити проблему.
Чому легенди не мають відповідного розміру з використанням gridExtra()
? Я намагаюся структурувати код ggplot2 таким чином, щоб змусити легенди залишатися на місці і пропорційно масштабуватися при використанні gridExtra()
.
Дякуємо за пораду.
Відповіді:
1 для відповіді № 1Я думаю, що розмір шрифту є проблемою. Чи намагалися ви зменшити розмір зображення "глобально"? Люблю
ggplot(y2, aes(Rain_discrete, Cum_stress))+
geom_point(aes(color = Planting), size = 2.25)+
guides(colour = guide_legend(direction = "vertical",
title.position = "top", title = NULL,
label.theme = element_text(size = 8, angle = 0))) +
theme_grey(6) +
theme(legend.justification=c(1,1),
legend.position=c(1,1),
legend.margin = margin(1,1,1,1),
plot.margin = margin(2,1,4,1))+
coord_cartesian(xlim = c(0, 85), ylim = c(-30,420))+
xlab("Discrete Rain")+
ylab("Cumulative Stress")+
ggtitle("2002")
Або шляхом зміни розміру легенди додатково?
theme(legend.key.size=unit(1,"mm"),
legend.text=element_text(size=6),
legend.title=element_text(size=7))
-1 для відповіді № 2
Dnt знаю, чому це відбувається, але ви можете спробувати cowplot
пакет для побудови ж, як альтернатива. https://cran.r-project.org/web/packages/cowplot/vignettes/introduction.html