65

我的女儿们制作了一款类似于井字游戏的游戏。当然,当我和他们一起玩时,我开始在我的脑海中强制使用它......

所以在午餐时间我做了一个快速的 Python 小脚本来“解决”这个游戏。我想以图形方式查看结果,所以我生成了一个包含所有合法移动的点文件:

我在这里粘贴了数据

当我尝试使用 渲染它时dot,它需要很长时间,几个小时后我中止了它。

如果我使用neatoorsfdp等​​渲染它,则需要几秒钟或更短的时间,但实际上无法读取布局:

sfdp -x -Tpng data.dot > data.png

sfdp

neato -x -Tpng data.dot > data.png

内托

我很高兴得到的图像达到几百万像素。

如何布局和渲染如此大的图形?我对非点建议持开放态度,例如也可以进行布局的 Python 库。

有点相关的链接

补充我的Python脚本解决游戏并生成点文件

4

4 回答 4

55

试试这个:

sfdp -x -Goverlap=scale -Tpng data.dot > data.png

保留布局,-Goverlap但均匀地放大,直到没有更多的节点重叠。当你缩小时,我能够得到一个大约 77MB 的 PNG,看起来像这样。 在此处输入图像描述

于 2012-11-16T16:50:51.880 回答
10

您仍然可以使用neato,但修改 .dot 文件:[splines=true overlay=false]

你的文件应该是这样的:

digraph luffarschack {
    graph [splines=true overlap=false];
    node [shape=none]; 
        ...here your nodes;
        ...here your edges;
}

如果您只输入第二行“graph [splines=trueoverlap=false]”并且其他所有内容保持不变,它应该可以工作。

于 2014-07-03T19:24:33.020 回答
6

除了其他答案,您还可以使用Gephi等其他工具。

Gephi 是领先的各种图形和网络的可视化和探索软件。Gephi 是开源和免费的。

在 Windows、Mac OS X 和 Linux 上运行。

于 2016-08-10T14:40:31.623 回答
4

我发现 dot在我的大图( svg)上的默认值-Kneato太慢了。我最终使用

dot -Ksfdp -ooutput.svg -Tsvg input.dot

input.dot在哪里

digraph {
    graph [overlap=false];
    a -> {b c d e f g}
    b -> {c e g x f}
    ...
}
于 2019-04-03T00:47:25.933 回答