如何根据chartjs中的标签值更改条形颜色

时间:2015-07-31 17:14:15

标签: javascript chart.js

我需要在chartjs中使用条形图,我需要所有条形图都是一种颜色,而中间只有一条条形图是其他颜色。如果我可以根据使用的特定颜色创建值范围,那将是最好的。

http://s24.postimg.org/4jg17tm5h/graf.png

我已使用此命令手动绘制了这一个条

myLine.datasets[0].bars[50].fillColor = "red";

但我需要它自动选择一个值并按其限制选择颜色。有可能吗?

2 个答案:

答案 0 :(得分:1)

查看documentation中的getBarsAtEvent方法。

以下是如何使用它的示例,但您可能需要根据您的特定需求对其进行修改:

canvas.onmousemove = function(evt) {
    var bars = chart.getBarsAtEvent(evt);
    for (var i = 0; i < bars.length; i++) {
        setColor(bars[i]);
    }
};

function setColor(bar) {
    if (bar.value < 10) {
        bar.fillColor = "red";
    } else if (bar.value < 20) {
        bar.fillColor = "yellow";
    } else {
        bar.fillColor = "green";
   }
}

答案 1 :(得分:0)

我已经使用了部分解决方案并解决了问题

        for (var i = 0; i < myLine.datasets[0].bars.length; i++) {
        console.log(myLine.datasets[0].bars[i].value);
        if(myLine.datasets[0].bars[i].value < 10) {
            myLine.datasets[0].bars[i].fillColor = "red";
        } else if (myLine.datasets[0].bars[i].value > 20) {
            myLine.datasets[0].bars[i].fillColor = "yellow";
        }
    }

这就是我需要的,谢谢,我不知道如何访问酒吧的价值。