Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript chart.js条形图根据值更改颜色_Javascript_Chart.js - Fatal编程技术网

Javascript chart.js条形图根据值更改颜色

Javascript chart.js条形图根据值更改颜色,javascript,chart.js,Javascript,Chart.js,嘿,伙计们。我在这个论坛上找到了这个代码。但我不知道如何改变它来显示最大的三个值 如何更改此代码以不同颜色显示最大的三个值?给定一个名为“数据”的number值的数组,您可以从中创建一个排序数组。然后输入原始数据的值,根据其在排序的数组中的位置返回适当的颜色 function argMax(array) { return array.map((x, i) => [x, i]).reduce((r, a) => (a[0] > r[0] ? a : r))[1]; } //

嘿,伙计们。我在这个论坛上找到了这个代码。但我不知道如何改变它来显示最大的三个值


如何更改此代码以不同颜色显示最大的三个值?

给定一个名为“数据”的
number
值的
数组,您可以从中创建一个排序数组。然后输入原始数据的值,根据其在排序的
数组中的位置返回适当的颜色

function argMax(array) {
  return array.map((x, i) => [x, i]).reduce((r, a) => (a[0] > r[0] ? a : r))[1];
}

// dummy data
var data = [12, 19, 1, 14, 3, 10, 9];
var labels = data.map((x, i) => i.toString()); 

// other data color
var color = data.map(x => 'rgba(75,192,192,0.4)');

// change max color
color[argMax(data)] = 'red';

var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
        type: 'bar',
        data: {
            labels: labels,
            datasets: [{
                    label: 'value',
                    data: data,
                    backgroundColor: color,
            }]
        }
});
请看下面的可运行代码示例

const labels=['A','B','C','D','E','F','G','H','I','K','L','M','N','O'];
const data=labels.map(l=>Math.floor(Math.random()*1000)+1);
const sortedData=data.slice().sort((a,b)=>a-b);
const backgroundColors=data.map(v=>sortedData.indexOf(v)>=data.length-3?'red':'green');
新图表(document.getElementById('myChart'){
类型:'bar',
数据:{
标签:标签,
数据集:[{
标签:“我的数据集”,
数据:数据,
背景颜色:背景颜色
}]
},
选项:{
图例:{
显示:假
},
比例:{
雅克斯:[{
滴答声:{
贝吉纳泽罗:是的
}
}]
}
}
});

const backgroundColors = data.map(v => sortedData.indexOf(v) >= data.length - 3 ? 'red' : 'green');