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

如何在gridExtra表格中添加下标或上标?

解决gridExtra表格行名下标显示问题

直接给矩阵行名加HTML标签或expression是行不通的:矩阵行名只能是字符类型,tableGrob默认不解析HTML;直接赋值expression会被强制转成字符串,无法生效。以下是两种可行的解决方案:

方法一:创建tableGrob后修改行标签

library(gridExtra)
library(grid)

myData <- matrix(1:15, nrow=5, ncol=3) 
colnames(myData) <- c("Group A", "Group B", "Group C") 
rownames(myData) <- c("PM1", "b", "c", "d", "e")

# 生成基础表格grob
tg <- tableGrob(myData, theme = ttheme_minimal())

# 定位行头文本grob,替换第一行标签为plotmath表达式
row_head_grob <- tg$grobs[[which(tg$layout$name == "rowhead-fg")]]
row_head_grob$label[1] <- expression(PM[1])

# 更新表格grob并绘制
tg$grobs[[which(tg$layout$name == "rowhead-fg")]] <- row_head_grob
grid.arrange(tg)

方法二:创建tableGrob时直接指定带表达式的行标签

library(gridExtra)

myData <- matrix(1:15, nrow=5, ncol=3) 
colnames(myData) <- c("Group A", "Group B", "Group C") 

# 用列表传递行标签,第一个元素为plotmath表达式
tg <- tableGrob(myData, 
                theme = ttheme_minimal(),
                rows = list(expression(PM[1]), "b", "c", "d", "e"))

grid.arrange(tg)

两种方法都利用grid绘图系统支持的plotmath语法渲染下标,PM[1]会被解析为PM的下标1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:15:45