Javascript D3:通过散点图中的x和y坐标选择一个圆

Javascript D3:通过散点图中的x和y坐标选择一个圆,javascript,d3.js,Javascript,D3.js,在d3.js中是否有可能根据元素的位置(即x和y坐标)选择元素?我有一个包含大量数据的散点图。我还有一个坐标数组。带有这些坐标的点应该是红色的。为此,我正在做类似的事情: bestHistory() { var that = this; var best = d3.select("circle") .attr("cx", that.runData[0].best_history[0].scheduling_quality)

在d3.js中是否有可能根据元素的位置(即x和y坐标)选择元素?我有一个包含大量数据的散点图。我还有一个坐标数组。带有这些坐标的点应该是红色的。为此,我正在做类似的事情:

bestHistory() {
            var that = this;
            var best = d3.select("circle")
            .attr("cx", that.runData[0].best_history[0].scheduling_quality)
            .attr("cy", that.runData[0].best_history[0].staffing_cost)
             .classed("highlighted", true)
        } 
此方法应将此特定位置上的圆的“类”属性设置为“高亮显示”

然后是相应的CSS:

circle.highlighted {
    fill: red;
}
但不是变红,而是消失了


如何实现我想要的?

您可以计算每个点到感兴趣点的实际距离,并根据该距离确定点的颜色,如:

var threshold=...
var p =...
d3.select('circle').each(function(d){
    var x = p.x - d.x;
    var y = p.y - d.y;
    d.distance = Math.sqrt(x*x + y*y);
}).attr('fill', function(d){
    return d.distance < threshold? 'red' : 'blue'
})
var阈值=。。。
变量p=。。。
d3.选择('圆圈')。每个(功能(d){
var x=p.x-d.x;
var y=p.y-d.y;
d、 距离=数学sqrt(x*x+y*y);
}).attr('fill',函数(d){
返回距离<阈值?'red':'blue'
})
“对不起,”手机回答