26

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

对于这些图表中的大多数,我需要将最小 y 轴值设置为 0,但是在某些情况下需要显示负值。只有在数据中没有负值的情况下,我才能告诉 highcharts 的最小 y 轴值为 0,这甚至可能吗?

谢谢

4

5 回答 5

11

您正在寻找的选项被调用softMin并在5.0.1版本中引入。文档将其描述如下:

轴的软最小值。如果系列数据最小值大于此值,则轴将保持在此最小值,但如果系列数据最小值较低,则轴将弯曲以显示所有数据。

yAxis: {
    softMin: 0
}

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

于 2016-12-12T17:04:01.890 回答
8

您可以添加到您的 y 轴:

 yAxis: {
            title: {
                text: 'Title of the y-axis'
            },
            min: 0 // this sets minimum values of y to 0
        },
于 2014-01-06T13:24:13.190 回答
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
    }
  },
});  
于 2015-05-27T10:32:37.753 回答
5

您可以设置“地板”,这定义了最小值的最小可能值。添加负值时,它们将不可见!(http://api.highcharts.com/highcharts/yAxis.floor

yAxis: {
    floor: 0
}

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

于 2016-10-22T02:15:09.910 回答
2

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

于 2013-05-07T12:20:54.703 回答