2009-03-03 8 views
285

Я пишу приложение python, которое будет сильно использовать структуру данных графа. Ничего ужасно сложного, но я думаю, что какая-то библиотека графиков/графов-алгоритмов поможет мне. Я искал гугл, но я не нахожу ничего, что особенно бросается в глаза.Библиотека графиков Python

У кого-нибудь есть хорошие рекомендации?

+0

Какие алгоритмы графа вы ищете? – Amoss

+1

Amoss, я искал библиотеку графов, которая могла вычислять кратчайшие пути, заданные весами. Базовый материал, действительно. Я закончил работу с networkx. Это работает очень хорошо. Тем не менее, я не затронул проект. Этот вопрос был задан более года назад. – cpatrick

+69

Удивительно странно, что есть такие вопросы, которые могут быть полезными, и получать много голосов, так как это можно классифицировать как «неконкретные». –

ответ

204

Есть два отличных варианта:

NetworkX

и

igraph

Мне нравится NetworkX, но я прочитайте хорошие сведения об играфе. Я обычно использую NetworkX с графами с 1 миллион узлов без проблем (это примерно вдвое больше накладные расходы в Словаре размера V + E)

Если вы хотите сравнить функции, увидеть это из NetworkX-обсуждение листа

Feature comparison thread

+4

В частности, что мне нравится в Networkx .... это в основном в python, легко редактировать и понимать исходный код, и он чувствует себя в основном «pythonic». –

+1

Мне было интересно, вы использовали его с * или подобными алгоритмами? – dassouki

+3

Я просто оценил оба. 'networkx' устанавливается через' pip', тогда как 'igraph' - нет. Это затрудняет использование 'igraph' в качестве зависимостей в файлах' setup.py'. – exhuma

29

Вы посмотрели python-graph? Я не использовал его сам, но страница проекта выглядит многообещающей.

4

Используйте Boost Graph Library - Python Bindings.

+1

Nice one dehmann, я пошел на это сначала (будучи программистом на C++ по профессии и абсолютно любящим повышением), но это пугает меня: Связывание BGL-Python больше не поддерживается cpatrick

+2

Посмотрите на графический инструмент, он основан на bgl и активен. – Sean

90

Я хотел бы подключить собственный график библиотеки питона: graph-tool.

Это очень быстро, так как оно реализовано на C++ с помощью библиотеки Boost Graph Library и содержит множество алгоритмов и обширную документацию.

+6

Графический инструмент - фантастический. – Sean

+4

+1 Для графического инструмента. Мы использовали его в нашей лаборатории. Это очень быстро по сравнению с другими библиотеками python. Кроме того, рисование и отображение графика довольно удивительно в графическом инструменте. Занимает много времени, чтобы скомпилировать! – Dilawar

+0

Я думаю, что лучше дать читателям ссылку для сравнения производительности этих библиотек графов: http://graph-tool.skewed.de/performance – MengT

0

Мне повезло с pydot. Некоторые из других трудно установить и настроить на различных платформах, как Win 7.

http://code.google.com/p/pydot/

0

Я предложение второго zweiterlinde, чтобы использовать питон-граф. Я использовал его как основу графического исследовательского проекта, над которым я работаю. Библиотека хорошо написана, стабильна и имеет хороший интерфейс. Авторы также быстро реагируют на запросы и отчеты.