Highcharts Gauge图表向下舍入最大数字

时间:2015-05-26 21:26:55

标签: javascript math highcharts

max设置为一个非常大的数字(例如666772)时会出现问题.Highcharts会根据tickPixelInterval设置的值来取数字并将其四舍五入。

如果我将tickPixelInterval值设置为接近0,则Gauge图表上的最大数字开始接近666772,但仍然是四舍五入的。我希望min从0开始(它确实如此),然后让max成为确切数字(666772),或者甚至是向下舍入版本(667k)。

有没有办法只使用Gauge图表上显示的minmax进行此操作?

   var gaugeOptions = {

    chart: {
      type: 'solidgauge'
    },

    title: null,

    pane: {
      center: ['50%', '85%'],
      size: '140%',
      startAngle: -90,
      endAngle: 90,
      background: {
        backgroundColor: '#EEE',
        innerRadius: '60%',
        outerRadius: '100%',
        shape: 'arc'
      }
    },

    // the value axis
    yAxis: { 
      stops: [
        [0.1, '#DF5353'], // green
        [0.5, '#DDDF0D'], // yellow
        [0.9, 'green'] // red
      ],
      lineWidth: 0,
      minorTickInterval: null,
      tickPixelInterval: 400,
      tickWidth: 0,
      endOnTick: false,
      maxPadding: 0,
      title: {
        y: -70
      },
      labels: {
        y: 10,
        format: '{value}'
      }
    },

    credits: {
      enabled: false
    },

    tooltip: {
        enabled: false
    },

    plotOptions: {
      solidgauge: {
        dataLabels: {
          y: 5,
          borderWidth: 0,
          useHTML: true
        }
      }
    }

  };

  // Quarter1
  jQuery('#quarter1').highcharts(Highcharts.merge(gaugeOptions, {
    yAxis: {
      min: 0,
      max: 666772,
      title: {
        text: 'Quarter 1'
      }
    },

    series: [{
      name: 'Quarter 1',
      data: [50],
      dataLabels: {
        format: '<div style="text-align:center"><span style="font-size:25px;color:' +
          ((Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black') + '">${y}</span><br/>' +
          '<span style="font-size:12px;color:silver">Quota</span><br/><span>Bonus Elegible</span></div>'
      }
    }]

  }));

3 个答案:

答案 0 :(得分:4)

使用此代码显示确切金额的最小值和最大值。

yAxis: {
min: 0,
max: 2602,
tickPositioner: function() {
  return [this.min, this.max];
} 

答案 1 :(得分:2)

endOnTick:false http://api.highcharts.com/highcharts#yAxis.endOnTick)添加到您的轴。例如

 yAxis: {
  min: 0,
  max: 666772,
  title: {
    text: 'Quarter 1'
  },
  endOnTick:false
}

这是工作样本http://plnkr.co/edit/Vbn1lpMIv8qvSfs65jL4

答案 2 :(得分:1)

我发现了另一种替代方法。如果您将tickPixelInterval: 400,替换为tickAmount: 2,,则它将仅显示最小值和最大值