热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Chartjs饼图的每个部分的随机颜色,数据动态数据

如何解决《Chartjs饼图的每个部分的随机颜色,数据动态数据》经验,为你挑选了1个好方法。

我想动态设置饼图的每个部分的颜色.由于图表是从数据库动态创建的,我希望每个添加到图表(从数据库)的部分都有不同的颜色.

我试图这样做:

$(document).ready(function() {
$.ajax({
url: "http://localhost/chartjs/projects_chart.php",
method: "GET",
success: function(data) {
    console.log(data);
    var ict_unit = [];
    var efficiency = [];
    var dynamicColors = function() {
        var r = Math.floor(Math.random() * 255);
        var g = Math.floor(Math.random() * 255);
        var b = Math.floor(Math.random() * 255);
        return "rgb(" + r + "," + g + "," + b + ")";
    };

    for (var i in data) {
        ict_unit.push("ICT Unit " + data[i].ict_unit);
        efficiency.push(data[i].efficiency);
         var coloR=dynamicColors();
    }
    var chartData = {

        labels: ict_unit,
        datasets: [{
            label: 'Efficiency ',
            //strokeColor:backGround,

            backgroundColor: [coloR],

            borderColor: 'rgba(200, 200, 200, 0.75)',
            //hoverBackgroundColor: 'rgba(200, 200, 200, 1)',
            hoverBorderColor: 'rgba(200, 200, 200, 1)',
            data: efficiency
        }]
    };

    var ctx = $("#my-canvas");
    var barGraph = new Chart(ctx, {
        type: 'pie',
        data: chartData
    })
},
error: function(data) {

    console.log(data);
   },
  });
 });

但我只得到饼图第一部分的一种颜色.

你可以帮帮我吗?



1> ɢʀᴜɴᴛ..:

您应该为颜色创建一个单独的数组(就像ict_unit和它一样efficiency),而不是每次为coloR变量指定一个随机颜色值.

以下是您的代码的修订版本:

$(document).ready(function() {
   $.ajax({
      url: "https://jsonblob.com/api/jsonBlob/a7176bce-84e0-11e7-8b99-016f34757045",
      method: "GET",
      success: function(data) {
         console.log(data);
         var ict_unit = [];
         var efficiency = [];
         var coloR = [];

         var dynamicColors = function() {
            var r = Math.floor(Math.random() * 255);
            var g = Math.floor(Math.random() * 255);
            var b = Math.floor(Math.random() * 255);
            return "rgb(" + r + "," + g + "," + b + ")";
         };

         for (var i in data) {
            ict_unit.push("ICT Unit " + data[i].ict_unit);
            efficiency.push(data[i].efficiency);
            coloR.push(dynamicColors());
         }
         var chartData = {

            labels: ict_unit,
            datasets: [{
               label: 'Efficiency ',
               //strokeColor:backGround,

               backgroundColor: coloR,

               borderColor: 'rgba(200, 200, 200, 0.75)',
               //hoverBackgroundColor: 'rgba(200, 200, 200, 1)',
               hoverBorderColor: 'rgba(200, 200, 200, 1)',
               data: efficiency
            }]
         };

         var ctx = $("#my-canvas");
         var barGraph = new Chart(ctx, {
            type: 'pie',
            data: chartData
         })
      },
      error: function(data) {

         console.log(data);
      },
   });
});



推荐阅读
author-avatar
品味a江湖_232_466
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有