如何使用不同数量的x(标签)和y(数据)点正确地向ChartJS提供数据

时间:2017-10-23 21:01:42

标签: javascript chart.js momentjs data-visualization

我有一个数据集,其数据类似于此

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)秒一个数据点并相应地调整图表。

有没有可能的方法,我可以通过将标签转换为毫秒格式来硬编码?

1 个答案:

答案 0 :(得分:1)

我继续将整个事情硬编码,将秒缩短为毫秒,以便创建相等长度的数组