Graphviz:创建一个新节点并使用相同的标签。

31
我开始使用graphviz,但在创建具有相同标签的新节点方面遇到了问题。例如,对于单词“sentence”,我想创建一个包含8个节点的图形: s -> e -> n -> t -> e -> n -> c -> e 现在我只收到包含5个节点的图形(一个“e”而不是3个,“n”而不是2个)。我需要创建更多具有相同标签(值)的节点。
我的问题示例可能是此图像http://rdftwig.sourceforge.net/paper/diagrams/bfsdeep.png,其中有2个具有值“C”,“E”和“D”的节点。
这是可能的吗?如果可能的话,我如何访问我的示例中单词“sentence”的第一个、第二个或第三个“e”节点?
2个回答

54

您可以明确定义节点并为其设置标签。然后,每个节点都有一个唯一的ID,但可以具有相同的标签。请考虑以下示例:

strict graph G {
    1 [label="A"];
    2 [label="B"];
    3 [label="B"];
    4 [label="A"];
    1 -- 2;
    2 -- 3;
    3 -- 4;
}

这将输出(带有dot):

具有相同标签的节点


2
这对我有用,但是太繁琐了。如果我们做类似以下的事情时有一个像repeatnode=false的标志就好了:a -> b b -> c c -> d d -> a它将自动创建一个新的'a'。 - user1043000
这就是Dot令人耳目一新的地方,它非常简单明了,并且运作良好,我希望更多的技术能像Dot一样工作... - Felipe Valdes

0

听起来可能很奇怪,但只需在重复的字符末尾加上一个空格即可解决问题。


1
这不是一个好主意。像@maehler所说的那样,只需使用键来保证唯一性。键是为程序员而设计的,不会在图表中显示。一个简单的空格是不可见的,也不容易记住或自我解释。 - Greg Hilston

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接