在Highcharts中xAxis上只有3个步骤,类型为xAxis

时间:2013-11-06 10:25:42

标签: highcharts

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

请注意,xAxis类型为datetime

3 个答案:

答案 0 :(得分:2)

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

  1. 使用tickPositioner(最好的恕我直言):您有完全的权限来决定应该设置哪个刻度线(例如:[min, average, max])。

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

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

  4. jsfFiddle with compare:http://jsfiddle.net/FQ68Y/3/

答案 1 :(得分: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;
        }

答案 2 :(得分:1)

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

tickPositioner: function (min, max) {
  var ticks = [min, min + (max - min) / 2, max];
  ticks.info = {
    unitName: 'hour',
    higherRanks: {}
  };
  return ticks;
}