выровнять графики карты ggplot с координированием () - PullRequest
4 голосов
/ 03 апреля 2020

У меня проблемы с выравниванием двух карт. Я использую воспроизводимый пример ниже:

library(ggplot2)
library(cowplot)
world <- map_data("world")

pl2= ggplot() +
  geom_polygon(data=world, aes(x=long, y=lat, group=group)) +
  theme_bw()+
  coord_equal()
pl1 <- ggplot() +
  geom_polygon(data=world, aes(x=long, y=lat, group=group, color=group)) +
  coord_equal()
plot_grid(pl2, pl1 + theme(legend.justification = c(0,1)), align="h",axis = "bt")

Я пробовал разные вещи, такие как установка ширины и высоты фигуры, пробовал scale=, различные варианты из align="h",axis = "bt" Я также пробовал plot_grid(pl2, pl1+ theme(legend.position = "none"), align="h", scale=c(1,1)), а затем добавил legend legend <- get_legend(pl1) с plot_grid снова. У меня также есть сумасшедшее количество пустого пространства, когда я используюordin_equal, от которого я не могу избавиться (я не сохраняю график, просто отображаю его)

enter image description here

1 Ответ

3 голосов
/ 03 апреля 2020

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

library(patchwork)
pl2 + pl1

enter image description here

...