没有良好排序的X轴值

时间:2014-08-19 21:47:42

标签: highcharts

在附图中,x轴上的值不是有序的,它从1增加到112然后从101减少到0。

我问是否有任何方法可以使用Highcharts做同样的事情。

enter image description here

谢谢

2 个答案:

答案 0 :(得分:1)

示例如何做到这一点:http://jsfiddle.net/7wwpLLzt/9/

$('#container').highcharts({
    chart: {
        zoomType: 'xy'
    },
    xAxis: [{ // Primary yAxis
        min: 1,
        max: 224,
        startOnTick: false,
        endOnTick: false,
        maxPadding: 0,
        minPadding: 0,
        tickPositions: [1, 15, 33, 55, 78, 98, 112]
    }, {
        offset: 0,
        min: 1,
        max: 224,
        startOnTick: false,
        endOnTick: false,
        reversed: true,
        maxPadding: 0,
        minPadding: 0,
        showLastLabel: false,
        tickPositions: [1, 15, 33, 55, 78, 98, 112]
    }],
    tooltip: {
        shared: true
    },
    series: [{
        name: 'S1',
        type: 'spline',
        xAxis: 1,
        data: [
            [13, 7],
            [44, 3],
            [56, 4]
        ],
    }, {
        name: 'S2',
        type: 'spline',
        data: [
            [1, 2],
            [14, 3],
            [100, 6]
        ]
    }]
});

使用两个轴,一个用于左侧,一个用于右侧。

答案 1 :(得分:0)

另一种方法是格式化x轴标签:jsfiddle.net/7wwpLLzt/5

xAxis: [{ // Primary yAxis

        labels: {
            formatter: function () {
                  var maxValue=112.6;  // max value on x 
                if ( this.value > maxValue )
                {
                    return  parseFloat(maxValue - ( this.value - maxValue)).toFixed(1);  
                }
                else
                {
                    return  parseFloat(this.value).toFixed(1);     
                }


            }
        }

    }],
        tooltip: 
      {
        formatter: function () {
            var xa = this.x;
            var maxValue=112.6;  // max value 
            if ( xa >maxValue )
            {
                xa = parseFloat(maxValue - ( xa - maxValue)).toFixed(1);
            }
            var s = '<b>' + xa + '</b>';

            $.each(this.points, function () {
                s += '<br/>' + this.series.name + ': ' +
                    this.y + 'm';
            });

            return s;
        },
        shared: true
    },