我正在寻找创建条形,当使用 DT 时,它datatable
会出现在列的单元格中间,并根据单元格中的值是正数还是负数向左或向右伸出。
我已经尝试使用该函数styleColorBar
并将参数更改backgroundPosition
为'left'
或'center'
但是每次尝试时,条形仍然出现在单元格的右侧并且总是向左移动。
我无法从 R 代码中找到示例,但附上了可以在 Excel 上完成的示例;颜色不是必需的,但如果包括在内,那将是一个奖励。
您可以制作一个自定义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))
}
使用一些测试数据:
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'))