【发布时间】:2017-06-16 15:33:27
【问题描述】:
使用 chart.js 2.6 有没有办法动态更改图表中高于零和低于零的值的条形?图形系列数据是通过调用方法生成的。现在它只是一个随机数生成器,但将是一个数据库调用。
function changeWOWData(chart) {
var datasets = chart.data.datasets;
var labelLen = chart.data.labels.length;
if (datasets[0]) {
for (i = 0, len = datasets.length; i < len; i++) {
try {
for (j = 0, len = labelLen; j < len; j++) {
datasets[i].data[j] = getRandomInt(-100, 100);
}
} catch (e) {
console.log(e.message);
}
}
}
}
图表如下所示:
我希望零以上的图表条为蓝色,零以下的条为红色。
感谢任何/所有回复。提前致谢!
格里夫
** 编辑 ** 添加以下答案中的代码:
var myBarChart = new Chart(wowChart, {
type: 'bar',
data: wowData,
plugins: [{
beforeDraw: function (c) {
var data = c.data.datasets[0].data;
for (var i in data) {
try {
var bar = c.data.datasets[0]._meta[0].data[i]._model;
if (data[i] > 0) {
bar.backgroundColor = '#07C';
} else bar.backgroundColor = '#E82020';
} catch (ex) {
console.log(ex.message);
}
console.log(data[i]);
}
}
}],
options: wowOptions
});
控制台的每一行我都会看到数据元素以及异常
【问题讨论】:
标签: javascript charts drawing chart.js2