Визуализировать график "Друг друга"

Я написал скрипт для экспорта друзей из твиттера в виде описания в формате PDF. Сейчас я ищу инструмент для визуализации сетей друзей. Я попробовал http://foafscape.berlios.de/ но для 300+ узлов он действительно медленный и плохо работает при автоматическом форматировании.

Любые советы для хороших инструментов визуализации графиков? Это нормально, если они не поддерживают foaf напрямую, но они должны иметь возможность использовать изображения для узлов графа и иметь возможность отображать большие графы. Поддержка Linux была бы хорошей.

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

Обновление: спасибо за ваш вклад. Я знаю, графвиз и для статических изображений это действительно здорово. Но для больших наборов данных мне нужно иметь возможность выбирать узлы и выделять всех соседей.

11 ответов

Решение

Возможно, вам поможет набор инструментов для визуализации. Он основан на Java и имеет множество примеров приложений, включая программу просмотра графиков.

Вы можете попробовать Graphviz. Он работает в Linux, Windows и Mac OS X и генерирует изображение (PNG, PS и т. Д.) Графика. Вам придется преобразовать ваши данные foaf в собственный язык, но его довольно легко выучить.

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

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

Как рекомендовано другими авторами, безусловно, Graphviz. Он принимает входной файл, назовем его foaf.dot, в следующем формате:

graph G {
    "George Formby" [shape=custom, shapefile="file:formby.png"];
    "Michael Jackson" [shape=custom, shapefile="file:jackson.png"];
    "George Formby" -- "Michael Jackson";
    "Fred Flinstone" -- "Michael Jackson";
    "Michael Jackson" -- "Steve McQueen";
}

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

Чтобы вывести свой график в PDF-файл (при условии, что вы уже установили graphviz), выполните следующую команду

dot -Tpdf foaf.dot > foaf.pdf

Graphviz поддерживает ряд выходных форматов, отличных от pdf, подробности смотрите в его документации.

Я считаю, что программа "точка" обычно обеспечивает наилучшие выходные результаты, однако в Graphviz всего 5 программ верстки. Из документации:

  • точка - фильтр для рисования ориентированных графиков
  • neato - фильтр для рисования неориентированных графиков
  • twopi - фильтр для радиальных раскладок графиков
  • circo - фильтр для круговой разметки графиков
  • fdp - фильтр для рисования неориентированных графиков

Попробуйте использовать Google Social Graph. В одной из бесед на dConstruct08 на прошлой неделе был социальный график, показывающий дружеские связи Роберта Скобла.

http://code.google.com/apis/socialgraph/
http://dconstruct.org/2008

Проверьте этот форум: http://goosebumps4all.net/34all/bb/forumdisplay.php?fid=28 для некоторых примеров вспышек, там есть граф друзей.

Для больших графиков Gephi (http://gephi.org/) очень популярен. Это очень настраиваемый, с большим количеством вариантов макета и презентации.

Вы пробовали основанную на Python IDE NodeBox (1.0)? Вот что я использовал для генерации этих: http://givememydata.com/

Визстер выглядит круто, хотя, я проверю это.

Если вы используете Java, вы можете использовать JGraph.

Я знаю, что в Adobe Flex есть несколько компонентов визуализации графиков, и, конечно, это позволило бы приложению работать на Flash, что обеспечивает отличную скорость проникновения в вашу потенциальную базу пользователей. Я запустил в Google компонент Flex SpringGraph и проверил это. Существует множество графических компонентов для Flex, как платных, так и бесплатных.

Всего один SpringGraph на моей голове: http://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail&extid=1048510

Другие вопросы по тегам