我有一个很大但不是很大(?)的图,有 13 个子图集群,包含大约 100 个节点和 3,147 条边。
Windows 上的 Dot 崩溃和 Linux 上的段错误。
这个问题表明解决方案是使用neato
,而不是dot
。
但是,这个页面说
请注意这里有一些怪癖......只有 DOT 和 FDP 布局方法似乎支持子图
我的输出是一个巨大的黑色意大利面球,无论我放大多远。所以我删除了除一个之外的所有消息,这表明 subgrphs 似乎是相互嵌套绘制的。
它们绝对不会嵌套在源文件中;这是一个示例,更改了商业敏感名称:
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”中
这似乎提供了一个线索。一个节点名真的不能在两个集群中使用吗?
如果是这样,解决方案似乎是在节点名称之前加上集群名称......