如何为饼图设置动态颜色-图表JS

时间:2018-08-30 14:02:54

标签: javascript angular colors chart.js

我有一个这样的饼图:

this.canvas = document.getElementById('chart');
    this.ctx = this.canvas.getContext('2d');
    const myChart = new Chart(this.ctx, {
      type: 'pie',
      data: {
        labels: names,
        datasets: [{
          label: '# of dogs',
          data: data,
          backgroundColor: color???,
          borderWidth: 1
        }]
      },
      options: {
        responsive: false,
        display: true
      }
    });

数据不是固定数据。它是一个数组,可以包含不同的数据。如何使每个饼图具有不同的颜色?

谢谢!

2 个答案:

答案 0 :(得分:0)

生成随机颜色

 function getRandomColor() {
        var letters = '0123456789ABCDEF'.split('');
        var color = '#';
        for (var i = 0; i < 6; i++ ) {
            color += letters[Math.floor(Math.random() * 16)];
        }
        return color;
    }

this.canvas = document.getElementById('chart');
    this.ctx = this.canvas.getContext('2d');
    const myChart = new Chart(this.ctx, {
      type: 'pie',
      data: {
        labels: names,
        datasets: [{
          label: '# of dogs',
          data: data,
          backgroundColor: getRandomColor(),
          borderWidth: 1
        }]
      },
      options: {
        responsive: false,
        display: true
      }
    });

答案 1 :(得分:0)

这是我的建议: 步骤1

colors=[];

第2步

for(let i=0;i<this.data.length;i++){
      this.colors.push('#'+Math.floor(Math.random()*16777215).toString(16));
}

第3步

data: data,
backgroundColor: this.colors
.....