Charts.js:使用对象绘制图形

时间:2020-06-24 07:06:21

标签: javascript d3.js chart.js

我有一个带有10个键(美国各州的名称)和附加值的对象。我想知道如何在Chart.js中使键成为标签并为数据赋值,但是我似乎找不到任何东西。

var myChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: KEYS IN OBJECT GOES HERE,
        datasets: [{
            label: '# of Votes',
            data: VALUE OF KEYS GO HERE,
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255, 99, 132, 1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }]
    },
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero: true
                }
            }]
        }
    }
});

下面是我的对象

var stateGraphOne = {
  "Oklahoma": 229,
  "Oregon": 107,
  "Pennsylvania": 165,
  "South Carolina": 15,
  "South Dakota": 96,
  "Tennessee": 460,
  "Texas": 2682,
  "Utah": 372,
  "Vermont": 13,
  "Virginia": 33
};

我将有多个图形,并且有多个对象可以执行相同的操作。如果使用d3.js会更容易,我也可以使用它。预先感谢。

1 个答案:

答案 0 :(得分:1)

您可以像这样获取对象键和值:

labels: Object.keys(stateGraphOne),
datasets: [{
    label: '# of Votes',
    data: Object.values(stateGraphOne),
...

快速搜索,然后...另一个answer