Я просмотрел исходный код highstock и нашел этот фрагмент кода.
function normalizeTimeTickInterval(tickInterval, unitsOption) {
var units = unitsOption || [[
MILLISECOND, // unit name
[1, 2, 5, 10, 20, 25, 50, 100, 200, 500] // allowed multiples
...
}
Что это за код? В нем говорится, что если единицы вашего времени - миллисекунды, то нормализуйте tickInterval (40 в вашем случае) до кратного одному из них, следовательно, он нормализует 40 до 50 и 30 до 25. Я не вижу, может ли это быть переопределяется из вариантов. Однако у вас есть возможность изменить код, если это приемлемо для вас и не нарушает никаких законов об авторском праве.
EDIT: найден хак, чтобы заставить это работать без изменения скрипта проверки исходного кода @ http://jsfiddle.net/jugal/H83bs/
Вот что я сделал. Небольшая отладка/анализ исходного кода дала подсказку, что highchart сначала пытается найти единицу измерения в свойстве единиц параметров оси, если не находит, использует единицу по умолчанию. Итак, я пошел дальше и настроил свойство unit, чтобы установить его следующим образом. Вам нужно будет сделать это перед вызовом конструктора highcharts.
Highcharts.Axis.prototype.defaultOptions.units=[[
'millisecond',
[1, 2, 5, 10, 20, 25,30,40, 50, 100, 200, 500]
], [
'second',
[1, 2, 5, 10, 15, 30]
], [
'minute',
[1, 2, 5, 10, 15, 30]
], [
'hour',
[1, 2, 3, 4, 6, 8, 12]
], [
'day',
[1]
], [
'week',
[1]
], [
'month',
[1, 3, 6]
], [
'year',
null
]];
person
Jugal Thakkar
schedule
06.08.2012