如何在D3上创建默认大小的画笔?

时间:2016-07-19 17:21:54

标签: javascript d3.js svg

我无法理解画笔/范围在D3 4.0上的工作原理。我希望创建一个可以沿着svg元素的Y轴拖动的画笔,我希望在页面加载时已经创建了画笔,我不希望用户必须沿着g元素拖动创造它。 (例如,此示例具有在页面加载时创建的画笔http://bl.ocks.org/raffazizzi/3691274)。

这是我到目前为止所做的:

Either

现在这会创建一个矩形,我可以通过在其中拖动来创建画笔,我希望画笔已经在加载的矩形上创建(在矩形的底部,宽度为100,高度为10)。我相信brush.extent()可以用于此,但我不确定在这种情况下正确的参数是什么。许多例子使用D3 3.0,他们使用带刻度的画笔,我相信在4.0中不再需要它了。感谢您的帮助。

1 个答案:

答案 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