/ / Чому мій ggplot2 легенда неправильно розміром при використанні gridExtra? [r] - r, ggplot2, gridextra

Чому моя помилка ggplot2 неправильно розмірів при використанні gridExtra? [r] - r, ggplot2, gridextra

Я організую кілька точкових ділянок з 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