2016-01-14 212 views
2

我正在使用json數據創建列類型圖。這裏是我調用的使用Ajax調用獲取數據的JS函數並繪製圖表。Highcharts根據值動態更改條的顏色

function getChart(){ 
    var categorySeries = []; 
    var dataSeries = [];    
    var url = "CallToControllerURL"; 

    $.getJSON(url, function(response) {    
     $.each(response, function(i, item) { 
      categorySeries .push(response[i].dateVal);     
      dataSeries.push(response[i].count);    
     }); 

     $('#chartDiv').highcharts({ 
      chart : {type : 'column'}, 
      title : {text : 'Date vs Count'}, 
      xAxis : {categories : categorySeries, crosshair : true}, 
      yAxis : {allowDecimals: false, min : 0, title : { text : 'Count'}}, 
      plotOptions : { column : { pointPadding : 0.2, borderWidth : 0, allowPointSelect: true } }, 
      series : [ {name : 'Nbr of Records',data : dataSeries } ] 
     });    
    }); 
} 

我希望能夠修改欄的顏色任何一天,如果計數大於某個特定值時,說10

這是怎麼輸入功能JSON。

[{"id":3,"dateVal":"2015-11-12","count":6},{"id":2,"dateVal":"2015-11-11","count":8},{"id":1,"dateVal":"2015-11-10","count":5}] 

任何建議我怎麼能做到這一點?

+0

專門改變顏色,還是一般?如果兩個酒吧超過10,他們都可以是相同的顏色? –

+0

是的,所以我們可以說圖表中有一個星期的數據有7個條形圖。當計數大於10時,我希望酒吧的顏色爲紅色。對於小於10的所有值,可以使用diff color或默認值。 – Ninja

回答

12

您可以使用顏色區域(API)根據列的值具有不同的顏色。

與下面的值/值以上具有不同顏色的10的一個例子(JSFiddle):

plotOptions: { 
    column: { 
     zones: [{ 
      value: 10, // Values up to 10 (not including) ... 
      color: 'blue' // ... have the color blue. 
     },{ 
      color: 'red' // Values from 10 (including) and up have the color red 
     }] 
    } 
} 
+0

太好了。這工作。 – Ninja

+0

非常感謝!這很好 – Chris

0

在解析器可以替換的是:

$.each(response, function(i, item) { 
     categorySeries .push(response[i].dateVal);     
     dataSeries.push(response[i].count);    
    }); 

$.each(response, function(i, item) { 
    categorySeries.push(response[i].dateVal); 
    if(response[i].count >= 10) { 
     dataSeries.push({ 
     y: response[i].count, 
     color: 'red' 
     }); 
    } 
    else { 
     dataSeries.push(response[i].count); 
    } 
}); 

或使用zones

+1

我一直在嘗試類似的東西,但沒有使用Y軸選項。現在我知道什麼是失蹤。這起作用,API的區域功能也起作用。 – Ninja