simulation.on("tick", function() {
link.attr("x1", d => d.source.x)
.attr("y1", d => d.source.y)
.attr("x2", d => d.target.x)
.attr("y2", d => d.target.y);
node.attr("cx", function(d) {
return d.x = Math.max(
nodeRadiusScale(d.degree),
Math.min(width - (nodeRadiusScale(d.degree) + 150), d.x)
);
}).attr("cy", function(d) {
return d.y = Math.max(
nodeRadiusScale(d.degree),
Math.min(height - nodeRadiusScale(d.degree), d.y)
);
});
});