Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3.js-缩放半径后,如何在边界内保持力导向布局_Javascript_D3.js_Force Layout_Directed Graph_D3 Force Directed - Fatal编程技术网

Javascript D3.js-缩放半径后,如何在边界内保持力导向布局

Javascript D3.js-缩放半径后,如何在边界内保持力导向布局,javascript,d3.js,force-layout,directed-graph,d3-force-directed,Javascript,D3.js,Force Layout,Directed Graph,D3 Force Directed,目前,我有一个强制导向布局,如果数据太大,节点和链接将超出svg边界。我的勾号功能包括: node .attr('cx', function(d) {return d.x}) .attr('cy', function(d) {return d.y}) 我确实看到参考文献建议: node .attr("cx", function(d) { return d.x = Math.max(radius, Math.min(width - radius, d.x)); })

目前,我有一个强制导向布局,如果数据太大,节点和链接将超出svg边界。我的勾号功能包括:

node
    .attr('cx', function(d) {return d.x})
    .attr('cy', function(d) {return d.y})
我确实看到参考文献建议:

node
    .attr("cx", function(d) { return d.x = Math.max(radius, Math.min(width - radius, d.x)); })
    .attr("cy", function(d) { return d.y = Math.max(radius, Math.min(height - radius, d.y)); });
“我的节点”的半径使用以下比例:

var scaleR = d3.scaleSqrt()
                .domain(d3.extent(graph.nodes, function(d) {return d.frequency})
                .range([1,20])
如何在tick函数中引用每个节点的半径


提前感谢

使用以下命令,将半径值替换为缩放函数:

node
    .attr("cx", function(d) { return d.x = Math.max(scaleR(d.frequency) , Math.min(width - scaleR(d.frequency), d.x)); })
    .attr("cy", function(d) { return d.y = Math.max(scaleR(d.frequency) , Math.min(height - scaleR(d.frequency), d.y)); });