我必须使用以下方法创建不同图的排列ggarrange:
arrange <- ggarrange(P1,P2,P3,P4,P5, ncol=3,nrow = 2,common.legend = F, align = c("hv"))
arrange
Run Code Online (Sandbox Code Playgroud)
我想添加一个常见的图例,所以我这样做了:
arrange <- ggarrange(P1,P2,P3,P4,P5, ncol=3,nrow = 2,common.legend = T, align = c("hv"),legend="top")
arrange
Run Code Online (Sandbox Code Playgroud)
但是,我希望图例位于图表的右下部分,在“空白”空间中。
你知道我该怎么做吗?
也许它存在更简单、更容易的解决方案,但一个快速的方法是创建一个空图,仅显示图例并用于填充 中的最后一个位置ggarrange。
这里使用数据集,您可以首先通过iris指定删除图例来生成五个图:legend.position = "none"theme
library(ggplot2)
p2 <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species))+
geom_point()+
theme(legend.position = "none")
Run Code Online (Sandbox Code Playgroud)
然后,绘制一个空图,仅将图例显示在绘图区域的中间。您可以增加 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)))
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用ggarrange并指定 p3 作为最后一个图:
library(ggpubr)
ggarrange(p2,p2,p2,p2,p2, p3)
Run Code Online (Sandbox Code Playgroud)
它回答了你的问题吗?
| 归档时间: |
|
| 查看次数: |
5815 次 |
| 最近记录: |