В CrossValidated есть похожий вопрос, и я прочитал ответы. Мой вопрос немного другой. Я не хочу просто визуализировать свои данные, и на самом деле то, что я хочу визуализировать, нелегко визуализировать с помощью любого пакета.
У меня есть два набора точек ( координаты ) на моем графике. Я хочу добавить ребра и сделать их похожими на график. Если у меня есть точек, то в зависимости от характера моей проблемы мне нужно добавить ребер к графику.
Затем я хочу добавить некоторые интерактивные функции в мой сюжет. Например, если щелкнуть одну точку (вершину), все другие вершины, которые не связаны с этой вершиной, на которую щелкают, должны исчезнуть, чтобы получить более четкий и сфокусированный график.
Я попытался найти пакет сетевой визуализации, подходящий для моего проекта, но, похоже, все они используют данные о соединении ребер или узлов и предоставляют сеть на основе какого-то определенного алгоритма компоновки. Мои данные разные. У меня есть координаты узлов, и я хочу установить некоторые ребра между некоторыми из них. В моих данных узлы имеют свои собственные фиксированные местоположения и не должны перемещаться.
Наконец, я сузил пакеты до ggvis
и ggplot2
. ggvis
является новым и свежим в дополнение к намеренному дизайну для создания интерактивных сюжетов. Но я узнал, что ggplot2+Shiny
можно также создавать интерактивные сюжеты. (Это правильно?) Кроме того, я подумал, что ggplot2
возможности более разнообразны и более развиты, чем ggvis
: например, ggplot2
есть функция масштабирования, а ggvis
у нее ее нет. Что более важно, так как ggvis
он растет и меняется, я не хочу тратить много времени на работу, которая технически устареет или станет глючной через год или около того. Я думал, что это тот случай, если я на основе кода ggvis
.
Теперь, пожалуйста, оцените мой выбор ( ggplot2+shiny
) и посоветуйте мне возможность сделать то, что я хочу с ним сделать.
Поскольку я не знал ни одного из упомянутых пакетов, я начал учиться ggplot2
из книги Уикхема, и мне это нравится! Но я боюсь провести несколько недель и выяснить, что этот удивительный пакет не может делать то, что я хочу сделать, даже с помощью Shiny
.
PS: я хочу поместить окончательный код на github, чтобы вероятные пользователи могли его скачать и запустить. Поэтому мне не нужно делать веб-приложение, нет необходимости ни в каком веб-сайте или выкладывать интерактивную карту в онлайн. Мне просто нужно иметь интерактивный сюжет, который можно запустить изнутри Rstudio.
источник
igraph
или D3?Ответы:
Ну, много месяцев прошло с этого запроса о помощи. Я пишу этот ответ на свой запрос, чтобы поделиться своим опытом. Я узнал
ggplot2
и тогда, иggvis
так жеShiny
.Shiny
может работать с ними обоими, но я нашелggvis
более структурированным и ясным по сравнению сggplot2
. Нечто ожидаемое, поскольку первое разрабатывается на основе опыта разработки второго. Более того,ggvis
кажется гораздо быстрее, чемggplot2
при быстрой генерации графиков / диаграмм, кажется, что он более подходит для Shiny и создания апплета. Однако отрицательным моментом является отсутствие многих функций,ggvis
поскольку пакет находится в стадии разработки и еще не достиг зрелости.И большое спасибо за комментарии здесь. Я проверил
Gephi
, это не поможет. Я создал свой апплет, который работает очень хорошо, однако, наконец, дошел до того, что мне нужно использовать более мощные инструменты, такие какd3js
, как уже предлагалось.источник
Время летит! После 2 лет опыта работы, теперь я отвечаю на свой вопрос с лучшим пониманием Shiny, R и интерактивной визуализации.
Plotly - безусловно лучший ответ. Его можно легко использовать с помощью преобразования ggplotly () статических графиков ggplot2 или непосредственно путем изучения логики, лежащей в основе функций Plotly.
Последний случай предлагается для приложений с различными участками.
источник