Javascript d3甜甜圈图表带文本的multy环

Javascript d3甜甜圈图表带文本的multy环,javascript,d3.js,Javascript,D3.js,我根据网络上的一些示例创建了一个多环甜甜圈图表,在我尝试在圆环中显示文本并遇到不同错误之前,一切都正常。 我想在这一点上我可以访问数据,但当我创建环时,我得到了路径和文本的NaN值 这是我的密码: var dataset = { ringOne: [{"label":"70%", "value":70}, {"label":"10%", "value":10}, {"label":"20%", "value":20}], ringTw

我根据网络上的一些示例创建了一个多环甜甜圈图表,在我尝试在圆环中显示文本并遇到不同错误之前,一切都正常。 我想在这一点上我可以访问数据,但当我创建环时,我得到了路径和文本的NaN值

这是我的密码:

var dataset = {
  ringOne: [{"label":"70%", "value":70}, 
            {"label":"10%", "value":10}, 
            {"label":"20%", "value":20}],

  ringTwo: [{"label":"70%", "value":70}, 
            {"label":"10%", "value":10}, 
            {"label":"20%", "value":20}],
};


var width = 460,
    height = 300,
    cwidth = 45,
    outerR = 100,
    color = d3.scale.ordinal().range(["#07e", "#00aced", "#e32"]);

var svgDonut = d3.select("#donut")
    .append("svg")
    .attr("width", width)
    .attr("height", height)
    .append("g")
    .attr("transform", "translate(" + width / 2 + "," + height / 2 + ")" );

var arc = d3.svg.arc();

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

var rings = svgDonut.selectAll("g.slice")
    .data(pie([dataset]))
    .enter()
    .append("g")
    .attr("class", "slice");

    rings.append("path")
        .attr("fill", function(d, i){ return color(i); })
        .attr("d", function(d, i, j){ return arc.innerRadius( 80 + cwidth * j )
                                            .outerRadius( outerR * (j) )(d); });

    rings.append("text")
        .attr("transform", function(d) {                    
            d.innerRadius = 0;
            d.outerRadius = outerR;
            return "translate(" + arc.centroid(d) + ")";        
        })
        .attr("text-anchor", "middle")
        .text(function(d, i) { return dataset.ringOne[i].label; });
我得到的错误是:

Error: Invalid value for <path> attribute d="M4.898587196589413e-15,-80A80,80 0 1,1 NaN,NaNL0,0Z"
Error: Invalid value for <text> attribute transform="translate(NaN,NaN)"
错误:属性d的值无效=“M4.898587196589413e-15,-80A80,80 0 1,1 NaN,NaNL0,0Z”
错误:属性transform=“translate(NaN,NaN)”的值无效
在这里拉小提琴:


有什么想法吗?

请提供fiddle链接:)找到bug会容易得多。。。我给出的第一个线索是,你设置的arc变量是错误的,因为它返回的是NaN而不是正确的值:)也许这会有帮助,你是对的!刚刚加上!嗯,我想我的主要问题是如何访问我的数据。事实上,如果您使用console.log,您会看到数据{value:NaN}:/但是我尝试了所有我知道的组合,但找不到正确的方法!如果我用.data(pie(dataset.ringOne))更改.data(pie([dataset])),我可以看到一个带有文本的饼图。但是我在这里错过了第二个环节:(你确定吗?数据(饼图)和对象有两个数据集?我很确定你想要第一个饼图和甜甜圈图,而不是原来的饼图,但我不确定你是否能够在不创建一个图表的情况下做到这一点。。。