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

如何在ggplot2与gt表格中为参数设置上、下标

解决gt表格列名与ggplot2图例标签的下标显示问题

一、gt表格列名下标实现

gt不支持base R的expression语法,需通过HTML/Markdown格式实现下标效果:

  • 用<sub>标签包裹需要设为下标的内容
  • 用md()函数标记文本为Markdown格式,让gt正确解析渲染

示例代码:

library(gt)
library(dplyr)

data_table <- iris %>% 
  group_by(Species) %>% 
  summarise(Mean = mean(Petal.Width), SD = sd(Petal.Width), n = n())  %>% 
  ungroup() %>% 
  gt()

# 用Markdown格式设置列名,<sub>实现下标
data_table %>% 
  cols_label(
    Mean = md("[H<sub>2</sub>O] (mg/ml)")
  )

二、ggplot2图例标签下标实现

ggplot2提供两种实现方式,可根据是否需要额外样式(如颜色)选择:

方式1:纯文本下标(用base R表达式)

直接用expression()构造带下标的文本,适合无额外样式需求的场景:

library(ggplot2)

ggplot(iris, aes(x = Sepal.Length, y = Petal.Length, colour = Species)) +
  geom_point() +
  labs(colour = expression("[H"[2]*"O] (mg/ml)"))

说明:[2]将2设为H的下标,*用于连接前后文本内容。

方式2:带颜色样式的下标(用ggtext包)

如果需要给文本添加颜色等样式,可借助ggtext的Markdown渲染功能:

library(ggplot2)
library(ggtext)

ggplot(iris, aes(x = Sepal.Length, y = Petal.Length, colour = Species)) +
  geom_point() +
  labs(colour = "<span style='color:blue'>[H<sub>2</sub>O]</span> (mg/ml)") +
  theme(
    legend.title = element_markdown() # 开启图例标题的Markdown解析
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:05:22