将多个图合并成一个图时的空白文本

我有一系列图要合并成一个图,我不能使用facet_wrap。因此,我的每个图都是一个单独的对象。我希望它们都具有相同的大小,并且可以通过这种方式组合它们。

p = ggplot(mtcars,aes(x=wt,y=mpg)) + geom_point() + xlab("") + ylab("")

g=ggpubr::ggarrange(p,p,ncol = 3,nrow = 3)

将多个图合并成一个图时的空白文本

我想添加一些应用于列和行的文本标签,如下所示。

将多个图合并成一个图时的空白文本

我尝试为各个图添加标题(例如,第一行中的图),但是与其他图相比,它减小了(灰色)图的大小,因此图的尺寸不再都是相同的大小。

任何线索将不胜感激。

williaz 回答:将多个图合并成一个图时的空白文本

您可以添加辅助轴,清除辅助轴的标题,并删除辅助轴的刻度线,但保留标题(查看我添加到theme对象中的ggplot函数)。然后可以使用这些辅助轴的磁贴来编写所需的文本。请看下面的示例。

library(ggplot2)
library(ggpubr)


p <- ggplot(mtcars,aes(x=wt,y=mpg)) + 
      geom_point() + 
      xlab("") + ylab("") + 
          scale_y_continuous(position = 'right',sec.axis = dup_axis()) + 
          scale_x_continuous(position = "top",sec.axis = dup_axis()) +
          theme(plot.title = element_text(hjust=0.5),axis.text.x.top = element_blank(),axis.ticks.x.top = element_blank(),axis.text.y.right = element_blank(),axis.ticks.y.right = element_blank(),axis.title.x.bottom = element_blank(),axis.title.y.left = element_blank())


ggarrange(p + xlab("some text 1"),p + xlab("some text 2"),p + xlab("some text 3") + ylab("some text 33"),p,p + ylab("some text44"),p + ylab("some text55"),ncol = 3,nrow = 3)

您可以将axis.title.y.right = element_text(angle = 0)添加到theme中,以使y轴标题变为水平。

参考How to keep axis labels in one side and axis title in another using ggplot2

本文链接:https://www.f2er.com/2982320.html

大家都在问