微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试在Chart.js中使用散点图之前尝试创建数据时,背景色不起作用

如何解决尝试在Chart.js中使用散点图之前尝试创建数据时,背景色不起作用

我正在创建我的数据集,如下所示:

/* Create and add data from excel file to our datasets */
      var marksData = {
        labels: marqueurs,datasets: []
      };

      var colors = ['#ef335a','#ec83aa','#9eae3c','#a75a94','#d9acce','#2a345e'];
      var domaines = [' GROUP1','GROUP2','GROUP3','GROUP4','GROUP5'];
      
      for (i = 0; i < 6; i++){
        marksData.datasets[i] = [];
        marksData.datasets[i].label = domaines[i];
        marksData.datasets[i].data = [{}];
        marksData.datasets[i].backgroundColor = colors[i];
      }
      
      for (i = 0; i < json1.length; i++) {
        var indexDomaine = domaines.indexOf(json1[i].Domaine);
        var res = parseInt(json1[i].Resilience * 100);
        var freq = parseInt(json1[i].Frequence * 100);
        var lengthData = marksData.datasets[indexDomaine].data.length;
        marksData.datasets[indexDomaine].data[lengthData] = {};
        marksData.datasets[indexDomaine].data[lengthData].x = res;
        marksData.datasets[indexDomaine].data[lengthData].y = freq;
        marksData.datasets[indexDomaine].poinTradius = 10;
        marksData.datasets[indexDomaine].pointHoverRadius = 15;
        marksData.datasets[indexDomaine].showLine = "false";
        marksData.datasets[indexDomaine].fill = "true";
        
      }

然后我将散点图显示如下:

 var scatterChart = new Chart(ctx,{
        type: 'scatter',data: marksData,options: {
                responsive: true,scales: {
                  xAxes: [
                    {
                      type: 'linear',ticks: {
                        min: 50,max: 100,}
                    }
                  ],yAxes: [
                    {
                      type: 'linear',ticks: {
                        min: 0,}
                    }
                  ]
                },legend: {
                    display:true,position:'bottom',},title: {
                        display: true,text: 'My title'
                },tooltips: {
                     callbacks: {
                        label: function(tooltipItem,data) {
                           var label = data.labels[tooltipItem.datasetIndex];
                           return label;
                        }
                     }
                  }
        }
      });

但是,我在图表中的点和组标签(Group1,Group2 ..)不是彩色的。 虽然我在控制台中签到并在里面有backgroundColor ... 我该如何解决这个问题? 谢谢你的帮助 苏菲

解决方法

我创建了一个jsfiddle来重现您想做的事情。我可以看到,对您的代码进行了少量更改后,颜色呈现的很好: 我必须设置marksData.datasets[i] = {}而不是marksData.datasets[i] = []

for (i = 0; i < 6; i++){
     marksData.datasets[i] = {};
     marksData.datasets[i].label = domaines[i];
     marksData.datasets[i].data = [{}];
     marksData.datasets[i].backgroundColor = colors[i];
}

编辑:问题是您将数据集设置为数组,而它本来应该是一个对象。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。