我有这个jsfiddle来说明我的问题:http://jsfiddle.net/qner9hwc/1/
每当你添加一个没有最高整数值的系列时,无论它是在底部还是在某个地方的中间,顶部值都会被推离图表区域,或者类别不适合图形区域。
动态添加类别并期望整数值。我让它们按升序排序。
试试这个用例:
添加一个系列“10”,然后是“5”(你会在这里看到我的问题),然后添加“15”并且它会自行纠正
$('#addSeries').on('click', function () {
//first check if value is already a series
var seriesid = document.getElementById('txtValue').value;
getSeriesIDIndex(seriesid, function (idindex) {
//if it doesnt exist, add it to chart
if (idindex == -1) {
categories.push(parseInt(seriesid));
categories = categories.sort(sortNumber);
console.log(categories);
chart.yAxis[0].setCategories(categories, false);
getCategoryIndex(parseInt(seriesid), function (cindex) {
chart.addSeries({
name: seriesid,
data: [{
x: currentDate.getTime(),
y: cindex
}]
}, false);
for (i = 0; i < chart.series.length; i++) {
var cur_series = chart.series[i];
var cur_cindex;
getCategoryIndex(chart.series[i].name, function (cindex) {
cur_cindex = cindex;
});
for (var z = 0; z < cur_series.data.length; z++) {
if (cur_series.data[z].y >= cindex && cur_series.name !== seriesid) {
console.log('change!' + cur_series.data[z].y);
cur_series.data[z].y = cur_cindex;
}
}
}
console.log(chart.yAxis[0].categories);
chart.redraw();
});
}
});
});
答案 0 :(得分:1)
这条线对你的麻烦负责:
cur_series.data[z].y = cur_cindex;
正确的代码:
cur_series.data[z].update(cur_cindex, false);
您只更新了值,而您应该使用point.update()
来更新点。演示:http://jsfiddle.net/qner9hwc/2/