如何在ggplot2中组合Unicode实现绘图标题内带点上标L的显示效果
解决ggplot2标题中添加上方带点L字符的方案
方法1:使用原生plotmath语法(最推荐,无额外依赖)
ggplot2的expression支持plotmath的dot()函数,可直接生成字符上方加点的效果,不需要处理Unicode编码,适配所有默认渲染环境:
library(ggplot2) ggplot() + geom_line() + labs(title = expression(paste("The title is ", frac(dot(L), L))))
如果不需要分式,直接单独使用带点的L,写法为labs(title = expression("The title is " * dot(L)))即可。
方法2:使用Unicode组合字符
你需要的带点L可以通过「普通大写L + 组合上点字符」拼接实现,对应编码为\u004c\u0307,使用时需要确保绘图字体支持该组合字符,可搭配showtext包加载兼容字体保证显示正常:
library(ggplot2) library(showtext) # 加载支持组合字符的字体,例如下载安装后的思源黑体 font_add("Source Han Sans", "SourceHanSansCN-Regular.otf") showtext_auto() ggplot() + geom_line() + labs(title = paste0("The title is ", "\u004c\u0307", "/L")) + theme(plot.title = element_text(family = "Source Han Sans"))
方法3:使用ggtext包的Markdown渲染
如果习惯用Markdown语法编写文本,可以用ggtext包的markdown渲染能力实现效果:
library(ggplot2) library(ggtext) ggplot() + geom_line() + labs(title = "The title is L̇/L") + # 用element_markdown渲染标题文本 theme(plot.title = element_markdown())
内容的提问来源于stack exchange,提问作者Martin K
相关产品推荐
相关产品推荐

