如何在c3js饼图上绘制自定义JSON数据?

时间:2017-07-13 13:10:11

标签: javascript jquery json d3.js c3.js

我想根据以下JSON(从HQL-hibernate Java Play框架收到)绘制C3js饼图... JSON看起来像这样(这是动态数据):

{"ug":["K","M2","M3","M4"],"wtv":[10,20,35,60]}

HTML:

<div id="chart"></div>

JS(我实际尝试过的):

var json ={"ug":["K","M2","M3","M4"],"wtv":[10,20,35,60]};
var ug =json.ug;
var wtv=json.wtv;     
var chart = c3.generate({
    data: {
       json: {
          ug:wtv[0],
          ug1:wtv[1],
          ug2:wtv[2],
          ug3:wtv[3],
        },
        type : 'pie',
    }
});

Here is a fiddle for reference.

在ug,ug1,ug2,ug3的地方我需要K,M2,M3,M4(需要注意的是这些是动态数据) 任何人都可以帮助我操纵数据以根据需要绘制饼图吗? 我希望在后端改变JSON的结构不是唯一的解决方案(虽然在我的情况下很难)。任何其他解决方案都表示赞赏。

1 个答案:

答案 0 :(得分:2)

只要"ug""wtv"具有相同数量的元素......

var json = {"ug":["K","M2","M3","M4"],"wtv":[10,20,35,60]};
var pieJson = {};
json.ug.forEach(function (ug, index) {
  pieJson[ug] = json.wtv[index];
});

var chart = c3.generate({
  data: {
    // iris data from R
    json: pieJson,
    type : 'pie',
  }
});

jsfiddle.net/4h4z00g7/