首页 文章

Highcharts重置缩放不会使数据点居中

提问于
浏览
0

我正在尝试创建一个散点图,当您选择一个点时,它将创建一个包含不同数据的新图形 . 这很好用 .

问题是当您放大第二个散点图然后按重置缩放时,图表会调整大小并向左推送所有数据(我假设因为我的所有数据点都具有相同的x坐标或因为值非常小) . 我想通过使用setExtremes(),重置缩放将使用这些值作为最小值和最大值 .

这是JSFiddle:http://jsfiddle.net/kzBxB/5/

下面是我用来创建新图表的功能 . 我是否需要更改任何内容以使'重置缩放'注册我的给定xAxis最小值和最大值?

function newPoints() {
    var chart = jQuery('#container').highcharts();
    for (var i = 0; i < chart.series.length; i++) {
        serie = chart.series[i];

        //sets the new x axis and new data 
        chart.yAxis[0].setExtremes(0, 10);
        chart.xAxis[0].setExtremes(.001, .003);

        chart.addSeries({
            type: 'scatter',
            name: serie.name,
            data: [
                [.002, 1],
                [.002, 2],
                [.002, 3],
                [.002, 4],
                [.002, 5][.002, 6]
            ]
        }, false);

        //removes the old series
        serie.remove(false);
    }
    //redraws the chart
    chart.redraw();

}

1 回答

  • 1

    问题是所有值都具有相同的x值,因此Highcharts不知道在哪里绘制它们(点的范围是多少) . 在这种情况下,我建议使用afterSetExtremes事件:

    xAxis: {
            events: {
                afterSetExtremes: function(e){
                    if(e.min === e.max){
                        this.setExtremes(.001, .003);
                    }
                }
            }
        },
    

    例如:http://jsfiddle.net/kzBxB/7/

相关问题