我在D3中整理了一个图表,该图表使用带有圆形手柄的垂直滑动画笔,加上一条水平线以显示与曲线的交点:
。 。 。但是当我拖动手柄超过范围点= 0时,画笔范围,手柄和线条都会从图表中消失:
我已经禁用了上刷柄,因为这是一个单向工具,但我怀疑这可能是问题所在。我也尝试更改边距以显示“> 100%的画笔高度”,但元素仍然以相同的方式消失。我是否错误地定义了刷子参数,或者这是否值得在D3回购中提交票证?
以下是完整示例:http://bl.ocks.org/wboykinm/1a2806d828cb3fa64c4d
谢谢!
答案 0 :(得分:1)
这是因为此时你的画笔的范围是0,因此是空的。如果您查看source code,空刷子会将display
设置为none
。如果您使用浏览器开发人员工具检查g
类.resize.s
,则可以看到这一点。
一种可能的解决方法是将其添加到brushend
侦听器:
// Add the brush to the Y axis, set to 10% of the extent
var brush = d3.svg.brush()
.y(y)
.extent([0,0.1])
.on("brushend", function(){
brushg.selectAll(".resize.s")
.style("display","inline")
});
以下是使用此解决方案的PLUNK。
一旦开始真正使用图表中的画笔,您可能不必处理此问题。