Бібліотека графіків Python [закрита]


354

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

Хтось має хороші рекомендації?


Які алгоритми графіків ви шукаєте?
Андрій

1
Емос, я шукав бібліотеку графіків, яка могла б обчислити найкоротші шляхи за заданими вагами. Основні речі, справді. Я закінчила роботу з networkx. Це працює досить добре. Я хоч і давно не торкався проекту. Це питання задавали більше року тому.
cpatrick

108
Вражаюче дивно, що є такі питання, які корисні, і голосування піднімається на кшталт цього можна класифікувати як "не конструктивне".
Джим Рейнор

1
Ви також можете використовувати "рідну базу даних графіків", як neo4j, а потім використовувати зв'язок python для обговорення з db?
СТЕФАНІ

3
@JimRaynor "Не конструктивний" був старим ловом усіх. Близькі причини були оновлені, щоб краще (не ідеально, але краще) висвітлити намічене використання. Сьогодні це було б закрито як рекомендаційне питання.
jpmc26

Відповіді:


237

Є два чудові варіанти:

NetworkX

і

іграф

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

Якщо ви хочете порівняти функції, перегляньте це у списку обговорень Networkx

Нитка порівняння характеристик


4
Зокрема, що мені подобається у Networkx .... це здебільшого в python, легко редагувати та розуміти вихідний код, і він відчуває себе переважно "пітонічним".
Грегг Лінд

1
Мені було цікаво, чи використовували ви це * або подібні алгоритми?
dassouki

4
Я просто оцінив обидва. networkxвстановлюється через pip, тоді igraphяк ні. Це igraphускладнює використання як залежності у ваших setup.pyфайлах.
ексгума

3
Як оновлення до 2013 року, я збираюся з networkx просто b / c, він має github і виглядає найбільш актуальною з усіх варіантів цієї відповіді та інших
Маті Тернер

1
У igraph також є github: github.com/igraph/python-igraph
user_1_1_1

105

Я хотів би підключити власну бібліотеку python graph : graph-tool .

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


6
graph-tool є фантастичним.
Шон

5
+1 Для графіка-інструмента. Ми використовуємо його в нашій лабораторії. Це дійсно швидко порівняно з іншими бібліотеками python. Крім того, малювання та відображення графіка досить приголомшливе у графі-інструменті. Хоча для збирання потрібно багато часу!
Ділавар

5
На жаль, Windows не підтримує :(
Майк Шалій,

2
@TiagoPeixoto Це виглядає настільки багатообіцяюче, але його не можна використовувати у Windows. Я застряг у NetworkX, вважаючи це занадто повільним.
Наман

2
@ColonelPanic Це FAQ см graph-tool.skewed.de/download : «Коротка відповідь , що це не може бути зроблено, так як графік-інструмент в вирішальною мірою залежить від деяких (відмінно) C ++ бібліотеки , такі як Boost, які не встановлюється через pip. "
Тіаго Пейшото

32

Ви подивилися на python-graph ? Я сам не користувався цим, але сторінка проекту виглядає багатообіцяючо.



6

1
Хороший один деман, я пішов за це першим (будучи програмістом на C ++ по торгівлі та абсолютно люблячим підвищенням), але це мене лякає: прив'язки BGL-Python більше не підтримуються <a top of page>
cpatrick

3
Подивіться на графік-інструмент замість цього, він заснований на bgl та активний.
Шон



0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.