dakben
dakben

Reputation: 59

Charts.js: Using an object to graph

I have an object that has a 10 keys (names of US states) and a value attached. I want to know how to make the key the label and the value the data in Chart.js but I can't seem to find anything on this.

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
                }
            }]
        }
    }
});

below is my object

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

I'm going to have multiple graphs and I have multiple objects to do the same thing with. If this would be easier using d3.js I am open to using that too. Thanks in advance.

Upvotes: 1

Views: 683

Answers (1)

Martin M.
Martin M.

Reputation: 451

You can get the object keys and values like so:

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

A quick search and... another answer

Upvotes: 1

Related Questions