我试图将不同的形状添加到我的 d3 力布局中,但没有成功。最终目标是根据节点对象本身的属性确定形状。我使用 Selection.enter() 然后 .append() 形状像这样。由于力导向布局仅采用一组节点,而 .append() 采用字符串而不是函数
node = vis.selectAll('.node')
.data(nodes, function(d) {
return d.filename
});
then...
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/ http://jsfiddle.net/UkeMS/
<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>
只需记住使用带小写字母的相对坐标(如上所述)声明路径,而不是使用大写字母的绝对坐标。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)