2

有没有办法在 xAxis 上只获得三个步骤,一个在开始,一个在中间,一个在结束。我玩过,xAxis.labels.steps但我无法得到可靠的结果。

注意 xAxis 类型是datetime.

4

3 回答 3

2

至少有三种方法可以实现(自动):

  1. 使用tickPositioner(最好的恕我直言):您有权决定应在何处设置刻度(例如:)[min, average, max]

  2. 使用tickPixelInterval:仅当您具有固定的图表宽度并且间隔将是 ncie 数字的倍数(如 0 - 1 - 2 或 100 - 200 - 300)时才有用

  3. 使用tickInterval:仅当您知道 xAxis 的范围时才有用,例如 0-10,因此您可以设置tickInterval: 5

和 jsfFiddle 比较:http: //jsfiddle.net/FQ68Y/3/

于 2013-11-06T10:50:41.453 回答
1

您可以使用 tickPositions 选项或 tickPositioner 函数执行此操作:

http://api.highcharts.com/highcharts#xAxis.tickPositioner

tickPositions: [0, 1, 2]

或类似的东西:

 tickPositioner: function () {
            var positions = [],
                tick = Math.floor(this.dataMin),
                increment = Math.ceil((this.dataMax - this.dataMin) / 2);

            for (; tick - increment <= this.dataMax; tick += increment) {
                positions.push(tick);
            }
            return positions;
        }
于 2013-11-06T10:49:53.350 回答
1

正如其他答案提到的那样,有这个tickPositioner领域。由于某种原因,它不能开箱即用。我必须向返回数组添加一个 info 属性,以使 xAxis 显示格式化的日期,而不仅仅是毫秒,如在这个fiddle中找到的那样。

tickPositioner: function (min, max) {
  var ticks = [min, min + (max - min) / 2, max];
  ticks.info = {
    unitName: 'hour',
    higherRanks: {}
  };
  return ticks;
}
于 2013-11-06T13:04:42.890 回答