Инструменты Python для визуализации 100k вершин и 1m ребер? [закрытый]


Я хочу визуализировать данные, надеюсь, сделать их интерактивными. Прямо сейчас я использую NetworkX и Matplotlib, которые увеличивают Мои 8 Гб, когда я пытаюсь "нарисовать" график. Я не знаю, какие существуют варианты и методы для обработки такого большого кластера.** данных. Если бы кто-то мог указать мне правильное направление, это было бы здорово. У меня также есть карта GFX с поддержкой CUDA, если это может быть полезно.

Прямо сейчас я думаю о рисовании только самых связанных узлов, скажем, сверху 5% вершин с наибольшим количеством ребер, затем заполнение менее связанных узлов по мере увеличения или щелчка пользователя.

6 12

6 ответов:

У меня нет никакого опыта в этом, но тюльпан, кажется, создан для этого.

Вы должны спросить в официальном списке рассылки wxPython. Там есть люди, которые, вероятно, могут вам помочь. Я удивлен, что matplotlib не может этого сделать. Это может просто потребовать, чтобы вы каким-то образом реструктурировали свой код. Сейчас основные способы рисования в wxPython-это использование различных DCs, одного из виджетов FloatCanvas или для построения графиков, wx.Сюжет или matplotlib.

Может PyOpenGL? Его можно использовать вместе с wxPython.

Edit: просто попробовал производительность без какой-либо оптимизации, требуется 0,2 С, чтобы нарисовать 100k вершин и 4s, чтобы нарисовать 1M ребер.

Рассматривали ли вы graphviz ? Не интерактивный, хотя он был разработан с самого начала для обработки очень больших графиков (хотя ребра 1M могут быть за пределами даже его возможностей).

Есть модуль python (pydot ), который упрощает взаимодействие с graphviz. Опять же, не могу сказать наверняка, что он будет масштабироваться до вашего уровня. Однако это должно быть легко выяснить: установка обоих проста.

Hth.

Вы рассматривали возможность использования ParaView или VisIt? Это две интерактивные программы построения графиков, которые предназначены для работы и построения (очень!) большие наборы данных. Они оба также имеют интерфейс сценариев Python, так что вы можете автоматизировать/контролировать свои визуализации из интерпретатора Python.

Вы пробовали Gephi ?

Я считаю, что это очень хорошо масштабируется.