树的建议(作为可视化工具)编辑软件?

时间:2012-02-24 17:57:57

标签: visualization developer-tools

我正在尝试为我正在处理的代码生成一个调用树(我没有写它)来帮助我理解它。我希望能够手动输入每个函数及其调用的函数(作为子元素),从而构建树。但是我希望它能够自动组织和定位图表,这样就不会有任何重叠而不必每次添加内容时都要移动所有东西。例如,这是我想要用蹩脚的Lispesque格式输入的数据类型的结构:

( initAll //root node
  ( //root node's children - functions it calls
    ( initDisplay () ) //this child is a leaf
    ( initControlBar
       ( //initControlBar's children - functions it calls
         ( addButtons () )
         ( setUpControlBarEvents () )
       )
    )
    ( alertUserSystemReady () )
  )
)

我猜它可能是一个图形工具(树当然是图形的一个子集),但我不认为图形工具能够自动将事物放在正确的水平上。我喜欢将这些数据组织成树是因为有不同的级别,这有助于我可视化正在发生的事情。

我已经尝试过yEd和LucidChart,但两者对我来说都太过手工了。由于树将变得非常深,我需要能够使用树数据自动重构的东西。我也试过Graphviz,但是无法使它工作(我在Windows上并且在安装后不知道该怎么做)。

谷歌在树编辑器端没有太多帮助 - 它给了我http://bioinfo.unice.fr/biodiv/Tree_editors.html之类的页面,这些页面有太多可供选择。在这种情况下,我认为使用他人的经验会更好,所以我来到这里。

那么,是否有人知道任何可以让我更接近目标的工具?谢谢!

1 个答案:

答案 0 :(得分:2)

使用dot语言在文件中表示图形,然后使用graphviz将其可视化。 dot引擎(graphviz提供的引擎之一)将在您描述时绘制层次结构图。这是一个示例图表:

http://www.graphviz.org/Gallery/directed/unix.png

您需要创建的文件的语法是这样的(取自上图中使用的文件):

digraph unix {
    size="6,6";
    node [color=lightblue2, style=filled];
    "5th Edition" -> "6th Edition";
    "5th Edition" -> "PWB 1.0";
    "6th Edition" -> "LSX";
    "6th Edition" -> "1 BSD";
    "6th Edition" -> "Mini Unix";
    "6th Edition" -> "Wollongong";
    ...
}

对于不同类型的图,可以将相同的文件传递给不同的引擎,但dot引擎是代码结构和依赖项常用的引擎。