chart.js条形图颜色基于值的变化 [英] chart.js bar chart color change based on value
问题描述
我有一个显示数据库数据的条形图,我需要能够为不同的数值显示不同的颜色。例如,'loc_health'返回1到10之间的值,所以我需要显示1为红色,2为橙色,3为黄色,4为绿色等...
I have a bar chart that is showing data from a database and I need to be able to show a different color for different numeric values. For example the 'loc_health' returns values between 1 and 10 based, so I need to show 1 as red, 2 as orange, 3 as yellow, 4 as green etc...
我搜索过chart.js文档,但找不到解决方法。
I have searched the chart.js documentation but cannot find a solution for this.
var context = document.getElementById('healthRatings').getContext('2d');
window.myObjBar = new Chart(context).Bar({
labels : loc_id_grab,
datasets : [{
fillColor : ["rgba(220,220,220,0.5)"],
strokeColor : "rgba(151,187,205,1)",
pointColor : "rgba(151,187,205,1)",
pointStrokeColor : "#fff",
data : loc_health
}]
}, {
scaleOverride : true,
scaleSteps : 10,
scaleStepWidth : 1,
scaleStartValue : 0,
barShowStroke : false,
barStrokeWidth : 1,
showTooltips : false,
barValueSpacing : 2,
animation : false,
responsive : true,
maintainAspectRatio : true
});
推荐答案
您可以通过访问<$ c为每个条形图着色$ c> window.myObjBar.datasets [0] .bars [0] .fillColor property,然后更新图表
You can color each individual bar by accessing window.myObjBar.datasets[0].bars[0].fillColor
property, then update the chart
在你的情况下,你可以循环遍历你的元素并相应地为每个栏着色
In your case, you can loop through your elements and color each bar accordingly
var bars = myObjBar.datasets[0].bars;
for(i=0;i<bars.length;i++){
var color="green";
//You can check for bars[i].value and put your conditions here
bars[i].fillColor = color;
}
myObjBar.update(); //update the chart
工作 JsFiddle
这篇关于chart.js条形图颜色基于值的变化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!