首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R gt:用另一列的值将一列涂上颜色

R gt:用另一列的值将一列涂上颜色
EN

Stack Overflow用户
提问于 2021-05-27 13:07:21
回答 1查看 413关注 0票数 4

我想要创建一个gt表,在这个表中,我在单个单元格中一起显示两列的数值,但是只根据列的一个值对单元格进行着色。

例如,使用ToothGrowth示例数据,我希望将lendose列放在一个单元格中,但用dose值对单元格背景进行着色。

我尝试手动创建一个颜色向量来为len_dose列着色,但这不起作用,因为它似乎是在将颜色向量重新应用于每个不同级别的len_dose,而不是dose。我想您可以手动使用tab_style()格式化单元格,但这似乎效率低下,并且没有给您提供一个很好的功能,即文本颜色的变化可以最大限度地增强与背景的对比。我不知道有什么有效的方法能做到这一点。

我试过的是:

代码语言:javascript
运行
复制
library(gt)
library(dplyr)
library(scales)
library(glue)

# Manually map dose to color
dose_colors <- col_numeric(palette = 'Reds', domain = range(ToothGrowth$dose))(ToothGrowth$dose)

ToothGrowth %>%
  mutate(len_dose = glue('{len}: ({dose})')) %>%
  gt(rowname_col = 'supp') %>%
  cols_hide(c(len, dose)) %>%
  data_color(len_dose, colors = dose_colors)  

输出(不太好,因为不受剂量的影响):

EN

Stack Overflow用户

发布于 2022-06-10 01:12:47

还不确定您是否找到了解决这一问题的方法,但下面是我所做的:

  • 如果使用tab_style(),则不需要尝试创建颜色向量,而是可以根据dose列设置所需的背景色。如果您希望根据dose对值进行不同的着色,除了我在这里显示的内容之外,还可以为所需的值创建另一个tab_style()。 图书馆(Gt)库(Dplyr)库(缩尺)库(Glue) ToothGrowth %>%变异( len_dose = glue('{len}:({剂量})‘)) %>% gt(rowname_col = 'supp') %>% tab_style( style =cell_fill(色=“古绿色”),location = cells_body(列=len_dose),行=剂量>= 1.0 ) %>% cols_hide(c(len,剂量))

票数 4
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67722820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档