Javascript D3:如何动态设置;d";路径元素上的属性

Javascript D3:如何动态设置;d";路径元素上的属性,javascript,d3.js,graph,progressdialog,Javascript,D3.js,Graph,Progressdialog,对于其他每个属性,您都可以使用函数(d){}方法设置它的值,但是当我尝试在path元素的“d”attr上设置时,它在控制台中给我一个巨大的红色无效值错误。我的代码如下 以下是我正在努力实现的目标(我正在努力) 我需要为数据集中的每个数据元素创建一个进度图。它们都有不同的最大值。一个图表可能需要最大值4.5,而另一个图表可能需要最大值1.0。我要尝试的方法是,每次创建路径时调用一个函数,该函数将传递最大值,然后返回所需的arc变量。有什么建议吗 var arc = d3.svg.arc()

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

以下是我正在努力实现的目标(我正在努力) 我需要为数据集中的每个数据元素创建一个进度图。它们都有不同的最大值。一个图表可能需要最大值4.5,而另一个图表可能需要最大值1.0。我要尝试的方法是,每次创建路径时调用一个函数,该函数将传递最大值,然后返回所需的arc变量。有什么建议吗

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"
            })
尝试使用
arc(d)。当您执行类似于
.attr(“d”,arc)
的操作时,
d
参数将自动传递。在功能块内,您必须手动传递它。