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

时间:2013-04-24 15:46:26

标签: highcharts

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

问题是当您放大第二个散点图然后按重置缩放时,图表会调整大小并向左推送所有数据(我假设因为我的所有数据点都具有相同的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 个答案:

答案 0 :(得分:1)

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

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

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