使用 Python 或其他工具制作交互式网络拓扑图?

use*_*629 5 python graph

我在 SQLite 数据库中保存了大量网络信息。我想根据这些信息以网络图的形式绘制一个图表。

我希望它是交互式的,从某种意义上说,在最高级别上只能看到网络范围通信,当您深入图表时,您开始看到各个节点(交换机、路由器、防火墙、主机、服务器等)全部链接在一起。

我希望这个过程尽可能顺利,允许您使用滚轮在图表的某个位置进行放大,并且图表会随着您的操作而扩展。然后您可以在地图上单击并拖动。不过,我想先了解基础知识,因此认为我应该从在 HTML 中绘制图表开始,并为节点提供超链接,允许用户使用浏览器在图表中移动并深入了解图表。

同样重要的是,用户能够将他们的视图捕获为静态图像,我猜这在 HTML 中会更容易完成。

为了达到目的,我想问我可以从哪里开始这样做。我研究过 PyQT、Graphviz、输出到 HTML 等。我只是想决定使用什么以及一般如何去做这件事。我对 Python 相当擅长,但我愿意接受其他语言的建议。

如果你们认为 Python 可以做到这一点,那么哪个 Python 可以做到呢?2.7还是3?我一直在考虑升级到 3,现在合适吗?

提前致谢!

Kik*_*ohs 2

这里重要的是你想要一些动态的东西并且可以被用户捕获。

我的回答将与这个问题非常相似。

将图形导出为标准格式(例如 GEXF),并使用 Javascript 图形绘图库使图形具有交互性,例如:SigmaJsVivaGraphJs

最大的优点是您可以编写图形脚本来响应用户事件,例如缩放、另存为图片或动态显示有关节点和边的信息等。

恢复:

关于 python 版本,它实际上依赖于您可能使用的其他库。对于科学用途,我不建议切换到 Py3k,但对于其他任何事情,你都可以使用。