Игра для питона

Я полностью сбит с толку о том, как читать / писать в модуль Python igraph. То, что я пытаюсь прямо сейчас:

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

У меня есть файл football.gml, и этот код запускается и записывает файл с именем football.svg. Но когда я пытаюсь открыть его с помощью InkScape, я получаю сообщение об ошибке, в котором говорится, что файл не может быть загружен. Это правильный способ написания кода? Что может быть не так?

2 ответа

write_svg функция в некотором роде устарела; это был всего лишь быстрый способ разрешить экспорт SVG из igraph, даже если у вас нет модуля Cairo для Python. Это не поддерживалось какое-то время, поэтому может случиться так, что вы столкнулись с ошибкой.

Если у вас есть модуль Cairo для Python (на большинстве систем Linux вы можете просто установить его из соответствующего пакета), вы можете просто сделать это:

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

Это будет использовать Каирский SVG рендерер, который, вероятно, даст правильный результат. Если по какой-либо причине вы не можете установить модуль Cairo для Python, отправьте отчет об ошибке на https://bugs.launchpad.net/igraph чтобы мы могли разобраться в этом.

(Еще лучше, пожалуйста, отправьте отчет об ошибке, даже если вам удалось заставить его работать, используя igraph.plot).

Пара лет опаздывает, но, возможно, это кому-нибудь пригодится.

write_svg Кажется, что функция не может правильно выходить из амперсандов. У Texas A&M на этикетке есть амперсанд - InkScape, вероятно, сбит с толку, потому что видит & скорее, чем &, Просто открой football.svg в текстовом редакторе, чтобы исправить это, и вы должны быть золотыми!

Другие вопросы по тегам