我试图使图表的X和Y轴始终相交于0。目前,我正在拦截“加载”事件,然后更改最初起作用的轴的偏移量,但是当调整窗口大小或放大图表时,轴不会更新。

即使调整了窗口大小或放大了图表,如何将轴居中于0?

这是我的小提琴和代码:http://jsfiddle.net/a003mc4b/

$(function () {
    $('#container').highcharts({

        chart: {
            type: 'scatter',
            zoomType: 'xy',
            events: {
                load : function() {
                    this.xAxis[0].update({
                            offset: -this.yAxis[0].translate(0)
                        });
                    this.yAxis[0].update({
                            offset: -this.xAxis[0].translate(0)
                        });
                }
            },
        },

        title: {
            text: 'X and Y axis should intersect at 0'
        },
        yAxis: {
            lineColor: '#FF0000',
            lineWidth: 1
        },
        xAxis: {
            lineColor: '#FF0000',
            lineWidth: 1
        },
        series: [{
            data: [[0,0],[1,1],[2,5],[-1,-5],[0,5]]
        }]
    });
});

最佳答案

您可以使用绘图线的概念。

您可以为xAxis和Yaxis分别绘制一条线,使其为0。这将使它们始终在0处相交,即使您调整大小

xAxis: [{
 plotLines: [{
                value: 0,
                 width: 2,
                color: 'blue'
            }]
}],
yAxis : [{
 plotLines: [{
                value: 0,
                 width: 2,
                color: 'blue'
            }]
}]


更新了您的js小提琴here

即使您调整大小,这件事也不会受到影响。

10-05 22:14