如何在ggpubr中调整图例的大小

Posted

技术标签:

【中文标题】如何在ggpubr中调整图例的大小【英文标题】:How to resize legend in ggpubr 【发布时间】:2021-12-06 18:04:07 【问题描述】:

我有以下代码:

T<-as.data.frame(matrix(0,11,2))
T$V2<-T$V2+1
colors <- c("V1" = "blue", "V2" = "red")
A<-ggplot(T,aes(x=seq(-5,5)))+
  #geom_smooth(aes(ymin=Treat-Treatse,ymax=Treat+Treatse),colour='blue')+
  geom_line(aes(y=V1,color="V1"))+
  geom_point(size=2,aes(y=V1,color="V1"))+
  geom_line(aes(y=V2,color="V2"))+
  geom_point(size=2,aes(y=V2,color="V2"))+
  labs(x='Yadayada',y='Dumdedum',color="Legend")+
  scale_color_manual(values = colors)+geom_vline(xintercept=0,linetype='dashed',col='blue')+
  scale_x_continuous(breaks=seq(-5,5),labels=c('-5','-4','-3','-2','-1','0','1','2',
                                               '3','4','5'))+theme_classic()+
  ggtitle('Example')
B<-ggplot(T,aes(x=seq(-5,5)))+
  #geom_smooth(aes(ymin=Treat-Treatse,ymax=Treat+Treatse),colour='blue')+
  geom_line(aes(y=V1,color="V1"))+
  geom_point(size=2,aes(y=V1,color="V1"))+
  geom_line(aes(y=V2,color="V2"))+
  geom_point(size=2,aes(y=V2,color="V2"))+
  labs(x='Yadayada',y='Dumdedum',color="Legend")+
  scale_color_manual(values = colors)+geom_vline(xintercept=0,linetype='dashed',col='blue')+
  scale_x_continuous(breaks=seq(-5,5),labels=c('-5','-4','-3','-2','-1','0','1','2',
                                               '3','4','5'))+theme_classic()+
  ggtitle('Example')
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)
legend<-get_legend(B)
ggarrange(arrangeGrob(A+theme(legend.position="none"),
                      B+theme(legend.position="none")
                      ,nrow=1),legend, 
          nrow=2,heights=c(10,2))

它会生成以下图:

我想知道是否有办法在上面生成的公共图中(相对于公共图中的两个数字)调整图例的大小? “高度”功能似乎不会调整图例本身的大小,只是调整它占用的空间量。

【问题讨论】:

【参考方案1】:

我通过后门解决了这个问题。我只是通过编写将图例分成不同的输出

 ggarrange(legend)

这使我可以将图例输出到单独的图像中,该图像可以在 rstudio 之外调整大小。

【讨论】:

以上是关于如何在ggpubr中调整图例的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在ggarrange ggpubr ggplot中调整边距(轴元素消失)R

怎样在r语言 中 只改变 图例框大小 而不改变其中文字的大小?

matlab调整legend方框大小

matlab中如何调整legend的位置?

R语言ggplot2可视化为组合图添加综合图例实战:使用ggpubr包ggarrange函数实现综合图例使用patchwork包实现综合图例

matplotlib + wxpython 没有用图例正确调整大小