【问题标题】:d3.js scatter plot don't redraw on transitiond3.js 散点图不会在过渡时重绘
【发布时间】:2014-09-11 10:22:10
【问题描述】:

我有一个带有转换的折线图,其中添加了工具提示。这对第一个部门来说很好,但是一旦我从下拉菜单中更改部门,图表的散点图部分就不会重新绘制(线会按应有的方式更新)。我可能在这里遗漏了一些基本的东西,但是当我查看示例时,我认为我的想法是正确的。有人看到我的代码有什么问题吗?

更新 - 删除了完整的代码。当我在控制台中触发它时,我得到了所需的更改。但它在我的更新功能中不起作用。而且我很难理解:)

focus.selectAll("circle")
.data(dataFilter)
    .attr("fill","blue")
    .attr("cx", function(d) { return x(d.datum); })       
    .attr("cy", function(d) { return y(d.Kvot); });

【问题讨论】:

    标签: javascript d3.js transitions scatter-plot


    【解决方案1】:

    终于明白了——当我放入它自己的更新函数并在转换后调用它时,它似乎可以工作。任何人都可以解释为什么我不能把它放在其他功能中?我想这与过渡有关,但不知道。

    function update_circles() {
    focus.selectAll("circle")
        .data(dataFilter)
        .attr("cx", function(d) { return x(d.datum); })       
        .attr("cy", function(d) { return y(d.Kvot); });
    };
    

    【讨论】:

      【解决方案2】:

      您忘记使用transition 方法:

      // Make the changes
      focus.select("#Main").transition().duration(750)
          .attr("transform", "translate(" + (width+3) + "," + y(yMain) + ")")
          .text(sec);
      

      有关transitions 的更多信息,请参阅官方文档。问候,

      【讨论】:

      • 我之前添加了它,以便该部分起作用 (var focus = d3.select("body").transition();) 这是更新功能的最后一部分不起作用,它处理点。
      • 我认为带点的部分也缺少transition()方法。
      • 嗯,我尝试添加它,但它仍然给我 Uncaught TypeError: undefined is not a function
      • 你能贴出所有代码吗?或者更好的是,创建一个小提琴或 jsBin 来隔离问题?
      • 所有代码应该没问题,因为我在一个相当大的数据集上运行它,所以小提琴有点复杂。我想知道是否与我无法正确处理的循环 .enter、.update 和 .exit 阶段有关 (bost.ocks.org/mike/join)
      猜你喜欢
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多