我有一个dataframe,在其中我从最大值到最小值对列进行排序。然后使用openxlsx,在输出电子表格中为前10个值分配一种特定的颜色(比如绿色)。下面是一个示例。
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)的颜色染成绿色。
有没有办法做到这一点?
谢谢。
发布于 2019-12-19 15:16:34
您可以通过将type设置为colourScale来应用颜色比例。首先,我们定义开始值和停止值:
Top10Style <- c(rgb(0, 255, 0, maxColorValue = 255),
rgb(100, 255, 100, maxColorValue = 255))写入文件:
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)https://stackoverflow.com/questions/59401305
复制相似问题