用graphviz布置一个大图

Wil*_*ill 44 python graphviz

我的女儿们做了一个与井字游戏不同的游戏.当然,当我和他们一起演奏的时候,我开始蛮力地把它强加在我脑海里......

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

我在这里贴了数据.

当我尝试使用它时dot,它需要永远,我会在几个小时后中止它.

如果我使用neatosfdp等渲染它,它需要几秒或更短但是布局是不可能实际读取:

sfdp -x -Tpng data.dot > data.png
Run Code Online (Sandbox Code Playgroud)

SFDP

neato -x -Tpng data.dot > data.png
Run Code Online (Sandbox Code Playgroud)

NEATO

我很高兴得到的图像是几百万像素.

我该如何布置并渲染如此大的图形?我对非点建议持开放态度,比如可以进行布局的Python库.

(有点相关的链接)

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

job*_*job 45

试试这个:

sfdp -x -Goverlap=scale -Tpng data.dot > data.png
Run Code Online (Sandbox Code Playgroud)

-Goverlap保留了布局,但统一尺度的东西,直到有没有更多的节点重叠.当你缩小时,我能够得到一个大约77MB的PNG. 在此输入图像描述

  • 如何使其成为分层视图而不是循环? (4认同)
  • @will我能在GIMP中打开它,但速度很慢.您可以运行`dot -Txxx`来获取其他可用输出格式的列表.我还能够指定`-Tx11`来显示布局的交互式显示(滚轮到缩放,中间鼠标拖动到平移). (2认同)

小智 10

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

你的文件应该是这样的:

digraph luffarschack {
    graph [splines=true overlap=false];
    node [shape=none]; 
        ...here your nodes;
        ...here your edges;
}
Run Code Online (Sandbox Code Playgroud)

如果您只是放入第二行"graph [splines = true overlap = false]"并且其他所有内容保持不变,它应该可以工作.


Chr*_*ssy 5

除了其他答案之外,您还可以使用其他工具,例如Gephi

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

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