如何覆盖d3.js图表​​功能行为?

时间:2014-12-14 23:46:22

标签: javascript jquery css svg d3.js

d3.js中有一个受欢迎的库提供项目符号图表实施。我正在对此图表的默认行为进行小修改。

子弹图由一个或多个标记平行线来识别目标,我希望以编程方式制作其中一个标记长度略短于另一个。我非常接近解决方案,并在Bullet Fiddle分享了我的工作。要查看我的问题,您必须按季度按钮,并注意该线如何缩小和增长然后再次缩小。我希望它保持较短的长度。

似乎每次更新都会触发子弹的默认行为,导致它将标记重置为原始大小。我希望得到一些帮助,以了解我如何覆盖此默认行为并保持行自定义大小。

这是我用来更新标记的代码示例:

 d3.selectAll(".bullet .marker.s1").attr("y1", 10).attr("y2", 35);

1 个答案:

答案 0 :(得分:1)

这是库中导致您的更改被覆盖的代码:

  marker.transition()
      .duration(duration)
      .attr("x1", x1)
      .attr("x2", x1)
      .attr("y1", height / 6)       // the y1 and y2 values get updated here
      .attr("y2", height * 5 / 6);

所以最简单的方法就是分叉库并删除几行。否则,我没有看到标记定义作为图表的一部分公开,以便您删除转换。