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

问题描述

我有一张桌子:

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)

但这不是我所需要的。

example

我只需要将0的单元格设置为红色,其余所有单元格保持白色。

解决方法

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

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

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

enter image description here

,

谢谢,它有效。代码:

    data_color(
    columns = colnames(updates.computers)[2:ncol(updates.computers)],"darkseagreen1"),),alpha = 0.8
  )

结果: result