2013-03-30 87 views
8

我无法在d3.js中使用强制布局来显示节点的标签。D3.js,强制图,无法显示节点的文本/标签

var svg = d3.select("body").append("svg").attr("width", width).attr("height", height).append('svg:g').call(d3.behavior.zoom().on("zoom", redraw)); 

function redraw() { 
    console.log("here", d3.event.translate, d3.event.scale); 
    svg.attr("transform", "translate(" + d3.event.translate + ")" + " scale(" + d3.event.scale + ")"); 
    node.attr("transform", function(d) { 
     return "translate(" + d.x + "," + d.y + ")"; 
    }); 
} 

为什么不显示标签:

我用这个例子http://d3js.org/d3.v3.min.js

我更新的代码只添加变焦,这样的尝试?

回答

3

您需要单独添加文字:

node.append("text") 
    .attr("dx", ".10em") 
    .attr("dy", ".10em") 
    .text(function(d) { return d.name; }); 

看到这些例子:

http://bl.ocks.org/mbostock/2706022

http://bl.ocks.org/mbostock/1153292

+5

对于我的生活,我不能让这些标签出现。我从这里的例子开始http://bl.ocks.org/mbostock/4600693,它已经做了工具提示,但没有工作。是否有额外的步骤告诉d3文本属性应该呈现? – Colin

+0

注意不要在圆圈内追加文字元素。如果您从http://bl.ocks.org/mbostock/2706022(带标签)和https://bl.ocks.org/mbostock/4062045(无标签)复制粘贴,则几乎没有区别。 Text ** svg **和** circle ** svg附加到组** g **元素。 – user305883

相关问题