You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言ggplot绘图标题中添加带其他字符的下标?

问题根源

你用paste0拼接普通文本和expression时,expression(m[0])会被强制转换成字符串,导致[0]直接显示而非解析成下标。下面是几种可行的解决办法:


解决方法1:用bquote()组合文本和表达式

bquote()可以轻松混合普通文本和数学表达式,用~分隔文本与表达式(添加空格),或用*直接连接(无空格):

data("iris")

ggplot(data=iris,mapping=aes(x=Petal.Length,y=Petal.Width,color=Species))+
    geom_point()+
    geom_smooth(method="lm") +
    labs(title = bquote("the title is " ~ m[0]))

如果不需要引号包裹文本,也可以简化为:bquote(the title is ~ m[0])


解决方法2:直接在expression()里组合文本和下标

expression()本身支持用~或*连接普通文本与数学符号,无需额外拼接函数:

data("iris")

ggplot(data=iris,mapping=aes(x=Petal.Length,y=Petal.Width,color=Species))+
    geom_point()+
    geom_smooth(method="lm") +
    labs(title = expression("the title is" ~ m[0]))

其中~会在文本和表达式之间添加空格,若想让两者紧挨着,换成*即可:expression("the title is" * m[0])


解决方法3:用ggtext包支持Markdown格式

如果你习惯用Markdown的下标语法(<sub>...</sub>),可以借助ggtext包实现:
先安装并加载包:

install.packages("ggtext")
library(ggtext)

再修改绘图代码:

data("iris")

ggplot(data=iris,mapping=aes(x=Petal.Length,y=Petal.Width,color=Species))+
    geom_point()+
    geom_smooth(method="lm") +
    labs(title = "the title is m<sub>0</sub>") +
    theme(plot.title = element_markdown())

内容的提问来源于stack exchange,提问作者Phoebe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 04:24:57