有没有办法只在xAxis上获得三个步骤,一个在开始,一个在中间,一个在最后。我和xAxis.labels.steps
一起玩过,但我得不到可靠的结果。
请注意,xAxis类型为datetime
。
答案 0 :(得分:2)
至少有三种方法可以实现(自动):
使用tickPositioner
(最好的恕我直言):您有完全的权限来决定应该设置哪个刻度线(例如:[min, average, max]
)。
使用tickPixelInterval
:仅当您具有固定的图表宽度时才有用,并且间隔将是ncie数字的倍数(例如0 - 1 - 2或100 - 200 - 300)
使用tickInterval
:仅在您知道xAxis范围时才有用,例如0-10,因此您可以设置tickInterval: 5
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;
}