У меня возникают проблемы с большой визуализацией графа в python и networkx. График - желание визуализировать направленность и имеет размер ребра и вершины 215 000. Из документации (которая связана на верхней странице) ясно, что networkx поддерживает построение с помощью matplotlib
и GraphViz. В matplotlib
и networkx рисунок выполняется следующим образом:
import
networkx as nx
import matplotlib.pyplot as plt
#Let g be a graph that I created
nx.draw(g)
Я получаю ошибку памяти после nx.draw(g)
, после этого вы обычно делаете plt.show()
или plt. [some_function], чтобы сохранить файл в формате для эффективного и т.д.
Далее я попробовал GraphViz. На странице wikipedia формат dot
используется для ориентированных графиков, и я создал файл-точку:
nx.write_dot(g, "g.dot")
Это сработало хорошо, и у меня был точечный файл в моем текущем каталоге, который составляет 12 мегабайт. Затем я запустил программу dot
(часть graphviz для создания файла postscript):
dot -Tps g.dot -o g.ps
Это замедляет работу моего компьютера, работает в течение нескольких минут, а затем отображает Killed
в терминале. Поэтому он никогда не смог выполнить... При чтении документации для graphviz кажется, что для визуализации большого графа поддерживаются только неориентированные графики.
Вопрос: С этими двумя неудачными попытками кто-нибудь может показать мне, как визуализировать мой большой график, используя python и networkx с примерно 215 000 вершин и 215 000 ребер? Я подозреваю, что с Graphviz мне придется выводить в промежуточный формат (хотя это не должно быть так сложно, что это будет не так просто, как встроенная функция), а затем использовать другой инструмент для чтения промежуточного формата, а затем выводят визуализацию.
Итак, я ищу следующее:
- Вывести график из сети в промежуточный формат
- С новым пакетом/программным обеспечением/инструментом (в идеале python-interactive) читайте промежуточный формат и визуализируйте большой график
Если вам нужна дополнительная информация, дайте мне знать!