Change interlinear space in ggplot title?

2019-04-21 09:16发布

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).

标签: r ggplot2
2条回答
戒情不戒烟
2楼-- · 2019-04-21 09:35

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
查看更多
小情绪 Triste *
3楼-- · 2019-04-21 09:52

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

查看更多
登录 后发表回答