如何在ggplot绘图中添加两个副标题并将其中一个设为粗体?
解决ggplot添加带格式多行副标题的问题
方法一:使用base ggplot的expression() + atop()
无需额外安装包,利用ggplot原生支持的表达式函数实现换行和粗体设置:
ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point() + labs(title = expression(bold("Title")), subtitle = expression(atop(bold("First subtitle"), "Second subtitle")))
atop()函数会自动将两个文本块上下排列,bold()函数负责给第一个副标题添加粗体样式,布局也会自动适配。
方法二:使用ggtext包支持Markdown语法
如果需要更灵活的文本格式控制,推荐使用ggtext包,它支持直接在文本中用Markdown语法:
- 先安装并加载ggtext包:
install.packages("ggtext") library(ggplot2) library(ggtext)
- 编写绘图代码,用
**标记粗体,<br>实现换行,同时将标题和副标题的元素设为element_markdown():
ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point() + labs(title = "**Title**", subtitle = "**First subtitle**<br>Second subtitle") + theme(plot.title = element_markdown(), plot.subtitle = element_markdown())
这种方法不仅能实现粗体和换行,还能轻松添加其他格式(如斜体、颜色),适配更多复杂场景。
内容的提问来源于stack exchange,提问作者maplesyrup123
相关产品推荐
相关产品推荐

