LINUX.ORG.RU

Визуализация графа, аналоги d3.js


0

2

Есть данные, пользователи и их дружеские связи. Игрался с визуализатором d3.js, все было идеально. Но база подросла, теперь это ~200Мб JSON файл с данными о самих пользователях и столько же со связями. В базе около 600 000 человек. Понятное дело, в браузере не взлетает, пофиг на интерактив. Попробовал рендерить на node.js с последующей конвертацией в png, — не взлетело. 130Мб JSON не загружается — out of memory. Куда бежать, что делать? Много сил и времени тратить на это нет возможности, каким инструментом быстро и красиво нарисовать кружочки аватарок с линиями связей для такого объема данных? В дальнейшем планирую порезать на тайлы и отображать рендером по типу карт (советы по этому тоже приветствуются).

Ответ на: комментарий от anonymous

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

trashymichael ★★★
() автор топика
Ответ на: комментарий от trashymichael

короче graphviz тоже не справляется. сгенерировал .dot файл, вышло ~150Мб, пробовал пару раз запускать, один раз без иксов, но после 30 минут ожидания останавливал. комп практически умирает, может за пару часов оно и сгенерит картинку, но что это будет за картинка страшно подумать, и как я ее буду резать и так далее. скорей всего придется забить и принять сокрушительное фиаско.

trashymichael ★★★
() автор топика
Ответ на: комментарий от trashymichael

10.03.2012 18:57:13 > ..возможно, посмотрю, про него вообще я и подумал сначала..

10.03.2012 19:04:43 > ..похоже graphviz подойдет..

10.03.2012 19:09:43 > ..пробовал пару раз запускать, один раз без иксов, но после __30_минут__ ожидания..

машина времени на холостом ходу ? ну не вмещается 30 мин в промежуток между 18:57:13 и 19:09:43. Ну никак

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

ну это не совсем твиттер, всеже. graphviz загибается даже на 20Мб выборке, просто вылетает сообщнием «Убито». почему все так плохо...

trashymichael ★★★
() автор топика
Ответ на: комментарий от MKuznetsov

похоже лор выбирает время открытия формы ответа а не время отправки сообщения. по теме будут еще предложения?

trashymichael ★★★
() автор топика

А сначала выцепить подграф с ограниченным расстоянием от выделенной вершины? Добавив возможность интерактивно перемещать выделение.

anonymous
()
Ответ на: комментарий от anonymous

это можно, но у некоторых очень много друзей, а тут граф даже на каких-то 17 000 вершин не строится, что вполне может соответствовать количеству друзей у двух умных девочек, например

trashymichael ★★★
() автор топика
Ответ на: комментарий от trashymichael

Попробуй разбить на subgraph'ы граф. Воспоминания остались от общения с поддержкой http://www.absint.com/aisee/index.htm, там посоветовали разбить граф на кластеры и потом рендерить, но т.к. я игрался с aiSee, то забил тогда.

Вот тут тоже советуют кластеризовать граф. http://stackoverflow.com/questions/238724/visualizing-undirected-graph-thats-...

Norgat ★★★★★
()

В graphviz мы как то построили полный граф данных питона (модули, объекты и пр.)... фееричная шняга.

По сабжу - ИМНО сама постановка задачи в корне неверна. Если построитель (любой) не справляется с отрисовкой, значит результат будет настолько монструозный, что рисовать его не надо - что потом с этой картинкой делать? Печатать на банере 100х100м, расстилать на болотной площади и ползать по нему с лупой? Так ведь заберут...

Надо вырезать куски графа разумного размера исходя из специфики задачи, и уже их потом рисовать. Как вырезать - тут уж Вам виднее... это надо думать. Скажем брать одну вершину, и рисовать все вершины удаленные от данной не более чем на скока то связей + все связи между ними. Но я по графам не спец, подозреваю что это типовая и уже кем то решенная задача.

AIv ★★★★★
()
Ответ на: комментарий от trashymichael

короче graphviz тоже не справляется. сгенерировал .dot файл, вышло ~150Мб, пробовал пару раз запускать, один раз без иксов, но после 30 минут ожидания останавливал. комп

афигеть. Ну положим, что он даже отрендерит. И что ты будешь делать с полумиллионом точек и ~миллиардом линий на экране? Это будет выглядеть как чОрный лист. А те девочки, у которых по 17к друзей будут выглядеть на графе не лучше. Визуализировать такой граф вообще не имеет смысла. Это бред. В данном случае стоит еще раз рассмотрет задачу «зачем нам визуализировать». А попробовать урезать визуализацию до необходимого в соответствии с требуемой задачей.

dikiy ★★☆☆☆
()
4 марта 2013 г.

Gephi

Возможно программа gephi потянет такой объём.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.