我有一个Highchart,将更新系列。在某些情况下(如小提琴显示),更新无法正常工作。 当该系列的一个数组仅包含空值时,下一个给定的数组不会生效。
https://jsfiddle.net/ChrisCross82/ubz3o4pr/
<body>
<button onclick="firstData()">1st Data</button>
<button onclick="secondData()">2nd Data</button>
<button onclick="firstData()">Again 1st Data (without Series1)</button>
<div id="chart1" style="height: 300px"></div>
</body>
var chart1;
chart1 = Highcharts.chart('chart1', {
series: [{
data: [],
},{
data: [],
}]
});
function firstData() {
var series1 = [65.4, 72.7, 70, 60.6, 42.9];
var series2 = [26, 33, 10, 33, 7];
updateChart(series1, series2);
}
function secondData() {
var series1 = [null, null, null, null, null];
var series2 = [0, 0, 0, 0, 0];
updateChart(series1, series2);
}
function updateChart(series1, series2){
chart1.update({
series: [{
data: series1
},{
data: series2,
}]
});
}
现在,我检查数组,如果数组中的每个值都为null,则将数组设置为[]。此后,更新工作。但是我认为这不是最好的解决方案。
也许我做错了什么?非常感谢克里斯
答案 0 :(得分:1)
这个问题看起来像个错误,所以我在Highcharts github上进行了报道:https://github.com/highcharts/highcharts/issues/9290
值得注意的是,只有使用相同数量的数据进行更新才会导致此问题:https://jsfiddle.net/BlackLabel/8nbdy9wq/
要解决此问题,您可以使用null
作为y
属性的值来更新图表:
function secondData() {
var series1 = [{
y: null
}, {
y: null
}, {
y: null
}, {
y: null
}, {
y: null
}];
var series2 = [0, 0, 0, 0, 0];
updateChart(series1, series2);
}