-2

我有一张桌子:

桌子

我需要value = 0用红色填充单元格。

我意识到我需要 data_color 但如何用 2 种颜色设置调色板?红色如果value==0,白色如果value<>0

我找到了一个例子:


    data_color(
  columns = colnames(updates.computers)[2:ncol(updates.computers)],
  colors = scales::col_numeric(
    palette = paletteer::paletteer_d(
               palette = "ggsci::red_material", direction = -1
             ) %>% as.character(),
             domain = NULL
           ),
           alpha = 0.8)

但这不是我需要的。

例子

我只需要 0 为红色的单元格,其余的都保持白色。

4

2 回答 2

1

看看scales::col_bin功能。通过将数据分成两个 bin(0 和从 1 到无穷大),您可以为每个 bin 指定颜色。

df <- data.frame(A2020 = sample(0:10, 12, replace = TRUE),
                 B2020 = sample(0:10, 12, replace = TRUE),
                 C2020 = sample(0:10, 12, replace = TRUE),
                 D2020 = sample(0:10, 12, replace = TRUE),
                 E2020 = sample(0:10, 12, replace = TRUE),
                 F2020 = sample(0:10, 12, replace = TRUE),
                 G2020 = sample(0:10, 12, replace = TRUE),
                 H2020 = sample(0:10, 12, replace = TRUE),
                 I2020 = sample(0:10, 12, replace = TRUE),
                 J2020 = sample(0:10, 12, replace = TRUE))

gt(df) %>%
  data_color(
    columns = everything(),
    colors = scales::col_bin(
      bins = c(0, 1, Inf),
      palette = c("red", "white"),
    )
  )

在此处输入图像描述

于 2020-09-29T14:05:11.847 回答
0

谢谢,它有效。编码:

    data_color(
    columns = colnames(updates.computers)[2:ncol(updates.computers)],
    colors = scales::col_bin(
      bins = c(0, 1, Inf),
      palette = c("red", "darkseagreen1"),
    ),
         alpha = 0.8
  )

结果: 结果

于 2020-09-29T15:49:46.013 回答