首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用ggpubr包中的`ggarare`排列多个绘图后添加图例?

如何在使用ggpubr包中的`ggarare`排列多个绘图后添加图例?
EN

Stack Overflow用户
提问于 2020-05-01 06:48:58
回答 1查看 1.4K关注 0票数 2

我必须使用ggarrange创建不同图的排列

代码语言:javascript
复制
arrange <- ggarrange(P1,P2,P3,P4,P5, ncol=3,nrow = 2,common.legend = F, align = c("hv"))
arrange

我想添加一个常见的图例,所以我这样做了:

代码语言:javascript
复制
arrange <- ggarrange(P1,P2,P3,P4,P5, ncol=3,nrow = 2,common.legend = T, align = c("hv"),legend="top")
arrange

然而,我希望图例在图表的右下部,在“空白”的地方。

你知道我怎么能这么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-01 11:00:13

也许它存在更简单和更容易的解决方案,但一种快速的方法是创建一个空的绘图,其中只显示要显示的图例并用于填充ggarrange中的最后一个定位。

在这里使用iris dataset,您可以首先通过在theme中指定legend.position = "none"来删除图例来生成五个图:

代码语言:javascript
复制
library(ggplot2)

p2 <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species))+
  geom_point()+
  theme(legend.position = "none")

然后,绘制一个空图,在绘图区中间只显示图例。您可以增加ggplot的所有元素的大小,以使其在最终的图形面板上可见:

代码语言:javascript
复制
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指定为最后一个绘图:

代码语言:javascript
复制
library(ggpubr)
ggarrange(p2,p2,p2,p2,p2, p3)

它回答了你的问题吗?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61534072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档