Комбинированная центрированная легенда

#r #ggplot2 #patchwork

#r #ggplot2 #пэчворк

Вопрос:

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

 library(ggplot2)
library(patchwork)

x1 <- ggplot(iris,aes(Sepal.Width, Petal.Length, col=Species)) 
       geom_point()

x2 <- ggplot(iris,aes(Petal.Width, Petal.Length, col=Species)) 
       stat_ellipse(show.legend=F)

wrap_plots(x1, x2, guides="collect")  
  theme(legend.position="top",
        legend.direction="horizontal")
 

Это то, что я получаю.

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

Это то, чего я ожидал.

 ggpubr::ggarrange(x1, x2, common.legend=T)
 

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

Ответ №1:

Проблема в том, что вы используете вместо amp; . Смотрите Здесь различия между операторами:

  1. При этом слой темы применяется только к последнему сюжету, т.Е. x2 В вашем случае, у которого нет легенды
  2. Если вы хотите применить ко всем графикам, вы должны использовать amp;
 library(ggplot2)
library(patchwork)

x1 <- ggplot(iris,aes(Sepal.Width, Petal.Length, col=Species)) 
  geom_point()

x2 <- ggplot(iris,aes(Petal.Width, Petal.Length, col=Species)) 
  stat_ellipse(show.legend=F)

wrap_plots(x1, x2, guides="collect") amp;
  theme(legend.position="top",
        legend.direction="horizontal")