如何在Highcharts中设置yAxis中的非线性步

时间:2014-07-01 09:32:14

标签: javascript highcharts

我想以这种方式展示图表:

  • 更高(从5到最大的1个刻度)
  • 5
  • 4
  • 3
  • 2
  • 1
  • 0
  • 降低(从1分钟到0分钟)

我尝试过使用min / max或floor / ceiling,但它不起作用

    yAxis: {
      floor: 0,
      ceiling: 5,
      title: {
      text: 'Value'
      }
    },

我在这里举例:http://jsfiddle.net/4NV2J/2/

你能告诉我指示吗?

1 个答案:

答案 0 :(得分:2)

可能你需要像“缩放”那样的东西,但是Highcharts还不支持。

解决方法是设置一些舍入值,并使用不同的属性将点显示在工具提示中:http://jsfiddle.net/4NV2J/6/

您还可以为yAxis添加label.formatter,以便让图表更易于阅读。

代码:

$('#container').highcharts({

    chart: {
        type: 'spline'
    },
    title: {
        text: 'Y axis'
    },

    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },

    yAxis: {
        tickInterval: 1,
        min: -1,
        max: 6,
        title: {
            text: 'Value'
        },
        labels: {
            formatter: function() {
                if(this.isFirst) {
                    return '< 0';
                } else if (this.isLast) {
                    return '> 5';
                } else {
                     return this.value;   
                }
            }
        }
    },
    tooltip: {
        pointFormat:  '<span style="color:{series.color}">\u25CF</span> {series.name}: <b>{point.options.trueValue}</b><br/>'   
    },
    series: [{
        data: [{
            y: 3,
            trueValue: 3
        }, {
            y: 4,
            trueValue: 4 
        }, {
            y: -1,
            trueValue: -4 
        }, {
            y: 6,
            trueValue: 40
        }]        
    }]
});