d3.js-将所选笔刷调整到矩形的左、右坐标系
我正在刷一组矩形(一系列矩形)。我需要做的是一旦刷我想选择的开始和结束的矩形,无论它是否选择部分。需要在绘制笔刷的位置选择整个矩形集。 目前我只能刷一次,如果我执行下面的代码,就不能再刷了。 矩形的高度为15。我错过了什么 我发现,只有当我添加以下内容时,我才能再次刷牙: gbrush .attr(“x”,baseval) .attr(“宽度”,endval) 我的代码:d3.js-将所选笔刷调整到矩形的左、右坐标系,d3.js,D3.js,我正在刷一组矩形(一系列矩形)。我需要做的是一旦刷我想选择的开始和结束的矩形,无论它是否选择部分。需要在绘制笔刷的位置选择整个矩形集。 目前我只能刷一次,如果我执行下面的代码,就不能再刷了。 矩形的高度为15。我错过了什么 我发现,只有当我添加以下内容时,我才能再次刷牙: gbrush .attr(“x”,baseval) .attr(“宽度”,endval) 我的代码: var baseval, endval,selected,gbrush //initial brush drawn var
var baseval, endval,selected,gbrush
//initial brush drawn
var brush = d3.svg.brush()
.x(d3.scale.identity().domain([30, 290]))
.y(d3.scale.identity().domain([0, height-50]))
.on("brushstart", brushstart)
.on("brush", brush)
.on("brushend", brushed);
gbrush=svg.append("g").call(brush);
function brushed()
{
var e = brush.extent();
//get all the selected rectangles where brushed.
selected = svg.selectAll("rect").filter(function(d)
{
return d.x_axis <= e[1][0] && d.x_axis + d.width >= e[0][0] && d.y_axis <= e[1][1] && d.y_axis + d.height >= e[0][1];
})
gbrush.selectAll("rect")
.attr("height", 15)
.attr("y",10)
//get the start and end point of the rectangle's x-axis where the brush is drawn
baseval = selected[0][0].x.baseVal.value;
endval = selected[0][selected[0].length-1].x.baseVal.value;
gbrush.selectAll("rect")
.attr("height", 15)
.attr("y",10)
.attr("x",baseval)
.attr("width",endval);
.....
}
function brushstart()
{
//var e = brush.extent();
//brush.extent = [100,100];
gbrush.selectAll("rect")
.attr("height", 15)
.attr("y",10);
}
function brush()
{
gbrush.selectAll("rect")
.attr("height", 15)
.attr("y",10);
}
var baseval、endval、selected、gbrush
//初始画笔绘制
var brush=d3.svg.brush()
.x(d3.scale.identity().domain([30290]))
.y(d3.scale.identity().domain([0,高度-50]))
.on(“刷起”,刷起)
.on(“刷子”,刷子)
.在(“刷涂”,刷涂);
gbrush=svg.append(“g”).call(画笔);
函数brushed()
{
var e=brush.extent();
//获取所有已刷过的选定矩形。
selected=svg.selectAll(“rect”).filter(函数(d)
{
返回d.x_轴=e[0][0]&d.y_轴=e[0][1];
})
gbrush.selectAll(“rect”)
.attr(“高度”,15)
.attr(“y”,10)
//获取绘制笔刷的矩形x轴的起点和终点
baseval=所选[0][0].x.baseval.value;
endval=selected[0][selected[0].length-1].x.baseVal.value;
gbrush.selectAll(“rect”)
.attr(“高度”,15)
.attr(“y”,10)
.attr(“x”,baseval)
.attr(“宽度”,endval);
.....
}
函数brushstart()
{
//var e=brush.extent();
//brush.extent=[100100];
gbrush.selectAll(“rect”)
.attr(“高度”,15)
.attr(“y”,10);
}
函数刷()
{
gbrush.selectAll(“rect”)
.attr(“高度”,15)
.attr(“y”,10);
}
我的查询格式是否无效?我不知道为什么我没有得到任何评论。