【问题标题】:How to properly feed data to ChartJS with different number of x(labels) and y(data) points如何使用不同数量的 x(标签)和 y(数据)点正确地将数据提供给 ChartJS
【发布时间】:2017-10-23 21:01:41
【问题描述】:

我有一个数据集,其中包含类似这样的数据

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

有没有什么可能的方法可以通过将标签转换为毫秒格式来实现,而无需对其进行硬编码?

【问题讨论】:

  • 所以每个点都需要一个标签。你只得到四分,因为你只喂了四个标签。您必须根据需要重新计算值,以便点数等于标签数。
  • 是的,我调整了时间长度以满足现在的数据大小。想知道是否存在替代方案。

标签: javascript chart.js momentjs data-visualization


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 2010-10-05
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多