从const

时间:2018-02-23 13:32:41

标签: javascript chart.js

我有图表,我根据变量的值更改颜色。为此,我使用datas.map

const colours = datas.map((value) => value < 0 ? 'red' : 'green'); //changing color based on variable
var chart = new Chart(ctx, {
     type: 'bar',
     data: {
        labels: label,
        datasets: [{
          label: ['positive', 'negative'], //legend to change
          borderColor: colours, 
          backgroundColor: colours,
          data: datas
        }]
     },

chart.js example

但是,无法添加绿色和红色的图例,只显示红色图例。是否有可能以某种方式添加两种颜色的图例,其中绿色的描述是正面的,红色的负面描述?

1 个答案:

答案 0 :(得分:0)

要实现您的目标,您需要分离数据集,即。一个用于负值,另一个用于正值。

var positiveData = datas.filter(function (value) { return value > 0; });
var negativeData = datas.filter(function (value) { return value < 0; });

var chart = new Chart(ctx, {
     type: 'bar',
     data: {
        labels: label,
        datasets: [{
          label: 'positive', //legend to change
          borderColor: 'green', 
          backgroundColor: 'green',
          data: positiveData 
        },
        {
          label: 'negative', //legend to change
          borderColor: 'red', 
          backgroundColor: 'red',
          data: negativeData 
        }]
     }
});