我想为networkx spring_layout添加额外的力量。
我有一个有向图,我希望节点根据它们拥有的边移动到不同的边。具有更多出边的节点应该漂移到具有更多入边的节点应该向右漂移。另一种选择是。这些节点组将彼此漂移,具有出边的节点会更靠近,而具有入边的节点也会彼此靠近。
我设法研究了networkx http://networkx.lanl.gov/archive/networkx-0.37/networkx.drawing.layout-pysrc.html#spring_layout的spring_layout 的源代码, 但那里的一切都超出了我的理解
G.DiGraph()
G.add_edges_from([(1,5),(2,5),(3,5),(5,6),(5,7)])
布局应显示边缘 1、2、3 彼此更接近,6 和 7 相同。
我想,我可以通过使用 MultiDiGraph 添加不可见的边缘来解决这个问题。我可以计算每个节点的传入和传出边,并添加连接两组的不可见边。但是,我很确定有更好的方法来解决这个问题。