【问题标题】:How to color column cells according to the column values in DT::datatable in r如何根据 r 中的 DT::datatable 中的列值为列单元格着色
【发布时间】:2020-05-11 03:31:29
【问题描述】:

根据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 包?我需要在我闪亮的应用程序中为我的桌子上色。非常感谢!

【问题讨论】:

  • 您可以将names(df) 更改为您选择的列或列向量。

标签: r dt


【解决方案1】:

是的,对于每一列,您可以计算间隔、分配颜色和应用样式:

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))

【讨论】:

    猜你喜欢
    • 2021-10-02
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 2022-12-08
    • 2016-01-22
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多