我正在使用
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')
如果您可以使用其他东西而不是空白或白色,则此额外功能将为
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")
)