См. мой связанный вопрос и принятый ответ #46834427">здесь.
Я пытаюсь создать график, аналогичный тому, что указан в принятом ответе, то есть график с сеткой с общей общей легендой и другой уникальной легендой, прикрепленной к каждому графику в сетке.
В частности, мне нужна сетка из 3 строк и 1 столбца с 1 графиком в каждой строке. Как это:
Который был произведен со следующим кодом:
library (ggplot2)
library(gridExtra)
library (grid)
library(cowplot)
diamonds2 <- diamonds[sample(nrow(diamonds), 500), ]
# 3 ggplot plot objects with multiple legends 1 common legend and 3 unique legends
p1<- ggplot(diamonds2, aes(x=price, y= depth, color= clarity , shape= cut )) +
geom_point(size=5) + labs (shape = "unique legend", color = "common legend")
p2 <- ggplot(diamonds2, aes(x=price, y= depth, color= clarity , shape= color )) +
geom_point(size=5) + labs (shape = "unique legend", color = "common legend")
p3 <- ggplot(diamonds2, aes(x=price, y= depth, color= clarity , shape= clarity )) +
geom_point(size=5) + labs (shape = "unique legend", color = "common legend")
cowplot::plot_grid(
cowplot::plot_grid(
p1 + scale_color_discrete(guide = FALSE),
p2 + scale_color_discrete(guide = FALSE),
p3 + scale_color_discrete(guide = FALSE),
nrow=3, ncol = 1))
Но с общей легендой, которая относится к аргументу color =
каждого объекта графика.
Я пробовал много вариантов приведенного ниже кода и добавлял/настраивал/удалял различные аргументы/параметры в соответствии с документацией cowplot
, но я не могу получить аккуратный график, подобный приведенному выше, с общей легендой внизу (или где-нибудь полезно! ) - все, что я пробовал, возвращает переполненный сюжет, как показано ниже.
Адаптация приведенного выше кода для включения общей легенды:
cowplot::plot_grid(
cowplot::plot_grid(
p1 + scale_color_discrete(guide = FALSE),
p2 + scale_color_discrete(guide = FALSE),
p3 + scale_color_discrete(guide = FALSE),
nrow=3, ncol = 1
),
cowplot::get_legend(p1 + scale_shape(guide = FALSE) + theme(legend.position = "bottom")), nrow=3)
В результате получается переполненный участок с большим количеством пустого пространства:
Может ли кто-нибудь предложить, где я могу ошибаться?