【发布时间】:2015-11-19 09:58:59
【问题描述】:
我想创建一个这样的图表:
<script>
var chart = c3.generate(
{
data: {
x: 'year',
columns: [
['year', 1991, 1992, 1993, 1994, 1995, 1998],
['value', 1, -3, -6, -5, 2, -3]
],
type: 'bar',
labels: true,
color: function (color, d) {
if(d.value < -1){
return d3.rgb('red');
}
else if(d.value >= -1 && d.value <= +1){
return d3.rgb('grey');
}
else {
return d3.rgb('blue');
}
}
}
}
);
</script>
这很好用,但现在我想对不同的输入数据做同样的事情。我计划在这个最小的例子中这样做:
<script>
var myYears = ', 1991, 1992, 1993, 1994, 1995, 1998'; //shall be created automatically
var myValues = ', 1, -3, -6, -5, 2, -3'; //shall be created automatically
var textJSON = '{' +
'"data": {' +
'"x": "year",' +
'"columns": [' +
' ["year"' + myYears +'],' +
' ["value"' + myValues +']' +
' ],' +
'"type": "bar"' +
'}' +
'}' ;
var c3JSON = JSON.parse(textJSON);
var chart = c3.generate( c3JSON );
</script>
这也可以,但是当我尝试将不同颜色的规则添加到我的文本中时,无法将其解析为 JSON。
您知道如何将颜色函数插入到我的文本中,以便将其正确解析为 JSON 吗?
color: function (color, d) {
if(d.value < -1){
return d3.rgb('red');
}
else if(d.value >= -1 && d.value <= +1){
return d3.rgb('grey');
}
else {
return d3.rgb('blue');
}
}
【问题讨论】:
标签: javascript json d3.js