如何根据DT :: datatable中的列值为列单元着色

问题描述 投票:0回答:1

根据this link,数据表可以像热图一样通过其值进行着色。但是在这里,单元格根据所有列中的值进行着色。

library(DT)
df = iris[1:4]
brks <- quantile(df, probs = seq(.05, .95, .05), na.rm = TRUE)
clrs <- round(seq(255, 40, length.out = length(brks) + 1), 0) %>%
  {paste0("rgb(255,", ., ",", ., ")")}
datatable(df) %>% formatStyle(names(df), backgroundColor = styleInterval(brks, clrs))

但是我需要根据值每列]为列单元格着色。通常,我认为这更有用。实际上,每一列可能具有不同的比例。

有人知道如何实现此目标吗?[使用DT包]?我需要在闪亮的应用程序中为桌子上色。非常感谢!

根据此链接,数据表可以像热图一样通过其值着色。但是在这里,单元格根据所有列中的值进行着色。库(DT)df = iris [1:4] brks
r dt
1个回答
0
投票
是的,对于每一列,您可以计算间断,分配颜色并应用样式:

library(DT) library(viridis) df = iris[1:4] brks1 <- quantile(df$Sepal.Length, probs = seq(.05, .95, .05), na.rm = TRUE) clrs1 <- viridis::viridis(n=length(brks1)+1, alpha=.5, direction = -1) brks2 <- quantile(df$Petal.Length, probs = seq(.05, .95, .05), na.rm = TRUE) clrs2 <- viridis::inferno(n=length(brks2)+1, alpha=.5, direction = -1) datatable(df) %>% formatStyle("Sepal.Length", backgroundColor = styleInterval(brks1, clrs1)) %>% formatStyle("Petal.Length", backgroundColor = styleInterval(brks2, clrs2))

© www.soinside.com 2019 - 2024. All rights reserved.