D3不显示SVG文本元素

时间:2017-03-09 19:56:53

标签: javascript d3.js svg

这可能是一个明智的选择,但我在这里已经筋疲力尽了。下面是JSFiddle的链接:

JSFiddle

svg.selectAll("text")
  .data(dataset)
  .enter()
  .append("text")
  .text(function(d) {
    return d.percentComplete;
  })
  .attr("x", function(d) {
    return xScale(new Date(d.startDate));
  })
  .attr("y", function(d) {
    return (yScale(d.taskName)) + ((h - margin.bottom) / taskCnt) / 2;
  })
  .attr("font-family", "sans-serif")
  .attr("font-size", "11px")
  .attr("fill", "white")
  .attr("text-anchor", "middle");

我无法在条形图上显示标签以显示完成百分比。不知道我做错了什么,因为这段代码适用于另一个我做的。顺便说一句,我知道我的位置还不对,我需要在开始将标签放在正确的位置之前显示标签。

提前致谢!

汤姆

1 个答案:

答案 0 :(得分:1)

https://jsfiddle.net/guanzo/pje44ne7/2/

您使用D3创建的轴包含text个元素,因此会干扰您的selectAll('text')。只需添加一个类,指定您要使用的文本类型。

svg.selectAll("text.label")
    .data(dataset)
    .enter().append("text").attr('class','label')
    ...//rest of your code