2016-01-28 59 views
0

我一直在閱讀文檔和谷歌搜索幾個小時,並沒有取得任何進展找到這些類別。我正在構建grapg。如何動態設置Highcharts類別?

var udsChart; //global UDS chart variable 
function requestData() { 
    $.ajax({ 
     url: 'getJsonData.aspx?ID=udsLevel1', 
     success: function (point) { 
      udsChart.series[0].setData(point, true); 
      setTimeout(requestData, 1000);     
     }, 
     cache: false 
    }); 
} 

udsChart = new Highcharts.Chart({ 
    chart: { 
     renderTo: 'udsGraphDiv', 
     defaultSeriesType: 'column', 
     events: { 
      load: requestData 
     } 
    }, 
    title: { 
     text: 'Live random data' 
    }, 
    xAxis: { 
     text: 'xAxis' 
    }, 
    yAxis: { 
     text: 'yAxis' 
    }, 
    series: [{ 
     name: 'Random data', 
     data: [] 
    }] 
}); 

enter image description here

+0

請嘗試將響應PARAM別的東西,而不是點,意味着成功:函數(MYDATA的){ VAR udsChart = $( 「#udsGraphDiv」)。 Highcharts(); udsChart.series [0] .setData(myData,true);也分享你的數據格式,這是一個字符串和值的數組?在這裏發佈Ajax響應以更好地進行調試。 –

+0

這是一個jSon對象。只有兩個值 [[「01/22/2016」,108],[「01/24/2016」,45],[「01/25/2016」,261],[「01/26/2016」 ,224],[「01/27/2016」,307],[「01/28/2016」,64]] –

+0

您需要爲柱狀圖分別設置類別和數據。迭代數據並推送類別和值中的日期series.data例如var data = {「name」:「someName」,「data」:[50,,150,155,324,705]};和 var categories = [5600,5700,5800,5900,6000,6100]; –

回答

1

您只需設置xAxis類別屬性。 這是一個example

var data = [["01/22/2016",108],["01/24/2016",45],["01/25/2016",261], 
["01/26/2016",224],["01/27/2016",307],["01/28/2016",64]]; 

var cat = []; 

data.forEach(function(item) { 

    cat.push(item[0]); 

}); 

udsChart = new Highcharts.Chart({ 


chart: { 
    renderTo: 'udsGraphDiv', 
    defaultSeriesType: 'column', 
    events: { 
     //load: requestData 
    } 
}, 
title: { 
    text: 'Live random data' 
}, 
xAxis: { 
    text: 'xAxis', 
    categories: cat 
}, 
yAxis: { 
    text: 'yAxis' 
}, 
series: [{ 
    name: 'Random data', 
    data: data 
}] 

}); 
2

無論您的類別應該固定,你可以使用setData通過使用setData與價值觀的陣列功能。但如果類別也在變化,請嘗試此操作

success: function (data) { 
var categories= []; 
var seriesData = []; 
$.each(data,function(item){ 
     categories.push(item[0]); 
     seriesData.push(item[1]); 
}); 
udsChart.xAxis[0].setCategories(categories); //setting category 
udsChart.series[0].setData(seriesData , true); //setting data 
setTimeout(requestData, 1000); 
} 
+0

將嘗試此操作並回報。 –

0

您錯過了簡單的屬性:xAxis.type。將它設置爲category,並將努力,像這樣:

xAxis: { 
    text: 'xAxis', 
    type: 'category' 
},