Визуализировать график "Друг друга"
Я написал скрипт для экспорта друзей из твиттера в виде описания в формате PDF. Сейчас я ищу инструмент для визуализации сетей друзей. Я попробовал http://foafscape.berlios.de/ но для 300+ узлов он действительно медленный и плохо работает при автоматическом форматировании.
Любые советы для хороших инструментов визуализации графиков? Это нормально, если они не поддерживают foaf напрямую, но они должны иметь возможность использовать изображения для узлов графа и иметь возможность отображать большие графы. Поддержка Linux была бы хорошей.
О, и я ищу интерактивный инструмент, где я могу перемещать узлы вручную.
Обновление: спасибо за ваш вклад. Я знаю, графвиз и для статических изображений это действительно здорово. Но для больших наборов данных мне нужно иметь возможность выбирать узлы и выделять всех соседей.
- Prefuse выглядит великолепно: http://prefuse.org/gallery/graphview/
- через префузию я нашел vizster, который я и ищу (просто нужно найти исходный код) http://jheer.org/vizster/
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/
Визстер выглядит круто, хотя, я проверю это.
Я знаю, что в Adobe Flex есть несколько компонентов визуализации графиков, и, конечно, это позволило бы приложению работать на Flash, что обеспечивает отличную скорость проникновения в вашу потенциальную базу пользователей. Я запустил в Google компонент Flex SpringGraph и проверил это. Существует множество графических компонентов для Flex, как платных, так и бесплатных.
Всего один SpringGraph на моей голове: http://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail&extid=1048510