有没有办法在 xAxis 上只获得三个步骤,一个在开始,一个在中间,一个在结束。我玩过,xAxis.labels.steps
但我无法得到可靠的结果。
注意 xAxis 类型是datetime
.
有没有办法在 xAxis 上只获得三个步骤,一个在开始,一个在中间,一个在结束。我玩过,xAxis.labels.steps
但我无法得到可靠的结果。
注意 xAxis 类型是datetime
.
至少有三种方法可以实现(自动):
使用tickPositioner
(最好的恕我直言):您有权决定应在何处设置刻度(例如:)[min, average, max]
。
使用tickPixelInterval
:仅当您具有固定的图表宽度并且间隔将是 ncie 数字的倍数(如 0 - 1 - 2 或 100 - 200 - 300)时才有用
使用tickInterval
:仅当您知道 xAxis 的范围时才有用,例如 0-10,因此您可以设置tickInterval: 5
和 jsfFiddle 比较:http: //jsfiddle.net/FQ68Y/3/
您可以使用 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;
}
正如其他答案提到的那样,有这个tickPositioner
领域。由于某种原因,它不能开箱即用。我必须向返回数组添加一个 info 属性,以使 xAxis 显示格式化的日期,而不仅仅是毫秒,如在这个fiddle中找到的那样。
tickPositioner: function (min, max) {
var ticks = [min, min + (max - min) / 2, max];
ticks.info = {
unitName: 'hour',
higherRanks: {}
};
return ticks;
}