如何在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
相关产品推荐
相关产品推荐

