添加标题并将其与背景对齐以排列ggplots

时间:2018-03-28 13:20:31

标签: r ggplot2

栈!
我有一些ggplots,我想在一个标题中以一个小平面的方式安排。遗憾的是,由于数据的复杂性和各种情节,我认为我不能制作一个数据表并产生一个多面图。到目前为止,通过以下代码,我已经设法获得此处显示的结果。

library(ggplot2)
library(ggpubr)
library(grid)

plot.data<- data.frame("v1"=rnorm(20), "v2"=rnorm(20))

plot1<- ggplot(data= plot.data) + geom_point(aes(x=v1, y=v2))
plot2<- plot1
plot3<- plot1 + coord_polar()
plot4<- plot1 + coord_polar()

blank<- rectGrob(gp=gpar(fill="white", col="white"))

title1 <- grobTree(rectGrob(gp=gpar(fill="#EAECEE", col="white", lwd=5)),
                 textGrob("title 1", gp=gpar(col="black", fontsize= 20)))

title2 <- grobTree(rectGrob(gp=gpar(fill="#EAECEE", col="white", lwd=5)),
                   textGrob("title 2", gp=gpar(col="black", fontsize= 20)))

title3 <- grobTree(rectGrob(gp=gpar(fill="#EAECEE", col="white", lwd=5)),
                   textGrob("title 3", rot = 90, gp=gpar(col="black", fontsize= 20)))

title4 <- grobTree(rectGrob(gp=gpar(fill="#EAECEE", col="white", lwd=5)),
                   textGrob("title 4", rot = 90, gp=gpar(col="black", fontsize= 20)))

ggarrange(ggarrange(blank, title1, title2, ncol=3, widths = c(1, 5, 5)),
          ggarrange(title3, plot1, plot2, title4, plot3, plot4, ncol=3, nrow=2, widths = c(1, 5, 5)),
          nrow=2, heights= c(1, 10))

multiple plot

但我对结果不太满意,因为我希望标题栏与绘图区域对齐(目前它们与带有轴标签的图一样宽)。我想知道是否有一种方法可以更好地将标题与图形对齐(以便获得更好的外观),而不需要使用白色方框和线条。 关于如何改善像这样的多情节的外观的任何建议也受到欢迎。

0 个答案:

没有答案