如何将Highcharts条形颜色重置为原始颜色?

时间:2016-02-05 15:41:39

标签: javascript css highcharts colors

我有Highcharts版本4.1.10

我有一个条形图,当值超过阈值时,我会更改条形图的颜色。

//timeout calls this at regular interval
function myTimeoutFunction() {
    var xmlRequest = $.ajax({
        dataType: "json",
        url: applicationPath + 'myWebapi/valuesToMeasure',
        cache: false,
        success: myFunctionOnSuccess,
        error: myFunctionOnError
    });
}

function myFunctionOnSuccess(myData) {
    if (myData.value > 500000000) {
        mySeriesDataArray.data.push({ y: myData.value, color: "rgb(255, 0, 0)" });
    } 
    else  {
        mySeriesDataArray.data.push({ y: myData.value);
    }

    //...

    mySeries.setData(mySeriesDataArray.data,true);
}

系列数据使用超时间隔更新。

当一个值超过阈值时,它会按预期工作,并将条纹颜色设为红色。

但是当值回到阈值以下时,栏会保持红色。我认为颜色样式只是坚持下去。

有没有办法告诉Highcharts将颜色重置为Highcharts首先为该系列自动选择的原始颜色?

2 个答案:

答案 0 :(得分:1)

尝试在更新前重置颜色计数器。

chart.colorCounter = 0;

以下是一个例子:

JSFiddle

答案 1 :(得分:0)

您是否尝试过以下解决方案?

mySeriesDataArray.data.push({ y: myData.value, color: null });

我的意思是,只需删除color属性即可。

如果这样做无效,您可以随时使用:

mySeriesDataArray.data.push({ y: myData.value, color: mySeries.color }); // re-apply color