如何在ggplot的坐标轴标题中插入上标或下标符号
R语言坐标轴标题添加上标的解决方案
基础绘图系统解决方法
你之前用expression没生效大概率是语法规则不对,R的表达式语法要求上标内容必须包裹在{}中,且不能给expression套外层引号,正确示例代码如下:
# 基础plot绘图示例 plot( x = 1:10, y = rnorm(10), # y轴标题配置,~代表表达式中的空格 ylab = expression(Ba:Ca ~ (µmol:mol^{-1})) )
ggplot2绘图系统解决方法
和基础绘图逻辑一致,直接在labs参数里传入expression即可:
library(ggplot2) # 构造示例数据 test_df <- data.frame(x = 1:10, y = rnorm(10)) ggplot(test_df, aes(x = x, y = y)) + geom_point() + labs(y = expression(Ba:Ca ~ (µmol:mol^{-1})))
更简单的新手友好方案
如果不想记expression语法,可以直接使用Unicode上标字符,无需额外配置,直接写入字符串即可生效:
# 直接使用预先生成的上标字符,所有绘图系统通用 plot(x = 1:10, y = rnorm(10), ylab = "Ba:Ca (µmol:mol⁻¹)")
常见错误排查
- 上标内容未包裹在
{}中:如果写mol^-1只会将-识别为上标,必须写为mol^{-1}才能让-1整体作为上标 - 给expression套了外层双引号/单引号:
ylab = "expression(...)"是错误写法,需要去掉外层引号直接传入expression对象
内容的提问来源于stack exchange,提问作者Angela Russell
相关产品推荐
相关产品推荐

