如何修改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
相关产品推荐
相关产品推荐

