用红色填充值为 0 的单元格

Fill cells with value = 0 with Red color

我有一个 table:

我需要用红色 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 的单元格为红色,其余所有单元格保持白色。

看看 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"),
    )
  )

谢谢,成功了。代码:

    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
  )

结果: result