gpt4 book ai didi

d3.js - 向 d3 force layout 添加不同的形状

转载 作者:行者123 更新时间:2023-12-05 01:33:12 26 4
gpt4 key购买 nike

我正在尝试向我的 d3 force 布局添加不同的形状,但没有成功。最终目标是根据节点对象本身的属性确定形状。我正在使用 selection.enter() 然后 .append() 这样的形状。由于力导向布局只需要一个节点数组,而 .append() 需要一个字符串而不是一个函数

node = vis.selectAll('.node')
.data(nodes, function(d) {
return d.filename
});

然后...

node.enter()
.append(**'rect'**) //I need to vary this based on node properties
.attr('class', function(d) {
return 'node ' + d.entityType;
//return d.entityType;
});

我不确定完成此任务的最佳方法。在此先感谢您的帮助。

最佳答案

我认为插入 svg 路径比插入矩形或圆形更容易。它非常灵活,您可以将您能想到的几乎任何形状添加到力图中。

下面的代码画了一个星星。 http://jsfiddle.net/UkeMS/

enter image description here

<svg>
<path d="
m 100 100
l 23 12
l -4 -26
l 19 -19
l -27 -4
l -11 -23
l -12 23
l -27 4
l 19 19
l -4 26
l 24 -12
"/>
</svg>

请记住使用小写字母的相对坐标(如上所述)声明路径,而不是使用大写字母的绝对坐标。

关于d3.js - 向 d3 force layout 添加不同的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17092228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com