2016-02-05 118 views
1

我有Highcharts版本4.1.10如何将Highcharts酒吧颜色重置为原始颜色?

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

//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首先自动为系列选择的原始颜色?

回答

0

你试过下面的解决方案?

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

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

如果这不会帮助,您可以随时使用:

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

是的,如果我可以帮忙的话,我不想去查找系列颜色。这很奇怪,我可以发誓,我之前尝试过这样的空效,它没有工作,但我再次尝试,它确实工作,谢谢! – Brandon

0

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

chart.colorCounter = 0; 

下面是一个例子:

JSFiddle

+0

对不起,没有工作。另外,据我所知,该房产没有记录在Highcharts网站上。 – Brandon

+0

尝试更新的代码。将#container替换为正确的名称 –

+0

我没有像这样使用你的代码,我用我的图表变量。由于计数器不存在,它会给出错误消息。你能做一个正常的小提琴的例子吗? – Brandon