Jquery Highcharts:尝试更新系列
我正试图通过单击按钮来更新Highchart系列。由于未知原因,无法更新该系列。有人能帮我吗 这里有一个JSFIDLE链接: 请参见下面的我的代码:Jquery Highcharts:尝试更新系列,jquery,highcharts,Jquery,Highcharts,我正试图通过单击按钮来更新Highchart系列。由于未知原因,无法更新该系列。有人能帮我吗 这里有一个JSFIDLE链接: 请参见下面的我的代码: chart: new Highcharts.Chart({ chart: { renderTo:'container', type: 'bar', backgroundColor: 'transparent', height:200 }, tooltip: {
chart: new Highcharts.Chart({
chart: {
renderTo:'container',
type: 'bar',
backgroundColor: 'transparent',
height:200
},
tooltip: {
positioner: function () {
return {x:0,y:0}
},
formatter: function() {
return '<b>' + this.series.name + '</b>: <b>' + this.y + ' uur</b>';},
shadow: false,
borderWidth: 0,
backgroundColor: 'rgba(0,0,0,0.1)'
},
credits: {
enabled: false
},
title: {
text: 'Shift Overview'
},
xAxis: {
lineWidth: 0,
minorGridLineWidth: 0,
lineColor: 'transparent',
minorTickLength: 0,
tickLength: 0,
labels: {
enabled: false
},
height: 50
},
yAxis: {
categories: ['7:00', '8:00', '9:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00'],
tickmarkPlacement: 'on',
height: 50
},
legend: {
reversed: false
},
plotOptions: {
series: {
stacking: 'normal'
}
},
series: [{"name": "Production", "data": [3.5], "color":"green"}, {"name": "Changeover", "data": [1.5], "color":"lightblue"}, {"name": "Technical Failure", "data": [5], "color":"red"}, {"name": "Production", "data": [2], "color":"green"}]
});
.update()方法仅更新现有系列的选项。要更新,我认为您需要删除现有系列,然后一次添加一个新系列。另一种方法是删除图表并用新数据重新创建它。我展示了第一个更新,如下所示:
$('#button').click(function () {
var chart = $('#container').highcharts();
var new_serie = [{
"name": "Production",
"data": [3.5],
"color": "green"
}, {
"name": "Changeover",
"data": [3.5],
"color": "lightblue"
}, {
"name": "Technical Failure",
"data": [5],
"color": "red"
}];
//alert(new_serie); // returns objects
for (var i = chart.series.length-1; i>=0; i--) {
chart.series[i].remove();
}
for (var y = new_serie.length-1; y >= 0; y--) {
chart.addSeries(new_serie[y]);
}
});
检查这个小提琴:你能发布你的json回复并创建一个JSFIDLE吗?如果可能的话,你的json是不正确的,你不能像字符串一样放括号。Alert返回的字符串很好,但它不是对象。我试图通过单击按钮更新序列,但它不起作用。有人知道如何更新这个系列吗@dreamweiver:正如你所问,我已经创建了一个JSFIDLE:[链接]@SebastianBochan:谢谢你的回复。很有用,谢谢你,伙计!这正是我需要的。你解释得很好。。。现在我更明白了。再次感谢你!
$('#button').click(function () {
var chart = $('#container').highcharts();
var new_serie = [{
"name": "Production",
"data": [3.5],
"color": "green"
}, {
"name": "Changeover",
"data": [3.5],
"color": "lightblue"
}, {
"name": "Technical Failure",
"data": [5],
"color": "red"
}];
//alert(new_serie); // returns objects
for (var i = chart.series.length-1; i>=0; i--) {
chart.series[i].remove();
}
for (var y = new_serie.length-1; y >= 0; y--) {
chart.addSeries(new_serie[y]);
}
});