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

如何修改Shiny DT表格内sparkline迷你图的正负值显示颜色

R语言sparkline迷你图正负值分色实现方案

完全可以实现该需求,你只需在spk_chr()函数中新增negBarColor参数指定负值配色,原有barColor参数用来指定正值配色即可。

核心修改点

原代码中生成迷你图的语句:

sparkline_html <- data_for_sparklines[, .(sparkbar = spk_chr(value, type = 'bar',barColor = "black")), by = 'car_id']

调整为:

sparkline_html <- data_for_sparklines[, .(sparkbar = spk_chr(value, type = 'bar', barColor = "red", negBarColor = "black")), by = 'car_id']

修改后完整可运行代码

library(shiny)
library(DT)
library(data.table)
library(sparkline)

## Create demo data sets
my_mtcars <- data.table(mtcars, keep.rownames = TRUE)
names(my_mtcars)[1] <- 'car_id'

set.seed(0)
data_for_sparklines <- data.table(car_id = rep(my_mtcars$car_id, 5),
                                  category = 1:5,
                                  value = c(runif(80),-runif(80)))

# 调整配色:正值红色,负值黑色
sparkline_html <- data_for_sparklines[, .(sparkbar = spk_chr(value, type = 'bar', barColor = "red", negBarColor = "black")), by = 'car_id']
my_mtcars <- merge(my_mtcars, sparkline_html, by = 'car_id')

spk_add_deps(datatable(my_mtcars, escape = FALSE))

运行上述代码即可看到效果:迷你图中所有正值柱子显示为红色,负值柱子显示为黑色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 11:24:02