如何根据单元格字符值为gt表格单元格着色:FSRA红、DGCM蓝、CDIC黄
使用gt包按单元格字符值设置背景填充色
要实现gt表格中按单元格字符值着色(FSRA填红色、DGCM填蓝色、CDIC填黄色),可以借助gt包的data_color()函数结合scales包的颜色映射功能完成,完整代码如下:
library(gt) library(tidyverse) # 定义监管机构类型的因子水平(可选,用于规范数据顺序) ins_levels <- c("CDIC", "DGCM", "FSRA") # 构造示例数据框 df <- tibble( 公司标识 = letters[1:5], 监管机构 = factor(c("FSRA", "CDIC", "CDIC", "DGCM", "DGCM"), ins_levels) ) # 生成带背景色的gt表格 df |> gt() |> data_color( columns = 监管机构, # 指定要设置颜色的目标列 colors = scales::col_factor( palette = c("red", "yellow", "blue"), # 颜色映射:与domain值一一对应 domain = c("FSRA", "CDIC", "DGCM") # 需要匹配的字符值 ), apply_to = "fill", # 将颜色应用于单元格背景填充 autocolor_text = FALSE # 不自动调整文本颜色,保持默认样式 )
核心逻辑说明
data_color()是gt包中用于为数据单元格设置颜色的核心函数scales::col_factor()用于创建字符/因子值到颜色的精准映射,确保每个目标字符对应指定的填充色apply_to = "fill"明确将颜色作用于单元格背景,而非文本本身autocolor_text = FALSE关闭文本颜色自动适配,避免背景色变化导致文本可读性异常
内容的提问来源于stack exchange,提问作者ixodid
相关产品推荐
相关产品推荐

