简体   繁体   English

如何更改图表js中列的颜色

[英]How to change color of column in chart js

Link codepen: https://codepen.io/01202581905/pen/gOOYzOZ链接codepen: https://codepen.io/01202581905/pen/gOOYzOZ

 var ctx = document.getElementById('myChart').getContext('2d'); var chart = new Chart(ctx, { // The type of chart we want to create type: 'bar', // The data for our dataset data: { labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'], datasets: [{ label: 'My First dataset', backgroundColor: 'rgb(255, 99, 132)', borderColor: 'rgb(255, 99, 132)', data: [0, -10, 35, 2, -19, 30, 15] }] }, // Configuration options go here options: {} });
 <canvas id="myChart"></canvas> <script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>

I want to change color of column when value of column as 0 and change position of col.我想在列的值为 0 时更改列的颜色并更改 col 的 position。 Thank you谢谢

Result I want:我想要的结果: 在此处输入图像描述

I hope I've solve tour problem:我希望我已经解决了旅游问题:

function updateChart(chart){
    let val = 2;
    let updatedValues = [];
    chart.data.datasets[0].data.forEach((e,i)=>{
    if(e===0){
      updatedValues.push('green');
      chart.data.datasets[0].data[i] = val;
      chart.data.datasets.push({data:
        Array.from({length:chart.data.datasets[0].data.length},function(el,j){
            if(i===j) return -val
        })})
    } else {
        updatedValues.push(chart.data.datasets[0].backgroundColor)
    }

  })
  chart.data.datasets.forEach(e=>{
    e.backgroundColor = updatedValues;
  })

  chart.update()
}

And fiddle to testing: https://jsfiddle.net/7Lbjmw6r/并进行测试: https://jsfiddle.net/7Lbjmw6r/

Hi you have to give a array in the backgroundColor-Parameter with in the dataset: see here:嗨,您必须在数据集中的 backgroundColor-Parameter 中提供一个数组:请参见此处:

var labels = ["001", "002", "003", "004", "005", "006", "007"];
var data = [20, 59, 80, 81, 56, 55, 40];
for (var i = 0, len = labels.length; i < len; i++) {
   **background_colors**.push(getRandomColor());
}

var barChartData = {
  labels: labels,
  datasets: [{
    label: "My First dataset",
    fillColor: "rgba(220,220,220,0.5)", 
    strokeColor: "rgba(220,220,220,0.8)", 
    highlightFill: "rgba(220,220,220,0.75)",
    highlightStroke: "rgba(220,220,220,1)",
    backgroundColor: **background_colors**,
    data: data
  }]
};

This should work!这应该工作!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM