Игра для питона
Я полностью сбит с толку о том, как читать / писать в модуль 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
в текстовом редакторе, чтобы исправить это, и вы должны быть золотыми!