2016-11-30 2 views
2

У меня есть график (Highcharts) с процентом с течением времени. Вход для моей серии выглядит примерно так:Неверные значения в Highcharts (по сравнению с вводом)

series: [{ 
    name: "Percentage", 
    data: [ 
     [1472515200000, 49], 
     [1472601600000, 48.83], 
     [1472688000000, 49.6], 
     [1472774400000, 48.77] 
    ] 
}] 

Однако на фактическом графике (areaspline) я получаю различные значения:

  • 30 Авг, 48.91
  • 31 авг 49,36
  • 1 сентябрь, 49,6
  • 2 сентября, 48,87

Не энти полагаю, что это так, я предполагаю, что это потому, что график имеет тип даты и времени, и он вычисляет среднее значение с течением времени. Есть ли способ, который я могу сделать значения точными, поскольку они вводятся? Не удалось найти что-либо в документах

Спасибо за любые идеи/помощь/совет.


При дальнейших исследованиях кажется, что проблема не в Highcharts, а в реактиве. Кажется, я получаю разные значения для каждого рендеринга. Посмотрите на это дальше и обновите для любопытных.


Проблема, казалась, связанными с React повторного рендеринга и поэтому перерасчета моих процентных значений - не проблема Highcharts. Спасибо всем, кто прокомментировал, бит дикой гусиной погони.

+0

Вы можете создать jsfiddle для этого, так как серии выглядят довольно нормально. –

+0

Я пропустил вопрос, попытаюсь воссоздать проблему или вставить код, который вы используете. В демо здесь работает как и ожидалось. http://jsfiddle.net/82zph5no/ – morganfree

ответ

0

Jamie, чтобы значения ввода были взяты буквально, вам необходимо либо оставить значение вашей оси x type, либо изменить его на type: 'literal'.

Вот основная скрипка я создал с вашими данными, чтобы показать, как оно может быть истолковано именно в качестве входных данных (по сравнению с преобразованным к датам): http://jsfiddle.net/brightmatrix/vtLswcex/1/

$(function() { 
    Highcharts.setOptions({ 
    lang: { 
     thousandsSep: ','  // adds comma for axis labels 
    } 
    }); 
    Highcharts.chart('container', { 
    xAxis: { 
     labels: { 
     formatter: function() { 
      return Highcharts.numberFormat(this.value,0); 
     } 
     } 
    }, 
    series: [{ 
     name: "Percentage", 
     data: [ 
     [1472515200000, 49], 
     [1472601600000, 48.83], 
     [1472688000000, 49.6], 
     [1472774400000, 48.77] 
     ] 
    }] 
    }); 
}); 

Обратите внимание, что я добавил форматирование для x- оси, а также разделитель тысяч в функции Highcharts.setOptions(), так что ваши ярлыки будут более легко читаться как триллионы.

Помогло ли это ответить на ваш вопрос? Если вы ищете более удобный способ форматирования данных, зависящих от времени, комментарий @morganfree стоит посмотреть.

+0

Думаю, вы пропустили суть вопроса. Значения Y повреждаются. Насколько я могу судить, даты довольно хороши. –

+0

@VladimirM Я согласен с вами в том, что даты выглядят нормально, если это действительно то, на что нацеливает OP, но я основывал свой ответ на их утверждении «значения точные, поскольку они вводятся». Вот почему я предложил линейный подход. Мне любопытно узнать, что именно нужно здесь. –

+0

Майк - Я думаю, что точка @ VladimirM состоит в том, что значениями являются значения 'y', а не значения' x'. Если вы посмотрите на вопрос, сравните значения 'y' в данных с значениями' y' в указанном выходе. – jlbriggs

 Смежные вопросы

  • Нет связанных вопросов^_^