如何根据 gt 中行的数字设置条件颜色?
How to set conditional colors based on the numbers on rows in gt?
我是 gt
包的新手。我有一组数据,如 t(mtcars))
。例如
Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive Hornet Sportabout Valiant Duster 360 Merc 240D Merc 230 Merc 280
mpg 21.00 21.000 22.80 21.400 18.70 18.10 14.30 24.40 22.80 19.20
cyl 6.00 6.000 4.00 6.000 8.00 6.00 8.00 4.00 4.00 6.00
disp 160.00 160.000 108.00 258.000 360.00 225.00 360.00 146.70 140.80 167.60
hp 110.00 110.000 93.00 110.000 175.00 105.00 245.00 62.00 95.00 123.00
drat 3.90 3.900 3.85 3.080 3.15 2.76 3.21 3.69 3.92 3.92
wt 2.62 2.875 2.32 3.215 3.44 3.46 3.57 3.19 3.15 3.44
如何根据每行的数字设置颜色?我只知道在相反的情况下该怎么做。例如
data_color(columns = vars("mpg"),
colors = scales::col_numeric(c("red","green"),
domain = c(0,30)))
或者如果我用 mtcars
形式的数据制作 table,或者有什么方法可以在最后进行转置?任何帮助表示赞赏。谢谢!
这是一个小例子:(新管道的 R >= 4.1)
library(gt)
df <- t(mtcars) |> as.data.frame() |> subset(select = 1:5)
gt_tbl <- df |> gt() |>
tab_style(
locations = cells_body(
columns = `Datsun 710`,
rows = `Datsun 710` > 30
),
style = list(cell_text(color = 'red'))
)
gt_tbl
给出:
我想这就是你想要的,但我可能会离开。
此解决方案的缺点是您需要根据 rows
参数的数据集更改索引,并且您需要知道要添加颜色的变量的行索引在 table.
head(as_tibble(t(mtcars))) %>%
gt() %>%
data_color(
columns = where(is.numeric),
colors = scales::col_numeric(
palette = c("red", "green"),
domain = c(0,30)
)
) %>%
tab_style(
location = cells_body(
columns = where(is.numeric),
rows = 2:6
),
style = list(cell_text(color = "black"),
cell_fill(color = "white"))
)
这会给你:
我是 gt
包的新手。我有一组数据,如 t(mtcars))
。例如
Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive Hornet Sportabout Valiant Duster 360 Merc 240D Merc 230 Merc 280
mpg 21.00 21.000 22.80 21.400 18.70 18.10 14.30 24.40 22.80 19.20
cyl 6.00 6.000 4.00 6.000 8.00 6.00 8.00 4.00 4.00 6.00
disp 160.00 160.000 108.00 258.000 360.00 225.00 360.00 146.70 140.80 167.60
hp 110.00 110.000 93.00 110.000 175.00 105.00 245.00 62.00 95.00 123.00
drat 3.90 3.900 3.85 3.080 3.15 2.76 3.21 3.69 3.92 3.92
wt 2.62 2.875 2.32 3.215 3.44 3.46 3.57 3.19 3.15 3.44
如何根据每行的数字设置颜色?我只知道在相反的情况下该怎么做。例如
data_color(columns = vars("mpg"),
colors = scales::col_numeric(c("red","green"),
domain = c(0,30)))
或者如果我用 mtcars
形式的数据制作 table,或者有什么方法可以在最后进行转置?任何帮助表示赞赏。谢谢!
这是一个小例子:(新管道的 R >= 4.1)
library(gt)
df <- t(mtcars) |> as.data.frame() |> subset(select = 1:5)
gt_tbl <- df |> gt() |>
tab_style(
locations = cells_body(
columns = `Datsun 710`,
rows = `Datsun 710` > 30
),
style = list(cell_text(color = 'red'))
)
gt_tbl
给出:
我想这就是你想要的,但我可能会离开。
此解决方案的缺点是您需要根据 rows
参数的数据集更改索引,并且您需要知道要添加颜色的变量的行索引在 table.
head(as_tibble(t(mtcars))) %>%
gt() %>%
data_color(
columns = where(is.numeric),
colors = scales::col_numeric(
palette = c("red", "green"),
domain = c(0,30)
)
) %>%
tab_style(
location = cells_body(
columns = where(is.numeric),
rows = 2:6
),
style = list(cell_text(color = "black"),
cell_fill(color = "white"))
)
这会给你: