openxlsx中的R色色调

openxlsx中的R色色调,r,R,我有一个数据帧,在其中我将列从最大值排序到最小值。然后使用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 <-

我有一个数据帧,在其中我将列从最大值排序到最小值。然后使用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个值填充为相同的绿色。我试图做的是将颜色从顶部值的RGB0255,0,maxColorValue=255变为绿色,到10值的RGB100255100,maxColorValue=255

有办法做到这一点吗


谢谢。

您可以通过将类型设置为colorscale来应用色标。首先,我们定义开始和停止值:

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)