Javascript Chart.js重复颜色?

Javascript Chart.js重复颜色?,javascript,chart.js,chartjs-2.6.0,Javascript,Chart.js,Chartjs 2.6.0,我使用的是Chart.js,它是通过MySQL数据库中的数据传播的,而MySQL数据库将不断增长。这是我的密码: function getPromoChartData() { var city = document.getElementById("cityselect").value; $.ajax({ type: 'GET', url: 'getpromochart.php', dataType: 'json', data

我使用的是Chart.js,它是通过MySQL数据库中的数据传播的,而MySQL数据库将不断增长。这是我的密码:

function getPromoChartData() {
    var city = document.getElementById("cityselect").value;
$.ajax({
        type: 'GET',
        url: 'getpromochart.php',
        dataType: 'json',
        data: {  city:city, },
        success: function(response) {
          //console.log (response);

          function collate(d) {
            return d.reduce(function(prev, cur, index) {
                var ret = {};
                for (var prop in cur) {
                    if (index === 0) {
                        ret[prop] = [];
                    } else {
                        ret[prop] = prev[prop];
                    }
                    ret[prop].push(cur[prop]);
                }
                return ret;
            }, {});
        }

          var reduced = collate(response);

var ctx = document.getElementById('promoChart').getContext('2d');
var chartColors = window.chartColors;
var color = Chart.helpers.color;
var promoChart = new Chart(ctx, {
    type: 'polarArea',
    data: {
        labels: reduced.codes,
        datasets: [{
            label: 'Promo Codes',
            data: reduced.count,
            backgroundColor: [
            color(chartColors.red).alpha(0.5).rgbString(),
            color(chartColors.orange).alpha(0.5).rgbString(),
            color(chartColors.yellow).alpha(0.5).rgbString(),
            color(chartColors.green).alpha(0.5).rgbString(),
            color(chartColors.blue).alpha(0.5).rgbString(),
          ],

        }]
    },
    options: {
        responsive: true,
    }
});
promoChart.update();
$('#promocharttitle').html("Promo Data ("+cityfancy+")");

        }
    });
}

按照我现在的方式,在前5个实体填满后,剩下的部分将是灰色的,这太糟糕了。我只想重复那个配色方案。如何实现这一点?

首先,您可以定义一个
颜色的
数组。一旦知道
数据的大小
,就可以按如下方式确定背景颜色:

var colors = ['red', 'orange', 'yellow', 'green', 'blue']; 
...
var bgColors = [];
for (var i = 0; i < data.length; i++) {
  bgColors.push(colors[i % colors.length]);  
}
var colors=[‘红色’、‘橙色’、‘黄色’、‘绿色’、‘蓝色’];
...
var bgColors=[];
对于(变量i=0;i
这是一个简化的示例:


极区图
帆布{
-moz用户选择:无;
-webkit用户选择:无;
-ms用户选择:无;
}
var colors=[“红色”、“橙色”、“黄色”、“绿色”、“蓝色”];
var数据=[4,5,4,2,8,7,6,8,5,4,1,3,7];
window.onload=函数(){
var bgColors=[];
对于(变量i=0;i