基于数组中的条目的chartJS中的动态颜色

时间:2018-10-02 12:43:51

标签: javascript chart.js

我尝试基于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的数量,这将起作用,但是如果这样做,我将无法在图表中获取正确的数据。

有什么想法可以重新格式化以根据“值”而不是“标签”的数量生成颜色计数器?

1 个答案:

答案 0 :(得分:1)

更改:

backgroundColor: backgroundColor[x],

收件人:

backgroundColor: backgroundColor,

结果:

Result of code change

为什么这样做?

backgroundColor属性可以通过多种方式指定。通常将其设置为字符串,例如#abcdef,但也可以将其设置为数组。在这种情况下,Chart.js本身将根据其绘制的数据点的索引从数组中选择颜色。