1

我对如何读取/写入 igraph 的 Python 模块感到非常困惑。我现在正在尝试的是:

g = igraph.read("football.gml")
g.write_svg("football.svg", g.layout_circle() )

我有一个 football.gml 文件,这段代码运行并编写了一个名为 football.svg 的文件。但是当我尝试使用 InkScape 打开它时,我收到一条错误消息,指出无法加载文件。这是编写代码的正确方法吗?可能出了什么问题?

4

2 回答 2

2

write_svg功能已被弃用;即使您没有适用于 Python 的 Cairo 模块,它也只是作为一种允许从 igraph 导出 SVG 的快速技巧。它已经有一段时间没有维护了,所以你可能遇到了一个错误。

如果你有 Python 的 Cairo 模块(在大多数 Linux 系统上,你可以简单地从适当的包中安装它),你可以简单地这样做:

igraph.plot(g, "football.svg", layout="circle")

这将使用 Cairo 的 SVG 渲染器,它可能会生成正确的结果。如果由于某种原因无法为 Python 安装 Cairo 模块,请在https://bugs.launchpad.net/igraph上提交错误报告,以便我们进行调查。

(更好的是,即使您设法使用 使其工作,也请提交错误报告igraph.plot)。

于 2012-04-29T11:44:36.887 回答
0

晚了几年,但也许这会对某人有所帮助。

write_svg函数似乎无法正确转义 & 符号。Texas A&M 在其标签中有一个 & 符号 - InkScape 可能会因为它看到&而不是看到而感到困惑&。只需football.svg在文本编辑器中打开来修复它,你就应该是金子了!

于 2014-07-08T23:08:16.530 回答