Вспомогательная функция не работает для окрашивания нескольких наборов данных в c3.js
У меня есть следующий код JavaScript для отображения двух наборов данных и имеют одинаковую цветовую схему для каждого:
var chart = c3.generate({
data: {
x: 'Letter',
columns:
[
['Letter', 'A','B','C','D'],
['test', 25,50,75,100],
['test2', 10, 20, 30, 40]
],
type: 'bar',
colors: {
test: function(d) {
return '#'+(0xff0000+(d.value-25)*256*3).toString(16);
},
test2: function(d) {
return '#'+(0xff0000+(d.value-25)*256*3).toString(16);
}
},
},
axis: {
x: {
type: 'category'
}
},
legend: {
show: false
}
});
Но, поскольку оба набора данных имеют одну и ту же функцию цветовой схемы, я хотел бы сделать функцию цвета своей собственной вспомогательной функцией и просто вызвать ее дважды, например, так:
var chart = c3.generate({
data: {
x: 'Letter',
columns:
[
['Letter', 'A','B','C','D'],
['test', 25,50,75,100],
['test2', 10, 20, 30, 40]
],
type: 'bar',
colors: {
test: function(d) {
getColor(d);
},
test2: function(d) {
getColor(d);
}
},
},
axis: {
x: {
type: 'category'
}
},
legend: {
show: false
}
});
function getColor(d){
return '#'+(0xff0000+(d.value-25)*256*3).toString(16);
}
Но, как вы можете видеть из этой скрипки, вспомогательная функция не работает, и я не могу понять, почему. Я добавил консольные операторы печати самостоятельно, и вспомогательная функция действительно возвращает те же значения, которые были, когда она была жестко закодирована в обеих исходных функциях.
Есть ли что-то предельно очевидное, чего мне не хватает?
1 ответ
Решение
"Есть ли что-то чрезвычайно очевидное, что я скучаю?"
colors: {
test: function(d) {
RETURN getColor(d);
},
test2: function(d) {
RETURN getColor(d);
}
},
Я все время так делаю:-)