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

ggplot2柱状图数值标签后添加带下标气体名称的实现问题

解决方案

实现气体名称数字下标渲染的核心是使用R内置的plotmath表达式语法,在geom_text中开启parse = TRUE参数即可自动解析下标格式,修改后可直接运行的代码如下:

library(ggplot2)
library(ggpubr)

# 构造示例数据
GHG = c("CH4", "CO2", "N2O")
Value = c(10, 5, 2)
df = data.frame(GHG, Value)

# 生成带plotmath下标规则的标签
# 正则自动将气体名称中的数字包裹为下标语法[],~是plotmath规定的空格分隔符
df$label <- paste0(Value, "~-~", gsub("(.*?)(\\d+)(.*?)", "\\1[\\2]\\3", GHG))

# 绘图
g1 = ggplot(data=df, aes(x=GHG, y=Value)) +
  geom_bar(stat="identity") +
  # 新增parse=TRUE参数解析表达式语法
  geom_text(aes(label = label, y= Value, hjust=-0.1), size=4, parse = TRUE) +
  xlab ("") +
  ylab ("") +
  coord_flip() +
  scale_y_continuous(limits=c(0,11)) + 
  theme(text=element_text(family="serif", size=15, colour="black")) +
  theme(axis.text.x=element_text(size=15, colour = "black")) +
  easy_remove_y_axis() 

g1

关键调整说明

  • 用正则匹配将气体名称中的数字替换为[数字]格式,符合plotmath的下标语法规则,可适配你给出的三类温室气体格式
  • 拼接数值和气体名称时使用~作为分隔符,是plotmath语法要求的空格写法
  • geom_text中添加parse = TRUE参数,会自动将标签列的字符串解析为数学表达式,完成下标渲染

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:54:03