Tengo los datos de este conjunto de datos estáticos que van desde 2015 hasta 2016 y quiero mapear todo en lugar de agregar las barras manualmente.
final_water_supply Representación de imagen de datos
var ctx = document.getElementById('mc').getContext('2d'); chartRef1 = new Chart(ctx, { type: 'bar', data: { labels: sortedData, datasets: [{ label: '2015', stack: 'Stack 1', data: final_water_supply[0], backgroundColor: '#D0D1E6', borderColor: '#D0D1E6', }, { label: '2016', stack: 'Stack 2', data: final_water_supply[1], backgroundColor: '#74A9CF', borderColor: '#74A9CF', }, { label: '2017', stack: 'Stack 3', data: final_water_supply[2], backgroundColor: '#0570B0', borderColor: '#0570B0', }, { label: '2018', stack: 'Stack 4', data: final_water_supply[3], backgroundColor: '#023858', borderColor: '#023858', } ] },Así es como terminé haciéndolo.
creó una estructura de objeto vacía que toma los conjuntos de datos
let color = '#d6d6d6' let data = { labels:sortedData, datasets:[] } creó una función forEach que recorre los años e inserta datos en los conjuntos de datos
years.forEach(function(a,i) { switch(i) { case 0: color='#D0D1E6' break; case 1: color='#74A9CF' break; case 2: color='#0570B0' break; case 3: color='#023858' break; default: color='#d6d6d6' } data.datasets.push({ label: a, stack: 'Stack '+i, data: final_water_supply[i], backgroundColor: color, borderColor: color, }) })