我必须使用ggarrange创建不同图的排列
arrange <- ggarrange(P1,P2,P3,P4,P5, ncol=3,nrow = 2,common.legend = F, align = c("hv"))
arrange

我想添加一个常见的图例,所以我这样做了:
arrange <- ggarrange(P1,P2,P3,P4,P5, ncol=3,nrow = 2,common.legend = T, align = c("hv"),legend="top")
arrange

然而,我希望图例在图表的右下部,在“空白”的地方。
你知道我怎么能这么做吗?
发布于 2020-05-01 11:00:13
也许它存在更简单和更容易的解决方案,但一种快速的方法是创建一个空的绘图,其中只显示要显示的图例并用于填充ggarrange中的最后一个定位。
在这里使用iris dataset,您可以首先通过在theme中指定legend.position = "none"来删除图例来生成五个图:
library(ggplot2)
p2 <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species))+
geom_point()+
theme(legend.position = "none")然后,绘制一个空图,在绘图区中间只显示图例。您可以增加ggplot的所有元素的大小,以使其在最终的图形面板上可见:
p3 <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species))+
geom_point()+
lims(x = c(0,0), y = c(0,0))+
theme_void()+
theme(legend.position = c(0.5,0.5),
legend.key.size = unit(1, "cm"),
legend.text = element_text(size = 12),
legend.title = element_text(size = 15, face = "bold"))+
guides(colour = guide_legend(override.aes = list(size=8)))现在,您可以使用ggarrange并将p3指定为最后一个绘图:
library(ggpubr)
ggarrange(p2,p2,p2,p2,p2, p3)

它回答了你的问题吗?
https://stackoverflow.com/questions/61534072
复制相似问题