Matt Bannert
Matt Bannert

Reputation: 28264

Change interlinear space in ggplot title?

If I use \n with labs(title="whatever \n comes after this") I end up with quite a big space between the lines. Is there a way to influence it? (I mean except font-size of the title itself).

Upvotes: 13

Views: 4328

Answers (2)

O. Bertrand
O. Bertrand

Reputation: 81

To perfectly center everything (which \n will not do in several cases), keep every piece of text the same size or being able to relatively adjust it if there are more than 2 lines (which is useful in some cases) and at the same time being able to adjust the interlinear space, use this instead:

labs(title=expression(atop(textstyle("whateverline1"),atop(textstyle("whateverline2"),atop(scriptscriptstyle(""),textstyle("whateverline3"))))))

Then use labeller=label_parsed

This also works for facet_grid, xlab and ylab

Note the atop and textstyle to position the text whilst keeping it all the same size and the scriptscriptstyle("") to control spacing between lines. You can also use varied relative sizes of text using scriptstyle or scriptscriptstyle depending on your needs

Upvotes: 1

agstudy
agstudy

Reputation: 121568

you can do something like this ( option lineheight to modify line spacing)

  p <- qplot(mpg, wt, data = mtcars)
  p <- p + ggtitle("whatever \n comes after this") + 
  theme(plot.title = element_text(lineheight=.1))
  p

Upvotes: 16

Related Questions