我无法理解画笔/范围在D3 4.0上的工作原理。我希望创建一个可以沿着svg元素的Y轴拖动的画笔,我希望在页面加载时已经创建了画笔,我不希望用户必须沿着g元素拖动创造它。 (例如,此示例具有在页面加载时创建的画笔http://bl.ocks.org/raffazizzi/3691274)。
这是我到目前为止所做的:
Either
现在这会创建一个矩形,我可以通过在其中拖动来创建画笔,我希望画笔已经在加载的矩形上创建(在矩形的底部,宽度为100,高度为10)。我相信brush.extent()可以用于此,但我不确定在这种情况下正确的参数是什么。许多例子使用D3 3.0,他们使用带刻度的画笔,我相信在4.0中不再需要它了。感谢您的帮助。
答案 0 :(得分:2)
我想出了怎么做。我必须调用移动刷子并建立我希望我的选择包含的区域。例如 -
var verticalRectangle = d3.select(".svgrectangle")
.attr("width", 100)
.attr("height", 500)
.append("g")
var yBrush = d3.brushY()
.extent([[0,0], [100,500]]) //Area you want your brush to be movable in
.on("brush", brushed);
verticalRectangle.append("g")
.attr("class", "brush")
.call(yBrush)
.call(yBrush.move, [5, 100]); //What area you want your brush selection to initially take