是否可以在 color_tile 函数中使用 2 种以上的颜色?

hen*_*ygd 2 r shiny formattable

我有一个数据框列,我目前正在使用该formattable::color_tile函数进行格式化(如下):

color_tile( "red", "springgreen" )

我的问题是中间附近的值是丑陋的棕色,我理想情况下希望它是红色-琥珀色-绿色渐变,但 color_tile 似乎只能采用 min.color 和 max.color参数 - 是否可以在 R 中使用具有此或类似格式功能的第三种颜色?

MrF*_*ick 6

该函数看起来不像是为处理两种以上的颜色而设计的,但您可以在该模板上构建自己的建筑。

color_tile2 <- function (...) {
  formatter("span", style = function(x) {
    style(display = "block",
          padding = "0 4px", 
          `border-radius` = "4px", 
          `background-color` = csscolor(matrix(as.integer(colorRamp(...)(normalize(as.numeric(x)))), 
                                               byrow=TRUE, dimnames=list(c("red","green","blue"), NULL), nrow=3)))
  })}
Run Code Online (Sandbox Code Playgroud)

可以像这样使用

formattable(mtcars, list(mpg = color_tile2(c("white", "pink"))))
formattable(mtcars, list(mpg = color_tile2(c("blue", "green", "pink"))))
Run Code Online (Sandbox Code Playgroud)