d3.js中有一个受欢迎的库提供项目符号图表实施。我正在对此图表的默认行为进行小修改。
子弹图由一个或多个标记,平行线来识别目标,我希望以编程方式制作其中一个标记长度略短于另一个。我非常接近解决方案,并在Bullet Fiddle分享了我的工作。要查看我的问题,您必须按年和季度按钮,并注意该线如何缩小和增长然后再次缩小。我希望它保持较短的长度。
似乎每次更新都会触发子弹的默认行为,导致它将标记重置为原始大小。我希望得到一些帮助,以了解我如何覆盖此默认行为并保持行自定义大小。
这是我用来更新标记的代码示例:
d3.selectAll(".bullet .marker.s1").attr("y1", 10).attr("y2", 35);
答案 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);
所以最简单的方法就是分叉库并删除几行。否则,我没有看到标记定义作为图表的一部分公开,以便您删除转换。