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.
Using top argument:
grid.arrange(p1, p2, nrow = 1, top = grid::textGrob("Title", x = 0, hjust = 0))
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With