styleColorBar:颜色条的大小与列的绝对值成比例

Posted

技术标签:

【中文标题】styleColorBar:颜色条的大小与列的绝对值成比例【英文标题】:styleColorBar: have the size of the color bar be proportional to absolute values of a column 【发布时间】:2017-11-14 04:48:50 【问题描述】:

使用styleColorBar,如何使颜色条的大小与列的绝对 值成比例?与此相反,在下面的示例中,查看cyl 列,红色条形越大,值越大。

代码:

data <- head(mtcars[,1:4])
data[,2] <- -data[,2]
data
out <- datatable(data, rownames = FALSE) %>%
  formatStyle('mpg',
              background = styleColorBar(data$mpg, 'lightblue'),
              backgroundSize = '95% 50%',
              backgroundRepeat = 'no-repeat',
              backgroundPosition = 'right') %>%
  formatStyle('cyl',
              background = styleColorBar(data$cyl, 'red'),
              backgroundSize = '95% 50%',
              backgroundRepeat = 'no-repeat',
              backgroundPosition = 'right')
out

结果: 我知道here 和there 已经回答了非常相似的问题。

但这两个例子似乎都比我的复杂。前者处理基于另一列格式化一列。后者有颜色条的方向取决于标志。我认为我的情况可能存在一个更简单的技巧......

谢谢

【问题讨论】:

【参考方案1】:

这里有一种骇人听闻的方式:styleColorBar 生成一些 javascript,您可以在其中将 value 替换为 Math.abs(value)。为了得到正确的限制,我还拿了abs(data$cyl)

library(DT)
data <- head(mtcars[,1:4])
data[,2] <- -data[,2]
data
out <- datatable(data, rownames = FALSE) %>%
  formatStyle('mpg',
              background = styleColorBar(data$mpg, 'lightblue'),
              backgroundSize = '95% 50%',
              backgroundRepeat = 'no-repeat',
              backgroundPosition = 'right') %>%
  formatStyle('cyl',
              background = gsub(
                "value", "Math.abs(value)", 
                styleColorBar(abs(data$cyl), 'red'),
                fixed=T),
              backgroundSize = '95% 50%',
              backgroundRepeat = 'no-repeat',
              backgroundPosition = 'right')
out

【讨论】:

【参考方案2】:

试试这个:

背景 = styleColorBar(c(0,data$mpg), 'lightblue'),

它适用于我闪亮的应用程序。它只是为数据创建了一个 0 限制,从而解决了问题。

【讨论】:

以上是关于styleColorBar:颜色条的大小与列的绝对值成比例的主要内容,如果未能解决你的问题,请参考以下文章

在 matplotlib 中更改颜色条的字体大小

csp怎么调滚动条大小

VBA之行与列的插入与删除

如何设置滚动条的宽度及颜色?

图形和颜色条上的大小相同[重复]

Symfony2与列的实体关系