可缩放散点图中的D3标签问题

时间:2017-06-25 04:58:30

标签: javascript d3.js

这是我得到的problem。拖动或放大时,标签不会移动

错误:

  

未捕获的TypeError:无法读取未定义的属性“x”

对应最后一行。

  function zoom() {
    svg.select(".x.axis").call(xAxis);
    svg.select(".y.axis").call(yAxis);

    svg.selectAll(".dot")
        .attr("transform", transform);

    svg.selectAll("text")
        .attr("transform", transform);
  }

  function transform(d) {
    return "translate(" + x(d.x) + "," + y(d.y) + ")";
  }

1 个答案:

答案 0 :(得分:0)

当你这样做时......

svg.selectAll("text")

...您正在选择所有该SVG中的文本元素,其中一些文本没有绑定数据。

解决方案:给他们一个类(例如,.text)并按该类选择:

svg.selectAll(".text")
    .attr("transform", transform);

这是您更新的小提琴:https://jsfiddle.net/zoy0cxwq/