首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ggarrange中编辑常用图例标题?

如何在ggarrange中编辑常用图例标题?
EN

Stack Overflow用户
提问于 2019-12-04 01:57:59
回答 1查看 10.1K关注 0票数 7

如何使用ggarrange编辑常用图例标题(设置为粗体并放大字号

基于我拥有的六个图(从p1到p6),我认为以下方法是可行的:

代码语言:javascript
复制
p6 <-  p6 + theme(legend.title = element_text(size = 15, face = "bold")

下面的ggarrange用于组合这六个图:

代码语言:javascript
复制
p <- ggarrange(p1, p2, p3, p4, p5, p6,
          common.legend = TRUE, 
          legend = "bottom", 
          labels = c("1", "2", "3", "4", "5", "6"),
          # font.label = list(size = 10, color = "green"),
          nrow = 2, ncol = 4
          )

但是,这根本不会改变常见的图例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-04 02:35:04

您可以从感兴趣的地块中提取图例,然后将该图例与地块一起排列。

代码语言:javascript
复制
#libraries:

library(ggplot2)
library(ggpubr)
library(gridExtra)
library(grid)
代码语言:javascript
复制
#example plots:

p1 <- ggplot(mtcars) + 
        geom_point(aes(x=mpg, y=qsec, color = factor(cyl)))

p2 <- ggplot(mtcars) + 
        geom_point(aes(x=mpg, y=4*drat, color = factor(cyl))) + 
        theme(legend.title = element_text(size = 15, face = "bold"),
              legend.position="bottom")
代码语言:javascript
复制
#function to extract the legend of a ggplot; source:
#https://github.com/hadley/ggplot2/wiki/Share-a-legend-between-two-ggplot2-graphs

get_legend<-function(a.gplot){
  tmp <- ggplot_gtable(ggplot_build(a.gplot))
  leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box")
  legend <- tmp$grobs[[leg]]
  return(legend)}
代码语言:javascript
复制
#arranging the legend and plots in a grid:

p2_legend <- get_legend(p2)

grid.arrange(arrangeGrob(p1 + theme(legend.position="none"), 
                         p2 + theme(legend.position="none"), nrow=2), 
             p2_legend, 
             nrow=2,heights=c(10, 1))

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

https://stackoverflow.com/questions/59162865

复制
相关文章

相似问题

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