首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openxlsx中的R-Color Tint

openxlsx中的R-Color Tint
EN

Stack Overflow用户
提问于 2019-12-19 07:18:50
回答 1查看 328关注 0票数 0

我有一个dataframe,在其中我从最大值到最小值对列进行排序。然后使用openxlsx,在输出电子表格中为前10个值分配一种特定的颜色(比如绿色)。下面是一个示例。

代码语言:javascript
复制
library("openxlsx") 
set.seed(123)
test <- data.frame("Name"= letters,"randNum"=runif(26, 1, 100))

test <- test[order(test$randNum,decreasing = TRUE) , ]

wb_test <- createWorkbook()
addWorksheet(wb_test, "Sheet", gridLines = TRUE)

Top10Style <- createStyle(bgFill = "#A9D08E")

writeData(wb_test, "Sheet", test)

conditionalFormatting(wb_test, "Sheet", cols = 2,
                                            rows = 2:11, rule = "<101",style = Top10Style,
                                            type = "expression")


saveWorkbook(wb_test, file = "test.xlsx", overwrite = TRUE)

这将生成一个列,其中前10个值都填充了相同颜色的绿色。我尝试做的是将顶部值的rgb(0,255,0,maxColorValue = 255)到#10值的rgb(100,255,100,maxColorValue = 255)的颜色染成绿色。

有没有办法做到这一点?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-19 15:16:34

您可以通过将type设置为colourScale来应用颜色比例。首先,我们定义开始值和停止值:

代码语言:javascript
复制
Top10Style <- c(rgb(0, 255, 0, maxColorValue = 255), 
                rgb(100, 255, 100, maxColorValue = 255))

写入文件:

代码语言:javascript
复制
wb_test <- createWorkbook()
addWorksheet(wb_test, "Sheet", gridLines = TRUE)

writeData(wb_test, "Sheet", test)

conditionalFormatting(wb_test, "Sheet", cols = 2,
                      rows = 2:11, 
                      rule = NULL,
                      style = Top10Style,
                      type = "colourScale")


saveWorkbook(wb_test, file = "test.xlsx", overwrite = TRUE)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59401305

复制
相关文章

相似问题

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