用加权边缘绘制图形

时间:2009-10-03 14:04:48

标签: graph

我正在寻找构建一个算法(或重用一个)来组织二维画布上的节点和边,其中边可以有相应的权重。

任何起始材料和信息都会有所帮助。

2 个答案:

答案 0 :(得分:1)

权重会影响它们在画布上的位置?

话虽如此,您可能希望查看graphviz,更具体地说,是DOT语言,它在画布上组织节点。

许多图形可视化框架使用基于力的模拟,其中所有节点彼此施加排斥力(其质量是它们的大小),并且边缘在它们连接的节点上施加张力。这创建了美学上排列的图形可视化。

虽然再一次,我不确定你想让节点“权重”发挥作用。您是否希望加权节点更多地位于中心?变得更大?更进一步?

答案 1 :(得分:0)

许多图形/网络布局算法都隐含地能够处理加权网络,但您可能需要对实现进行一些预处理和调整才能使其正常工作。通常,第一步是确定您的权重是否代表“相似性”(通常被解释为意味着更强的权重应该使节点更接近于修改)或“不相似”(更强的权重=父亲分开)。最常见的情况是前者,因此您需要将它们转换为不相似性,通常通过从网络中的最大观察边缘值中减去每个边缘值来完成。然后可以将每个边缘的不相似值矩阵馈送到算法并且在每个边缘的布局空间中解释为期望的距离(即“弹簧长度”) - 通常在乘以某个常数以变换为显示单位(像素)之后

如果您告诉我您使用的语言,我可能会为您指出一些代码示例。