Программное обеспечение для рисования графиков - PullRequest
2 голосов
/ 02 июля 2011

Мне нужно нарисовать график, составленный из 1876 кластеров, организованных следующим образом:

962 clusters composed by 1 node
651 clusters composed by 2 nodes
144 clusters composed by 3 nodes
52  clusters composed by  4 nodes
24  clusters composed by  5 nodes
8   clusters composed by 6 nodes
8 clusters composed by 7 nodes
2 clusters composed by 8 nodes
4 clusters composed by 9 nodes
3 clusters composed by 10 nodes
1 cluster composed by  11 nodes
1 cluster composed by  12 nodes
4 clusters composed by 13 nodes
1 cluster composed by  16 nodes
1 cluster composed by  21 nodes
1 cluster composed by  22 nodes
1 cluster composed by  24 nodes
1 cluster composed by  25 nodes
1 cluster composed by  26 nodes
1 cluster composed by  29 nodes
2 clusters composed by 31 nodes
1 cluster composed by  43 nodes
1 cluster composed by  65 nodes
1 cluster composed by  4843953 nodes

Я пробовал несколько программ, включая Pajek, SocNet, но они, кажется, больше ориентированы на узлы (они позволяют вам выполнять статистикуи некоторые продвинутые операции на узлах).Вместо этого меня не волнует сам узел , и мне не важны их соединения. Я просто хочу показать такие кластеры с узлами внутри .Кто-нибудь знает какое-нибудь программное обеспечение, которое должно мне помочь?PS Это граф LiveJournal

Ответы [ 4 ]

3 голосов
/ 02 июля 2011

В принципе, Mathematica 8 сможет решить вашу проблему с помощью нового объекта Graph . Я говорю «в принципе», потому что мне сложно представить, как будет выглядеть кластер из почти 5 миллионов узлов (или вершин) при печати на экране или на бумаге. Крайне важно, чтобы вы выбрали подходящий GraphLayout, поскольку это сравнение с Hu показывает: 3 graphs

Это 3 изображения одного и того же графа (936 вершин), с самым плохим отображением (конечно) слева. Статья содержит визуализацию графа с 225 тыс. Вершин, который имеет несколько различимую структуру.

В любом случае, он может обрабатывать ввод в виде матрицы смежности или списка ребер, среди прочего. Края могут быть направлены или нет. Вы можете показать и пометить все или некоторые или ни одну из вершин и ребер. Вы также можете удалить кластеры (GraphComponents) и отобразить их отдельно или в комбинации. Он также предоставляет различные варианты GraphLayout: CircularEmbedding, SpiralEmbedding, HighDimensionalEmbedding, LargeNetwork и т. Д. Существует множество графических стилей.

Существует команда NeighborhoodGraph, которая может оказаться полезной для этого огромного кластера. Соседство [g, v, n] генерирует подграф всех узлов в n шагах от вершины v. Вы также можете упростить задачу, запросив подграф с заранее определенным списком ребер, вершин или обоих.

Помните, что часть документации Graph ссылается на Combinatorica, которая, хотя и превосходна и полезна для многих целей, на мой взгляд, не отображает графики с такой точностью, как объект Graph версии 8.

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

2 голосов
/ 02 июля 2011

Попробуйте AT & T's graphviz .

1 голос
/ 10 июля 2011

Не думаю, что вы получите разумный ответ на свой вопрос, но я хочу указать свои 2 цента здесь:

  • Посмотрите примеры, как рисовать графики и переформулируйте свою проблему.
  • Как визуализировать один кластер? Большинство кластеров легко визуализировать, но тот, в котором 4,843,953 узла, является убийцей. Я подозреваю, что не будет подходящим визуализировать этот кластер вместе с другими ...
  • Лучшее, что я видел до сих пор, - это Программное обеспечение от TowSawyer для визуализации графиков. Но программное обеспечение стоит дорого, возможно, оно поможет получить четкое представление о том, как визуализировать.

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

0 голосов
/ 05 июля 2011

Tulip , который поставляется в комплекте с каждым основным дистрибутивом Linux (но, очевидно, также доступен для Windows), как говорят, "способен управлять графами с до 500 000 узлов и ребер на относительноскромное аппаратное обеспечение (например, 600 МГц Pentium III, 256 МБ ОЗУ) ".

Звучит так, как вы хотите.

...