如何在R的gt包中单独设置列标题对齐(与列内容区分)
解决gt包列标题与内容独立对齐及列标题样式调整问题
1. 实现列标题与内容不同对齐
要让cyl列标题居中,同时保持该列值右对齐,可通过tab_style()函数单独指定列标签的对齐样式,配合cells_column_labels()定位目标列:
library(gt) library(dplyr) mtcars %>% select(mpg, cyl, disp) %>% gt() %>% cols_width(cyl ~ px(150)) %>% cols_align(align = "right", columns = cyl) %>% # 设置列内容右对齐 tab_style( style = cell_text(align = "center"), # 单独设置该列标题居中 locations = cells_column_labels(columns = cyl) ) %>% tab_options(column_labels.font.weight = "bold") # 全局列标题加粗
2. 列标题的单独样式调整方法
除了全局设置列标题加粗的tab_options(column_labels.font.weight = "bold"),如果需要给特定列标题定制样式(比如单独加粗、改颜色、调字号),依然可以用tab_style()配合cells_column_labels()实现:
示例:单独给cyl列标题设置居中+加粗+红色字体
mtcars %>% select(mpg, cyl, disp) %>% gt() %>% cols_width(cyl ~ px(150)) %>% cols_align(align = "right", columns = cyl) %>% tab_style( style = cell_text(align = "center", weight = "bold", color = "red"), locations = cells_column_labels(columns = cyl) ) %>% tab_style( style = cell_text(weight = "bold"), # 其他列标题保持加粗 locations = cells_column_labels(columns = c(mpg, disp)) )
另外也可以通过cols_label()结合HTML标签自定义列标题样式,需要开启HTML渲染:
mtcars %>% select(mpg, cyl, disp) %>% gt() %>% cols_width(cyl ~ px(150)) %>% cols_align(align = "right", columns = cyl) %>% cols_label( cyl = html("<center><b>cyl</b></center>") # 直接定义居中且加粗的标题 ) %>% tab_options(column_labels.font.weight = "bold")
内容的提问来源于stack exchange,提问作者Markm0705
相关产品推荐
相关产品推荐

