问题
I have two plots arranged side by side with gridExtra::grid.arrange
. I can put a title on top of them with the top
argument. Problem is, I was requested to locate the title on the top left of the plot.
A reproducible example:
library(ggplot2)
library(gridExtra)
p1 <- qplot(1:20)
p2 <- qplot(30, 35)
grid.arrange(p1, p2, nrow = 1, top = "Title")
which produces
But what I need is:
I read several times the ?arrangeGrob
file (I think there lies my answer), but haven't figured out how to achieve it.
回答1:
patchwork is a gridExtra alternative that behaves more like ggplot than grid, including how its plot_annotate
handles titles:
library(ggplot2)
library(patchwork)
qplot(1:20) + qplot(30, 35) + plot_annotation(title = 'Title')
If you want to adjust it further, its theme
parameter accepts a ggplot theme
call.
回答2:
Using top argument:
grid.arrange(p1, p2, nrow = 1, top = grid::textGrob("Title", x = 0, hjust = 0))
来源:https://stackoverflow.com/questions/49685458/locate-title-in-top-left-of-grid-arrange