Graphviz:如何将neato用于具有子图簇的非常大的图?

Graphviz:如何将neato用于具有子图簇的非常大的图?,graphviz,neato,Graphviz,Neato,我有一个很大但不是很大的(?)图,有13个子图簇,包含大约100个节点和3147条边 Windows上的点崩溃和Linux上的seg故障 建议使用neato,而不是dot 但是说 请注意这里有一些怪癖。。。只有DOT和FDP布局方法似乎支持子图 无论我放大多远,我的输出都是一个巨大的黑色意大利面球。所以我删除了所有的消息,只删除了一条,这表明子GRPH看起来是嵌套在一起的 它们绝对不嵌套在源文件中;这是一个更改了商业敏感名称的示例: digraph G { labelloc="t"

我有一个很大但不是很大的(?)图,有13个子图簇,包含大约100个节点和3147条边

Windows上的点崩溃和Linux上的seg故障

建议使用
neato
,而不是
dot

但是说

请注意这里有一些怪癖。。。只有DOT和FDP布局方法似乎支持子图

无论我放大多远,我的输出都是一个巨大的黑色意大利面球。所以我删除了所有的消息,只删除了一条,这表明子GRPH看起来是嵌套在一起的

它们绝对不嵌套在源文件中;这是一个更改了商业敏感名称的示例:

digraph G {
       labelloc="t";    // place the label at the top (b seems to be default)
       label="XXX message passing";
         rankdir = "LR"
         newrank = "true"

         subgraph cluster_AAA {
              label="AAA"
              rank="same"

            AAA_1
          }

         subgraph cluster_BBB {
              label="BBB"
              rank="same"

            BBB_1
            BBB_2
          }

         subgraph cluster_CCC {
              label="CCC"
              rank="same"

            CCC_1
            CCC_2
            CCC_3
          }
这显然在语法上是正确的(后面是边)

因此,链接页面似乎是正确的:

只有DOT和FDP布局方法似乎支持子图

但是,看起来我还需要neato来绘制一个大图形

我有什么选择


[Updtae]我运行了
fdp
,得到了以下错误消息

错误:节点“xxx”包含在两个不可比较的集群“AAA”和“BBB”中

这似乎给出了一个线索。在两个集群中是否真的不能使用节点名


如果是这样,解决方案似乎是在节点名称之前加上集群名称…

因此我没有解决问题的通用解决方案。 但是你看过《火星》吗? 它是一个命令行工具,专门为使用具有非常大图形的graphviz程序而设计。 你可以在这里找到它: