我尝试基于JSON响应为条形图动态着色时遇到问题。
我知道这已经被问过好几次了,但是我发现或尝试过的所有答案都无法使我更接近解决方案。
我创建了一个快速的JSfiddle来显示问题。
我还有许多其他图表,它们都是从不同的JSON字符串生成的,因此已将其缩减了很多,以尝试找出问题所在。我对其他图表没有相同的问题,因为Label数组中的条目数与颜色数一致。令人讨厌的代码是这个;
DT_Labels.forEach(function(DT_LABELS, x) {
data.datasets.push({
label: DT_LABELS,
backgroundColor: backgroundColor[x],
data: JSON.parse(DT_Values[x]).map(Number)
});
});
DT_Labels仅包含一个条目,因为该图表是一个汇总列表-从理论上讲,如果我计算DT_Values的数量,这将起作用,但是如果这样做,我将无法在图表中获取正确的数据。
有什么想法可以重新格式化以根据“值”而不是“标签”的数量生成颜色计数器?
答案 0 :(得分:1)
更改:
backgroundColor: backgroundColor[x],
收件人:
backgroundColor: backgroundColor,
结果:
为什么这样做?
backgroundColor
属性可以通过多种方式指定。通常将其设置为字符串,例如#abcdef
,但也可以将其设置为数组。在这种情况下,Chart.js本身将根据其绘制的数据点的索引从数组中选择颜色。