如何将文本附加到d3.js中的一行

时间:2016-06-09 10:35:30

标签: javascript d3.js svg

我正在尝试将文本附加到条形图上创建的线条上。问题是我可以看到文本元素已创建。但它没有显示在svg上的任何地方。 我追加文字的代码的一部分

               \\server\folder1 ???? 

see plunker for full code

2 个答案:

答案 0 :(得分:11)

您无法将text附加到line。只需为文本创建另一个变量:

var myText =  svg.append("text")
   .attr("y", height - 10)//magic number here
   .attr("x", function(){ return x(lineEnd)})
   .attr('text-anchor', 'middle')
   .attr("class", "myLabel")//easy to style with CSS
   .text("I'm a label");

答案 1 :(得分:3)

我之前见过这个,但似乎无法找到它。基本上你需要一个容器用于行和文本,所以当你翻译行时,文本随之移动:

var line = svg.append("g")

line.append("line")
              .attr("x1", function(){ return x(lineEnd)})
              .attr("x2", function(){ return x(lineEnd)})
              .attr("y1", 0)
              .attr("y2", height)
              .attr("stroke-width", 6)
              .attr("stroke", "black")
              .attr("stroke-dasharray", "8,8")



line.append('text')
             .attr('class', 'barsEndlineText')
             .attr('text-anchor', 'middle')
              .attr("x", 0)
             .attr("y", ".35em")
             .text('I am label')

更新了PLNKR:http://plnkr.co/edit/lASjq4ysrYGqWUGtMgRd?p=preview