2013-11-26 172 views
1

我有以下代碼:現在添加在d3.js節點「三角式」

var nodeEnter = node.enter().append("svg:g") 
       .attr("class", "node") 
       .attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; }) 
       .on("click", function(d) { toggle(d); update(d); }); 

      nodeEnter.append("svg:circle") 
       .attr("r", 1e-6) 
       .style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }); 

      nodeEnter.append("svg:text") 
       .attr("x", function(d) { return d.children || d._children ? -10 : 10; }) 
       .attr("dy", ".35em") 
       .attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; }) 
       .text(function(d) { 
       if (d.size != undefined) { 
        return d.name + " :: " + d.size + " :: " + d.diff_day; 
       } else { 
        return d.name; 
       } 
       }) 
       .style("fill-opacity", 1e-6) 
       .style("font-size", "15px"); 

      nodeEnter.append("svg:path").attr("d", d3.svg.symbol.type("triangle-up").style("fill", "black")); 

,問題是,SVG:圈子和SVG:文本來了罰款。但是「d3.svg.symbol.type(」triangle-up「)。style(」fill「,」black「));」似乎沒有工作。任何幫助,將不勝感激......

+0

它是如何工作的?你有沒有收到任何錯誤信息? –

回答

2

您不能設置符號屬性的屬性創建本身是這樣的:

nodeEnter.append("svg:path") // Wrong. 
    .attr("d", d3.svg.symbol.type("triangle-up").style("fill", "black")); 

你必須先設置d屬性,然後設置風格fillpath

nodeEnter.append("svg:path") // Fixed. 
    .attr("d", d3.svg.symbol().type("triangle-up")) 
    .style("fill", "black");