我想在 gt 表中对组名标签进行着色,以便它与附近的绘图相对应,而不是绘图本身的图例。理想情况下,这种颜色将填充行而不改变文本的颜色。
这个最小的示例不会产生任何错误,但它也没有达到我想要的效果。
library(dplyr)
library(gt)
mtcars |>
arrange(carb) |>
gt(groupname_col = "carb", rownames_to_stub = T) |>
tab_stub_indent(everything(), 5) |>
data_color(columns = "carb", palette = "Blues")
tab_style()
可用于更改单元格的样式。它采用样式和指定样式应用位置的位置作为参数。要使用颜色填充单元格的背景,您可以使用 cell_fill()
。 cells_row_groups()
可用于选择行组标题行。
由于每个行组标题应具有不同的颜色,因此我在循环中应用样式。我从
RColorBrewer
的调色板“蓝色”中获取颜色。您必须以某种方式找出合适的颜色。
tab <- mtcars |>
arrange(carb) |>
gt(groupname_col = "carb", rownames_to_stub = TRUE) |>
tab_stub_indent(everything(), 5)
values <- unique(mtcars$carb)
colours <- RColorBrewer::brewer.pal(length(values), "Blues")
for (i in seq_along(values)) {
tab <- tab |>
tab_style(cell_fill(colours[i]), cells_row_groups(i))
}
tab
我将代码应用于
mtcars
的变体,其中我只为 carb
的每个值保留一行。这就是我得到的: