Мы работаем над созданием биржевой диаграммы, показывающей несколько пунктов, даже считающихся и их относительный процент с течением времени. Данные проводятся ежемесячно, и у нас есть селектор диапазона, настроенный на 6 месяцев, 9 месяцев, 1 год и все данные. При начальной загрузке мы выбираем 6-месячный диапазон. Мы замечаем некоторые странные эффекты. Ниже приведен пример jsFiddle, представляющий вопросы: http://jsfiddle.net/wergeld/wq7eavq4/HighStock Начало Месяц rangeSelector И series.compare Не работает с начальной загрузкой
Код rangeSelector:
rangeSelector: {
inputEnabled: false,
allButtonsEnabled: false,
buttons: [{
type: 'month',
count: 6,
text: '6 Months'
}, {
type: 'month',
count: 9,
text: '9 Months'
}, {
type: 'year',
count: 1,
text: 'Year'
}, {
type: 'all',
text: 'All'
}],
buttonTheme: {
width: 60
},
selected: 0
},
1) На начальной нагрузке 0% «старт» происходит в точках данных октября 2014 года и относительно одного изменения цента рассчитывается с этой точки. Тем не менее, первый пункт, показанный на графике, на самом деле - сентябрь 2014 года. Это имеет некоторое процентное изменение от (я предполагаю) октябрь 2014 года.
2) Когда мы меняем выделение на селектор диапазона 9 месяцев, мы видим, что первая точка на июнь 2014 года - это 0%. Затем, если мы вернемся к значению селектора диапазона за 6 месяцев, вы увидите, что теперь у нас есть сентябрь 2014 года, так как 0% и процентные различия для более поздних времен все разные, чем при начальной загрузке.
Мои вопросы:
a. Почему есть 7 месяцев, когда я устанавливаю счет для этого rangeSelector
до 6 и почему есть 10 месяцев, которые показываются, когда я установил его для 9 месяцев для другого селектора диапазона? По существу для данного rangeSelector.count
я получаю 1 больше, чем ожидаю.
b. Почему значение 0% отличается от начальной загрузки, чем когда я выхожу из этого диапазона и обратно в этот диапазон?
** a) ** Я тоже был смущен в начале, но это шесть полных месяцев. Начиная с 1 сентября, добавьте шесть месяцев и вернитесь 1 марта. Пример кода: last point = 'new Date (Date.UTC (2015, 2))' -> 1 марта, первая точка = 'новая дата (Date.UTC (2015, 2-6))' -> 1 сентября . ** b) ** Я почти уверен, что была ошибка, связанная с различной шкалой по осям между начальной загрузкой и более поздней управляющей диаграммой. Позвольте мне найти его и вернуться к вам. –
Я могу иметь дело с a) 6 месяцев назад, включая последний месяц, так что 7 месяцев. Но, б) быть нехорошим вообще, когда сравнение точек происходит на 6-м месяце, а не на 7 ... затем переходит к месяцу 7 при последующем нажатии. Если я выбираю однолетний диапазон при загрузке init, это правильно. Это (для меня) только селектор месяца, который всегда неверен. – wergeld
На самом деле это зависит от данных - в некоторых случаях это месяцы, иногда это годы. Связанные билеты: [a) # 966] (https://github.com/highslide-software/highcharts.com/issues/966) и [b) # 4147] (https://github.com/highslide-software/ highcharts.com/issues/4147). Что касается ** b) **, сообщается со столбцом, но на самом деле это одно и то же: http://jsfiddle.net/wq7eavq4/2/ –