HighChart:y轴类别被推离图表区域,不合适

时间:2014-12-23 18:10:11

标签: javascript highcharts

我有这个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();
            });


        }
    });

});

1 个答案:

答案 0 :(得分:1)

这条线对你的麻烦负责:

cur_series.data[z].y = cur_cindex;

正确的代码:

cur_series.data[z].update(cur_cindex, false);

您只更新了值,而您应该使用point.update()来更新点。演示:http://jsfiddle.net/qner9hwc/2/