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();

}
4

1 回答 1

1

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

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

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

于 2013-04-25T11:25:07.983 回答