D3:如何在路径元素上动态设置“d”属性

时间:2016-04-28 19:25:45

标签: javascript d3.js graph progressdialog

对于其他所有属性,您可以使用函数(d){}方法设置它的值,但是当我尝试在路径元素的“d”attr上执行此操作时,它会给我一个巨大的红色无效控制台中的值错误。我的代码如下。

这就是我想要完成的事情(我正在努力) 我需要为我的数据集中的每个数据元素创建一个进度图表。它们都有不同的最大值。 1图表可能需要最大值4.5,而另一个图表可能需要最大值1.0。我试图去做的方法是每次创建一个路径时调用一个函数,该函数将被传递最大值,然后返回所需的弧变量。有什么建议吗?

var arc = d3.svg.arc()
                    .startAngle(0)
                    .endAngle(180 * (Math.PI / 180))
                    .innerRadius(50)
                    .outerRadius(100);

    // Create a variable to append the svg/paths too
    var container = d3.select("#aeGroupMarginSlide");

    // Create an svg element and append a path for each data element
    var svg = container.selectAll(".aeGroupMarginSvg").data(data);
    svg.enter()
        .append("svg")
            .attr({
                "class": "col-sm-4 col-md-4 col-lg-4 aeGroupMarginSvg",
                "height": 300
            })
        .append("path")  
            .attr({
                "d": function (d) { return arc; },
                "transform": function (d) {
                    var w = $(this).parent().width();
                    var h = $(this).parent().height();
                    return "translate(" + (w / 2) + ", " + (h / 2) + ")"
                },
                "fill": "white"
            })

0 个答案:

没有答案