【问题标题】:Automatically rotate a graph自动旋转图形
【发布时间】:2010-08-21 10:59:55
【问题描述】:

我正在用力导向布局绘制图形,问题是创建的图形是随机定向且不可预测的,这使得查看它们有些混乱。例如,假设节点 A 是两个独立图 G1 和 G2 的成员。在强制导向布局中,节点 A 可能最终位于 G1 的左侧,但位于 G2 的右侧。

现在我正在尝试通过在应用了图形布局算法后以确定性方式自动旋转图形来减少混乱。可以为此计算minimum bounding rectangle,但如果旋转算法可以包含一些关于顶点和边的附加信息会更好。

在这种情况下,每个顶点都是一个带有时间戳和字数的文档,边代表文档之间的无向和有向关系。也许有一种方法可以旋转图形,以便旧文档集中在左侧,而新文档集中在右侧?与链接相同:箭头应指向右侧而不是左侧。这听起来像是一个合理的方法,但我不知道如何计算这样的东西(谷歌也没有真正提供帮助)。

注意事项:

  • 我认为有图形布局算法可以处理旋转,但我更喜欢涉及力导向布局的解决方案。
  • 可以让用户手动旋转图形,但这需要保存图形方向,这是我希望避免的事情,因为文档数据库中没有空间。

【问题讨论】:

    标签: graph-layout graph-drawing


    【解决方案1】:

    你可以使用

    • 一种动态力导向算法,可保留用户在帧之间的心理地图(例如,Graph Drawing in Motion,在 Journal of Graph Algorithms and Applications (JGAA), 6(3), 353–-370, 2002),或
    • Procrustes Analysis 平移、旋转和缩放框架,以便保留“地标点”的相对位置。

    【讨论】:

    • 非常感谢您的回答。不幸的是,这些方法都不适用于我的情况。第一个不起作用,因为图之间没有任何转换(有时是图 A -> 图 B,但通常没有这样的顺序)。第二个不起作用,因为 procrustes 旋转是基于最小化两个形状之间的“procrustes 距离”——在我的例子中,只有一个形状。无论如何,我会为你的努力和标准化规模的巧妙想法投赞成票:-)
    • 是的,我误读了这个问题。也许您需要一个包含方向性的力导向算法?例如Dwyer, T. 和 Koren, Y. 和 Marriott, K.,使用二次规划绘制有向图,IEEE Transactions on Visualization and Computer Graphics, 12(4), 536-548 (2006) 和 Dwyer, T. 和 Koren, Y ., Dig-CoLa: Directed Graph Layout through Constrained Energy Minimization, Proceedings of the IEEE Symposium on Information Visualization (InfoVis'05), IEEE Computer Society, 65-72, 2005。
    • 哇,二次规划??对于这么小的问题,我不需要这么复杂的东西 ;-) 但这看起来像是我的问题的解决方案,再次感谢!
    【解决方案2】:

    您可以使用使用种子生成随机数的布局。在Gephi 中尝试Yifan Hu multilevel algorithm

    【讨论】:

      猜你喜欢
      • 2013-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多