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

如何基于数值为R表格单元格上色(偏好棕橙黄渐变)

实现单元格数值渐变上色的R包方案

1. formattable包

  • 优势:轻量简洁,快速实现基础单元格颜色渐变,无需复杂配置
  • 代码示例:
# 安装并加载包
install.packages("formattable")
library(formattable)

# 加载你的数据集
df <- structure(list(INT = c("BOI_CHA", "BPD_SLE", "BPG_SLE", "BPG_BPD", 
"SLE_GVC", "SLE_ANN", "BPG_CHA", "SLE_CHA", "BPG_ANN", "BPG_GVC", 
"BPG_SLE_ABL", "SLE_BOI", "BOI_ANN", "CHA_ANN", "BPG_BOI", "SLE_BOI_ABL", 
"BPG_BPD_SLE", "BPD_ANN", "BPG_BOI_ABL", "BPD_SLE_ABL", "BPD_GVC", 
"CHA_GVC", "BPD_CHA", "BPG_BPD_ABL", "ANN_GVC"), E66 = c(2L, 
35L, 161L, 12L, 21L, 27L, 22L, 8L, 35L, 157L, 5L, 4L, 1L, 3L, 
7L, 2L, 1L, 1L, 3L, 1L, 1L, 2L, 1L, 1L, 1L), K449 = c(1L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L), T8550 = c(20L, 1L, 0L, 0L, 0L, 0L, 
1L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L), T8558 = c(1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), 
    T856 = c(1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), K219 = c(0L, 
    0L, 1L, 0L, 0L, 0L, 0L, 0L, 13L, 1L, 0L, 0L, 0L, 1L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), K316 = c(0L, 0L, 
    2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), K318 = c(0L, 0L, 1L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L), K910 = c(0L, 0L, 1L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L), Z422 = c(0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L), K310 = c(0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L
    ), Z090 = c(0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), K20 = c(0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Z4588 = c(0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 1L, 0L)), row.names = c(NA, -25L), class = c("tbl_df", 
"tbl", "data.frame"))

# 应用深棕到浅黄的颜色渐变
formattable(df, 
            align = c("left", rep("right", ncol(df)-1)),
            list(
              # 对所有数值列设置颜色渐变,INT列保持原样
              area(col = 2:ncol(df)) ~ color_tile("#FFF9E6", "#8B4513")
            ))
  • 说明:color_tile参数中,#FFF9E6为浅黄底色,#8B4513为深棕色,数值越高的单元格颜色越接近深棕色。

2. gt包

  • 优势:功能全面,支持精细化表格样式调整,适合生成专业报表
  • 代码示例:
# 安装并加载包
install.packages("gt")
library(gt)

# 加载数据集(同上)
df <- structure(list(INT = c("BOI_CHA", "BPD_SLE", "BPG_SLE", "BPG_BPD", 
"SLE_GVC", "SLE_ANN", "BPG_CHA", "SLE_CHA", "BPG_ANN", "BPG_GVC", 
"BPG_SLE_ABL", "SLE_BOI", "BOI_ANN", "CHA_ANN", "BPG_BOI", "SLE_BOI_ABL", 
"BPG_BPD_SLE", "BPD_ANN", "BPG_BOI_ABL", "BPD_SLE_ABL", "BPD_GVC", 
"CHA_GVC", "BPD_CHA", "BPG_BPD_ABL", "ANN_GVC"), E66 = c(2L, 
35L, 161L, 12L, 21L, 27L, 22L, 8L, 35L, 157L, 5L, 4L, 1L, 3L, 
7L, 2L, 1L, 1L, 3L, 1L, 1L, 2L, 1L, 1L, 1L), K449 = c(1L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L), T8550 = c(20L, 1L, 0L, 0L, 0L, 0L, 
1L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L), T8558 = c(1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), 
    T856 = c(1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), K219 = c(0L, 
    0L, 1L, 0L, 0L, 0L, 0L, 0L, 13L, 1L, 0L, 0L, 0L, 1L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), K316 = c(0L, 0L, 
    2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), K318 = c(0L, 0L, 1L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L), K910 = c(0L, 0L, 1L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L), Z422 = c(0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L), K310 = c(0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L
    ), Z090 = c(0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), K20 = c(0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Z4588 = c(0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 1L, 0L)), row.names = c(NA, -25L), class = c("tbl_df", 
"tbl", "data.frame"))

# 生成带颜色渐变的表格
df %>%
  gt() %>%
  # 为数值列设置深棕到浅黄的渐变
  data_color(
    columns = 2:ncol(df),
    colors = scales::col_numeric(
      palette = c("#FFF9E6", "#8B4513"),
      domain = NULL # 自动适配每列的数值范围
    )
  ) %>%
  # 可选:添加表格条纹样式提升可读性
  opt_table_style(style = "table-striped") %>%
  # 调整列对齐方式
  cols_align(align = "right", columns = 2:ncol(df)) %>%
  cols_align(align = "left", columns = INT)
  • 说明:scales::col_numeric会根据每列的数值自动映射颜色,确保该列最大值对应深棕色,最小值对应浅黄色,适配不同列的数值范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:07:04