Highcharts yAxis刻度间隔

时间:2015-10-12 14:18:45

标签: jquery highcharts

我有折线图。数据始终索引为100.我希望yAxis始终从100开始。我将yAxis设置为......

yAxis: {min: 0, tickinterval: 100}

将我的yAxis设置为{0,100,200,---}。它确实适用于我的大多数数据,但是当数字很大时,tickinterval会发生变化。它来自{0,5k,10k ......}。我该如何设置我的间隔,以便在yAxis中始终可以看到100?

3 个答案:

答案 0 :(得分:1)

对于yAxis,将min设置为100并将startOnTick设置为false将用于显示100的轴。为确保100的刻度可见,您可以使用tickPositioner并重新定义位置以进行刻度。

$(function () {
    $('#container').highcharts({
        xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
        },

        yAxis: {
            min: 100,
            startOnTick: false,
            tickPositioner: function() {
                var oldPos = this.tickPositions,
                    len = oldPos.length,
                    pos = [100],
                    i;
                for(i = 0; i<len; i++) {
                    if(oldPos[i] > 100) {
                        pos.push(oldPos[i]);
                    }
                }
                return pos;
            }
        },

        series: [{
            data: [200,400,300, 2000,2500,5000,60000,7e7] 
        }]
    });
});

示例:http://jsfiddle.net/w14kqf4d/

使用大比例时,标签将被格式化为0.1k。要改变它,你可以使用标签&#39; formatformatter

答案 1 :(得分:0)

我会使用第二个轴并使用tickPositions属性执行此操作。

此处示例:

数字越大,100就会出现在刻度之间。 当刻度间隔为100时,第2轴的100将出现在主轴标签的前面,不会引起注意。

或者,您也可以将第二个y轴设置为相反,并始终在右侧显示:

你也可以忘记第二个y轴,并使用带有标签的情节线:

如果这些示例都不适合您,您还可以查看tickPositioner函数,看看是否可以解决这个问题:

答案 2 :(得分:-1)

Here is a fiddle

yAxis: {
        min: 100,
    },