You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R的gt表格中修改tab_spanner文本的颜色与样式?

解决R中gt表格tab_spanner文本的加粗与颜色自定义问题

要实现gt表格中跨列标题(tab_spanner)的加粗及自定义颜色,你需要使用tab_style()配合cells_column_spanners()来精准定位并设置样式,之前的写法错误使用了location参数,导致无法生效。

修改后的完整代码

library(gt)
library(gtExtras)

df1 <- structure(list(matchup_pitcher_full_name = c("Trevor Megill", 
        "Mark Leiter Jr.", "Ben Brown", "Ray Kerr", "Blake Snell"), whiff_rate = c(55,53.6, 51, 50.6, 50), 
        matchup_pitcher_full_name.1 = c("Josh Hader","Jason Adam", "Andrew Chafin", "Luis García", "Brandon Hughes"),
        whiff_rate.1 = c(60.8, 57, 56.2, 53.4, 52.5), matchup_pitcher_full_name.2 = c("Luke Little","Ryan Weathers", "Danny Young", "Porter Hodge", "Blake Treinen"), 
        whiff_rate.2 = c(54.3, 53.1, 52.4, 51.8, 50), matchup_pitcher_full_name.3 = c("Angel Chivilli","Paul Skenes", "MacKenzie Gore", "Carlos Rodón", "Devin Williams"), 
        whiff_rate.3 = c(55.9, 54.8, 51.9, 49.5, 48.8)), row.names = c(NA,5L), class = "data.frame")
 
 df1 %>% gt() %>% 
   
   cols_label(
              starts_with("matchup") ~ md("Pitcher"),
              starts_with("whiff") ~ md("Whiff%")
   ) %>%  

   tab_header(title = 'Top Ten Whiff Rates by Pitch (Breaking/Offspeed)',
              subtitle = 'Minimum 100 Pitches Thrown (2024 Season)')  %>% 
   tab_source_note(source_note = "Data: Statcast via Baseball Savant and baseballr") %>% 
   opt_table_font(
     font = list(
       google_font(name = "Work Sans"),
       "Cochin", "serif"
     )
   ) %>% 
   tab_spanner(label = "Curveball", columns = c(1:2)) %>% 
   tab_spanner(label = "Slider", columns = c(3:4)) %>% 
   tab_spanner(label = "Sweeper", columns = c(5:6)) %>% 
   tab_spanner(label = "Changeup", columns = c(7:8)) %>%
   # 设置每个跨列标题的样式
   tab_style(
     style = cell_text(weight = "bold", color = "red"),
     locations = cells_column_spanners(spanner = "Curveball")
   ) %>%
   tab_style(
     style = cell_text(weight = "bold", color = "blue"),
     locations = cells_column_spanners(spanner = "Slider")
   ) %>%
   tab_style(
     style = cell_text(weight = "bold", color = "green"),
     locations = cells_column_spanners(spanner = "Sweeper")
   ) %>%
   tab_style(
     style = cell_text(weight = "bold", color = "orange"),
     locations = cells_column_spanners(spanner = "Changeup")
   )

关键说明

  • cells_column_spanners(spanner = "xxx")是核心:通过spanner的标签名称精准定位对应的跨列标题,名称必须和tab_spanner中的label完全一致(包括大小写)
  • cell_text(weight = "bold", color = "xxx")实现加粗和自定义颜色,你还可以在这里添加size、font等其他样式参数
  • 每个跨列标题需要单独调用一次tab_style()来设置独特样式

内容的提问来源于stack exchange,提问作者Violin125

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 13:35:07