styleColorBar中心并根据Sign移位左/右

Ash*_*dry 10 datatable r shiny dt

我正在寻找创建条形图,当使用DT时,它datatable会出现在列的单元格中间,并向左或向右伸出,具体取决于单元格中的值是正还是负.

我已尝试使用该函数styleColorBar并将参数更改backgroundPosition为'left'或者'center'每次尝试时,条形图仍显示在单元格的右侧,并始终向左移动.

我找不到R代码的例子,但附上了一个可以在Excel上完成的例子; 颜色不是必要的,但如果包含这将是一个奖金.

在此输入图像描述

Nic*_*icE 21

您可以创建一个styleColorBar使用CSS渐变(与原始渐变相同styleColorBar)的自定义函数来制作所需的条形图.

这是一个例子(抱歉为长行,添加新行会破坏CSS):

color_from_middle <- function (data, color1,color2) 
{
  max_val=max(abs(data))
  JS(sprintf("isNaN(parseFloat(value)) || value < 0 ? 'linear-gradient(90deg, transparent, transparent ' + (50 + value/%s * 50) + '%%, %s ' + (50 + value/%s * 50) + '%%,%s  50%%,transparent 50%%)': 'linear-gradient(90deg, transparent, transparent 50%%, %s 50%%, %s ' + (50 + value/%s * 50) + '%%, transparent ' + (50 + value/%s * 50) + '%%)'",
             max_val,color1,max_val,color1,color2,color2,max_val,max_val))
} 
Run Code Online (Sandbox Code Playgroud)

使用一些测试数据:

data <- data.frame(a=c(rep("a",9)),value=c(-4,-3,-2,-1,0,1,2,3,4))

datatable(data) %>%
  formatStyle('value',
              background=color_from_middle(data$value,'red','blue'))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述