我用这样的日期和值初始化高图:
series: [{
name: 'Tokyo',
data:
[
[Date.parse("01/02/2017"),11],
[Date.parse("02/02/2017"),22],
]
},{
name: 'Tehran',
data:
[
[Date.parse("01/02/2017"),33],
[Date.parse("02/02/2017"),44],
]
}]
在上面的示例中,
chartArray
已成功添加到HighChart。
现在我想在图表中设置新数据,并使用HighChart.series[0].setData()
方法执行此操作。
JS:
$('#btnUpdate').('click', function(){
$.post('/Reporst/GetReportsJson/', data, function (dataR) {
var chartArray = []; //for chart value
var dateArray = []; // for chart date, X Axis
for (var i in dataR) {
for (var ii in dataR[i].finalChart) {
dateArray.push(dataR[i].finalChart[ii].date1);
chartArray.push(parseInt(dataR[i].finalChart[ii].value));
}
HighChart.series[i].setData(chartArray);
dateArray = []; chartArray = [];
}
})
使用此代码我只将new data
设置为图表,我的问题是:如何为图表设置new date
,new data
和new label
?
答案 0 :(得分:1)
一系列数据由一个数组组成,该数组包含每个数据点,一个包含两个元素的数组,其中日期为第一个元素(在您的情况下),值为第二个,如您所见代码的第一部分。
data:
[ // Data is an array
[Date.parse("01/02/2017"),11], // Each point is an array too
[Date.parse("02/02/2017"),22],
]
因此,当您填充chartArray
以执行setData()
时,它应该具有相同的格式,如下所示:
$('#btnUpdate').('click', function(){
$.post('/Reporst/GetReportsJson/', data, function (dataR) {
var chartArray = []; //for chart value
for (var i in dataR) {
for (var ii in dataR[i].finalChart) {
var date = dataR[i].finalChart[ii].date1;
var value = parseInt(dataR[i].finalChart[ii].value);
chartArray.push([Date.parse(date), value]); // One array with [date, value] per point, as stated above
}
}
HighChart.series[i].setData(chartArray);
chartArray = [];
}
})