d3.js绘制一个包含多列记录的饼图

时间:2014-06-02 12:59:44

标签: javascript d3.js pie-chart

我有这个数据结构:

  

[                             {X:1,对比例:63.79,H:21.74,L:7.25,EDU:8.7},                             {X:2,补偿:63.79,H:21.74,L:7.25,EDU:8.7},                             {X:3,补偿:57.99,H:21.74,L:7.25,EDU:8.7},                             {X:4,小样:56.54,H:21.74,L:7.25,EDU:8.7},                             {X:5,排版:50.74,H:21.74,L:7.25,EDU:8.7},                             {X:6,排版:36.24,H:21.74,1:0,EDU:8.7},                             {X:7,排版:34.8,H:0,1:7.25,EDU:8.7},                             {X:8,补偿:30.45,H:0,1:7.25,EDU:8.7},                             {X:9,补偿:34.8,H:0,1:0,EDU:8.7},                             {X:10,排版:34.8,H:0,1:7.25,EDU:8.7}                           ];

我正在尝试制作饼图表示法。 我尝试从d3教程中学习,但是在这种情况下这些并不是那么有用。 这些教程仅适用于[10,20,30,40]等线性结构。 但在我的情况下,我必须为每个记录创建一个饼图,并且每个记录都有4个参数包含在饼图中。 我意识到(根据教程的理解)我需要为每个属性的每一行制作弧形生成器。但是找不到这样做的方法。而且,似乎不可行。 特别是bcoz,你我必须写一些东西(根据我对线性结构的尝试):

        var pie = d3.layout.pie()
              .value(function(d){ return d; });

    var arcs = group.selectAll(".arc")
              .data(pie(data))
              .enter()
              .append("g")
              .attr("class", "arc");

    arcs.append("path")
        .attr("d", arc)
        .attr("fill", function(d){ return color(d.data); });

有没有出路....我在想我应该改造数据结构,或者至少在使用之前改变它。

谢谢你的进步!

0 个答案:

没有答案