ggarrange растягивает объект ggplot, чтобы он занимал пустое пространство

Я пытаюсь построить 8 ggplot objects с ggarrange таким образом, чтобы он отображал 4 объекты ggplot в каждой строке. Код работает нормально, но теперь я хочу, чтобы график был построен таким образом, чтобы графики занимали дополнительное пустое пространство между меткой и графиком, например, график занимал белое пространство между меткой A и этим графиком, и и так для остальных участков. По сути, я хочу растянуть графики, чтобы использовалось все пространство, доступное в сетке. Как я могу это сделать?

gg.arrange = ggarrange(ggplot1,
                                  ggplot2,
                                  ggplot3,
                                  ggplot4,
                                  ggplot5,
                                  ggplot6,
                                  ggplot7,
                                  ggplot8,
                                  ncol = 4,
                                  nrow = 2,
                                  labels = c("A", "B", "C", "D", "E", "F", "G", "H"),
                                  common.legend = TRUE,
                                  legend = "bottom") 

Код для одного из объектов ggplot:

ggplot1 = ggplot(shapefile_sf_object) +
  geom_sf(aes(fill = Data), show.legend = T) + 
  coord_sf() +
  geom_sf(data = DEM_sf, aes(size = DEM), shape = 1, show.legend = T) +
  theme(axis.text.x = element_text(angle = 90)) +
  scale_fill_distiller(palette = "Spectral") +
  labs(title = "February", fill = "RMSE") 

введите здесь описание изображения


person Mandalorian    schedule 06.05.2021    source источник
comment
Не могли бы вы поделиться кодом одного из сюжетов?   -  person zx8754    schedule 06.05.2021
comment
@zx8754 zx8754, я добавил код для одного из графиков, как я и просил.   -  person Mandalorian    schedule 06.05.2021
comment
Вы пытались использовать другие пакеты, чтобы собрать все графики вместе? лоскутное шитье, коровник...   -  person zx8754    schedule 06.05.2021
comment
Нет, я не знаком с этими пакетами; Я проверю их. Спасибо, что поделились этим.   -  person Mandalorian    schedule 06.05.2021
comment
Попробуйте уменьшить маржу: theme(plot.margin = margin(0, 0, 0, 0, "cm"))   -  person zx8754    schedule 07.05.2021
comment
Сработала ли идея с маржей?   -  person zx8754    schedule 10.05.2021
comment
@zx8754, я пробовал, но так как у меня много объектов ggplot, и один из них — растр с тысячами пикселей, поэтому каждый раз, когда я запускал ggarrange для пробы новых полей, это занимало много времени. Итак, в конце концов я нашел способ, когда я нажимаю на увеличение в RStudio, всплывающее окно показывает график с уменьшенными полями, поэтому я просто сохранил его как изображение. Я знаю, что это может быть не идеально, но это сэкономило мне много времени.   -  person Mandalorian    schedule 11.05.2021
comment
Если ваш подход сработал для вас, укажите его в качестве ответа ниже.   -  person zx8754    schedule 11.05.2021
comment
@ zx8754 zx8754, пожалуйста, не стесняйтесь редактировать мой ответ, так как я новичок в ответах на вопросы, и приветствую продолжение.   -  person Mandalorian    schedule 12.05.2021


Ответы (1)


Я нашел другой способ уменьшить поля, то есть минимизировать пространство между меткой графика и самим графиком. Что я сделал, так это то, что однажды ggarrange отобразил графики в разделе сюжетов RStudio.

Я нажал кнопку Zoom, после чего графики отобразились во всплывающем окне, в котором были показаны графики с уменьшенным пространством между метками и графиками. И я считаю, что это можно дополнительно изменить, отрегулировав размер всплывающего окна.

Я использовал этот подход, потому что у меня было много графиков в ggarrange, и один из этих графиков содержал растр с тысячами пикселей, поэтому каждый раз, когда я пробовал что-то другое с кодом, ggarrange занимал много времени, тем самым снижая производительность. моего компьютера.

введите здесь описание изображения

person Mandalorian    schedule 11.05.2021