更改 dagre-d3 中的默认节点形状

Change default node shape in dagre-d3

我正在使用 dagre-d3 在 Javascript 应用程序中显示有向图,它的默认节点形状是矩形。我更喜欢省略号,但如果有一种更改默认值的编程方式(例如,我宁愿不在 render.js 中修改 NODE_DEFAULT_ATTRS,这对我来说一点也不明显)。有什么建议么?感谢您的关注。

我做了一些试验,想出了一个看起来不太笨拙的方法。基本上,在将图表交给 dagreD3.render 之前,我遍历了图表的节点并设置了它们的形状。

var g = graphlibDot.read(treeData);
g.nodes().forEach(function(v) {
    var node = g.node(v);
    node.shape = "ellipse";
});
var render = new dagreD3.render();
var svg = document.querySelector('#graphContainer');
render(d3.select("svg g"), g);

创建节点时可以设置形状:

g.setNode(id, { shape: 'ellipse' });