【问题标题】:Charting with chartjs, can't get it working correctly使用 chartjs 绘制图表,无法正常工作
【发布时间】:2021-01-31 21:58:35
【问题描述】:

我正在使用 chart.js@2.9.4/dist/Chart.min.js。

我有一个对象数组 (data),如下所示:

(4) […]
​
0: Object { Num: "5", "Label1": "6,342", "Label2": "3,051", … }
​
1: Object { Num: "6", "Label3": "6,247", "Label4": "3,042", … }

这个数组有 9 个对象。我有另一个数组 (xLabels),其中包含 9 个 Y 轴条目。

任何帮助将不胜感激!

这是我的代码现在的样子:

    for(i=1 ; i < Object.keys(data[0].length; i++) {
       datasets.push( {
            str = Object.entries(data[1])[i][1]
            label: Object.entries(data[1])[i][0],
            data: parseFloat(str.replace(/,/g, '.'))
        })
     }

new Chart(ctx, {
      type: 'line',

    datasets: [
      {
        labels: tLabels,
        data: datasets,
      }],
}

【问题讨论】:

    标签: javascript chart.js data-visualization chartjs-2.6.0


    【解决方案1】:

    用这个替换你的 for 循环:

    data.forEach((dataObject) => {
        const data = Object.values(dataObject)
        const label = data.shift()
        data.map((entry) => (parseFloat(entry.toString().replace(/,/g, '.'))))
        datasets.push({
            label,
            data
        })
    });
    

    还有你的新图表:

    new Chart(ctx, {
      type: 'line',
      data: {
        labels: xLabels,
        datasets
      }
    })
    

    控制台中发生的事情的示例:

    【讨论】:

    • 谢谢,但标签正在显示,但折线图/数据未显示。我的数据集看起来像你的,除了我的数据数组有 9 个条目而不是 2 个。0: {…} ​​ _meta: Object { 0: {…} } ​​ data: Array(9) [ "6,342", "3,051", "10,144", … ] ​​ label: "55"。您的图表是否正确呈现?再次感谢
    • 您能否分享您的所有代码,因为它似乎对我有用 (jsfiddle.net/Leelenaleee/zdbea24j/3)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    相关资源
    最近更新 更多