Как правильно передавать данные в ChartJS с разным количеством точек x (метки) и y (данные)

У меня есть набор данных с данными, подобными этому

var data =[10,30,20,50,80,60,120,40,20,90,30,10];
var labels = [moment("12:00:00", 'HH:mm:ss'),moment("12:00:01", 'HH:mm:ss'),moment("12:00:02", 'HH:mm:ss'),moment("12:00:03", 'HH:mm:ss')]; 

Я передал данные в chartJS следующим образом

var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
   type: 'line',
   data: {
      labels: labels,
      datasets: [{
         label: 'Voltage Fluctuation',
         data: [10,20,30,40,50],
         borderWidth: 1
      }]
   },
   options: {
      scales: {
         xAxes: [{
            type: 'time',
            time: {
               unit: 'minute',
               displayFormats: {
                  hour: 'HH:mm:ss'
               }
            }
         }]
      },
   }
});

Однако я получаю данные только для первых четырех точек, то есть для каждой метки.

Вот JSFiddle

Я хочу, чтобы данные распределялись по всем меткам, в данном случае по одной точке данных каждые (4/12) секунд, и соответствующим образом корректировать график.

Есть ли способ добиться этого без жесткого кодирования путем преобразования меток в формат миллисекунд?


person Saikiran    schedule 23.10.2017    source источник
comment
Поэтому каждой точке нужна метка. Вы получаете всего четыре балла, потому что скармливаете только четыре этикетки. Вы должны пересчитать свои значения для своих нужд, чтобы количество точек было равно количеству меток.   -  person Michael P    schedule 30.10.2017
comment
Да, я скорректировал продолжительность времени, чтобы соответствовать размеру данных на данный момент. Хотелось бы узнать альтернативу, если она существует.   -  person Saikiran    schedule 30.10.2017


Ответы (1)


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

person Saikiran    schedule 11.11.2017