2016-01-28 56 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' 
},