将高位图y轴最小值设置为0,除非存在负数据

时间:2013-05-07 10:47:13

标签: highcharts axis default-value minimum

我遇到了highcharts的问题,我在JSON调用中生成了许多不同的图表。

对于大多数这些图表,我需要将最小y轴值设置为0,但是有几种情况需要显示负值。如果数据中没有负值,我怎么能告诉highcharts最小y轴值为0,这是否可能?

由于

5 个答案:

答案 0 :(得分:9)

您可以添加到y轴:

 yAxis: {
            title: {
                text: 'Title of the y-axis'
            },
            min: 0 // this sets minimum values of y to 0
        },

答案 1 :(得分:7)

我通过使用setExtremes

创建一个函数来实现这一目标
var setMin = function () {
  var chart = this,
  ex = chart.yAxis[0].getExtremes();

  // Sets the min value for the chart 
  var minVal = 0;

  if (ex.dataMin < 0) {
    minVal = ex.dataMin;
  }

  //set the min and return the values
  chart.yAxis[0].setExtremes(minVal, null, true, false);
}

然后在你的图表中,你这样称呼它:

$('#container').highcharts({ 
  chart: {
    events: {
      load: setMin
    }
  },
});  

答案 2 :(得分:7)

您正在寻找的选项名为softMin,并在版本 5.0.1 中引入。文档描述如下:

  

轴的软最小值。如果系列数据最小值更大   比这个,轴将保持在这个最小值,但如果是系列数据   最小值越低,轴将弯曲以显示所有数据。

yAxis: {
    softMin: 0
}

http://api.highcharts.com/highcharts/yAxis.softMin

答案 3 :(得分:5)

您可以设置&#34; floor&#34;,这定义了min的最小可能值。添加负值时,它们将不可见! (http://api.highcharts.com/highcharts/xAxis.floor

yAxis: {
    floor: 0
}

我知道很久以前就已经问过这个问题了,当时这个属性并不存在。但我刚刚遇到这个问题,我认为其他人会很高兴不必搜索。

答案 4 :(得分:2)

您可以准备自己的功能,检查是否为负,然后设置适当的刻度。要实现这一点,您应该使用tickPositioner http://api.highcharts.com/highcharts#yAxis.tickPositioner