graphviz,如何粘贴节点在图像上的位置

时间:2012-04-18 23:47:53

标签: tree visualization graphviz dot

我对如何可视化树木有疑问。现在我使用graphvizdot language并遇到一些问题。

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

我现在在做什么。我编写了脚本,创建了用于为每个图形创建图像的“点”代码。在图像查看器中单击“下一步”按钮时,我会看到节点如何跳跃。但我不喜欢它。我希望节点将保留在每张图片上的相同位置,我想要看到的唯一更改是新边缘和节点的显示方式。

有没有办法将节点粘在他们的位置?

1 个答案:

答案 0 :(得分: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属性。这应该可以帮到你。