您可以创建一个自定义的 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'))
backgroundPosition = 'left'
,这样人们就可以使用它并尝试找到解决方案。很不可能有人(包括我自己)会花时间编写能够产生所描述情况的代码,然后再试图找到解决方案... - LyzandeR