如何在ggplot2副标题中实现粗体、常规字体混用及换行
解决方案
方案1:使用ggtext包(更灵活,推荐)
ggtext包支持直接解析Markdown格式的文本,是实现混合格式文本最简便的方式:
- 先安装并加载依赖包:
install.packages("ggtext") library(ggplot2) library(ggtext)
- 绘图代码调整如下,副标题直接写Markdown格式,换行用
<br>,同时在theme中指定副标题用element_markdown()渲染:
ggplot(data = mpg, aes(x = cyl, y = year)) + geom_point() + labs(subtitle = "**Item 1:** Text<br>**Item 2:** Text") + theme( plot.subtitle = element_markdown() )
方案2:仅用基础ggplot2实现(无需额外安装包)
如果不想引入第三方包,可以用plotmath语法中的atop()函数实现分行,替代无效的\n换行符:
library(ggplot2) ggplot(data = mpg, aes(x = cyl, y = year)) + geom_point() + labs(subtitle = expression(atop(bold("Item 1:")~"Text", bold("Item 2:")~"Text")))
注意:基础方案的两行文本默认是居中对齐的,如果需要左对齐或更复杂的格式,还是更推荐使用方案1。
内容的提问来源于stack exchange,提问作者Daniel Valencia C.
相关产品推荐
相关产品推荐

