2

我对如何可视化树木有疑问。现在我使用graphviz点语言并且有一些问题。

简要介绍一下我的背景。我有一系列的树。步骤 T 上的树是通过添加一些边从步骤 T-1 上的树获得的。我想为每棵树创建图像。在图像查看器中查看这些图像时,我正在单击下一步按钮,并希望轻松查看从步骤 T-1 到步骤 T 的树变化。

我现在在做什么。我编写了创建“点”代码的脚本,用于为每个图形创建图像。在图像查看器中单击“下一步”按钮时,我看到节点如何跳跃。但我不喜欢它。我希望节点在每张图片上都保持在同一个位置,我想看到的唯一变化是新边和节点是如何出现的。

有没有办法将节点固定在它们的位置?

4

1 回答 1

3

有可能的。pos您必须使用节点和边 的属性(包含坐标)。

要获得一些值的示例,pos您可以简单地调用dot而无需任何指定的输出格式。这将为您提供一个.dot带有附加坐标的文件。
所以文件minimal.dot

digraph G {
  a [label="Node A"];
  b [label="Node B"];
  a -> b;
}

处理的dot minimal.dot将导致:

digraph G {
  node [label="\N"];
  graph [bb="0,0,82,108"];
  a [label="Node A", pos="41,90", width="1.14", height="0.50"];
  b [label="Node B", pos="41,18", width="1.14", height="0.50"];
  a -> b [pos="e,41,36 41,72 41,64 41,55 41,46"];
}

边和每个节点现在都有一个pos属性。这应该让你开始。

于 2012-04-19T08:51:31.870 回答