【问题标题】:Graphviz: how to use neato with very large graphs with subgraph clusters?Graphviz:如何使用带有子图簇的超大图的neato?
【发布时间】:2019-10-25 23:07:26
【问题描述】:

我有一个很大但不是很大(?)的图,有 13 个子图集群,包含大约 100 个节点和 3,147 条边。

Windows 上的 Dot 崩溃和 Linux 上的段错误。

This question 建议解决方案是使用neato,而不是dot

但是this page

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

无论我放大多远,我的输出都是一个巨大的黑色意大利面球。所以我删除了除一条以外的所有消息,这表明子图形似乎是相互嵌套绘制的。

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

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 neato


    【解决方案1】:

    所以我没有通用的解决方案来解决您的问题。 但是你看过“火星”吗? 它是一个命令行工具,专为使用具有非常大图形的 graphviz 程序而设计。 你可以在这里找到它:https://github.com/marckhoury/mars

    【讨论】:

      猜你喜欢
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-31
      • 2011-04-17
      • 1970-01-01
      相关资源
      最近更新 更多