0

我使用以下代码创建了一个饼图。已应用简单的过渡从左侧滑动它。我需要应用一些更好的过渡,例如以直线和角度开始的圆一直增加到 360 度,以完成一个完整的圆或饼图的每个弧(部分)从直线和角度增加以使其完整弧

    var data = [10, 20, 40];
    var r = 200;
    var color = d3.scale.ordinal()
                .range(["red", "green","blue"]);

    var canvas = d3.select("body")
                .append("svg")
                .attr("width", 800)
                .attr("height", 800);

    var group = canvas.append("g")
                .attr("transform", "translate(-300,300)");

    var arc = d3.svg.arc()
                .innerRadius(r-100)
                .outerRadius(r);

    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)});

    arcs.append("text")
        .attr("transform", function(d){return "translate("+arc.centroid(d)+")";})
        .attr("text-anchor","middle")
        .text(function(d){return d.data;});

    group.transition()
        .duration(2000)
        .attr("transform", "translate(300,300)");

谢谢。

4

0 回答 0