如何获取 gt 表 (gt_color_box) 中的 NA 值以显示为空白或颜色“白色”?

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

我正在使用

gt_color_box
包中的
gt
,无法将 NA 值转换为白色(十六进制 #FFFFFF)。所有 NA 值默认为灰色(请参阅下面的示例图像以及可重现的代码)。我尝试使用
na.color = "#FFFFFF")
但这段代码似乎只是被简单地忽略了。我知道我可以将 NA 转换为零,然后指定以白色开头的调色板渐变,但这似乎不必要地复杂,我更愿意将任何 NA 值(或那些落在域范围之外的值)默认为指定的颜色。

library(tidyverse)
library(gt)
library(gtExtras)

df <- data.frame(
              name = c("Jared Jones", "Corbin Burnes", "Freddy Peralta", 
                    "Zack Wheeler", "Zach Eflin", "George Kirby", "Logan Webb", 
                    "Tanner Houck", "Grayson Rodriguez", "Brandon Pfaadt"), 
              ip = c(23, 23.2, 17.2,24, 23.1, 20.1, 30.2, 26.2, 24, 23.2), 
               fastball = c(148.9, NA, 138.6, 93.5, 63, 102, 57.8, 24.3, 111.3, 73.9), 
               sinker = c(NA,119.8, NA, 100.6, 95.4, 100.3, 97.5, 104.6, 111.4, 93.6), 
               cutter = c(NA, 127.7, NA, 83.7, 84, NA, NA, 99.8, 91.6, NA), 
               splitter = c(NA,NA, NA, 92.3, NA, 91.6, NA, 98.8, NA, NA), 
               slider = c(126.8,106.6, 102.7, 124.3, 133.8, 109, 111.8, 117.5, NA, 131.3), 
               curve = c(109.7,105, 85.6, 103.7, 108.8, 117.9, NA, NA, 109.9, 91), 
               changeup = c(139.3,118.7, 53.7, NA, 69.5, NA, 138.1, NA, 136.9, 89)
               )
          

df %>% 
  gt() %>% 
  gt_theme_espn() %>%  
  cols_align(
    align = "center",
    columns = c(3:9)) %>% 
  gt_color_box(columns = fastball, domain = 20:200, palette = "ggsci::blue_material") %>%
  gt_color_box(columns = sinker, domain = 10:200, palette = "ggsci::red_material") %>%
  gt_color_box(columns = cutter, domain = 80:140, palette = "ggsci::pink_material") %>%
  gt_color_box(columns = splitter, domain = 10:200, palette = "ggsci::green_material", na.color = "#FFFFFF") %>%
  gt_color_box(columns = slider, domain = 80:140, palette = "ggsci::teal_material") %>%
  gt_color_box(columns = curve, domain = 80:120, palette = "ggsci::purple_material") %>%
  gt_color_box(columns = changeup, domain = 10:160, palette = "ggsci::orange_material") %>%
  tab_header(title = 'Pitcher Stuff+ Rankings') %>% 
  tab_source_note(source_note = 'Data: FanGraphs')
r colors format na gt
1个回答
0
投票

如果您可以使用其他东西而不是空白或白色,则此额外功能将为

NA
值添加任何颜色。
gt_color_box()
似乎也使空值不适用。

df %>% 
  gt() %>% 
  gt_theme_espn() %>%  
  cols_align(
    align = "center",
    columns = c(3:9)) %>% 
  gt_color_box(columns = fastball, domain = 20:200, palette = "ggsci::blue_material") %>%
  gt_color_box(columns = sinker, domain = 10:200, palette = "ggsci::red_material") %>%
  gt_color_box(columns = cutter, domain = 80:140, palette = "ggsci::pink_material") %>%
  gt_color_box(columns = splitter, domain = 10:200, palette = "ggsci::green_material") %>%
  gt_color_box(columns = slider, domain = 80:140, palette = "ggsci::teal_material") %>%
  gt_color_box(columns = curve, domain = 80:120, palette = "ggsci::purple_material") %>%
  gt_color_box(columns = changeup, domain = 10:160, palette = "ggsci::orange_material") %>%
  tab_header(title = 'Pitcher Stuff+ Rankings') %>% 
  tab_source_note(source_note = 'Data: FanGraphs') %>%
  tab_style_body(
    fn = function(x) is.na(x),
    style = cell_fill(color = "black")
  )
© www.soinside.com 2019 - 2024. All rights reserved.