ggvis vs. ggplot2 + блискучий; який вибрати для інтерактивної візуалізації?


10

Тут є подібне запитання в CrossValided, і я прочитав відповіді. Моє запитання дещо інше. Я не хочу просто візуалізувати свої дані, і дійсно те, що я хочу візуалізувати, непросто візуалізувати за допомогою будь-якого пакету.

У мене на графіку є два набори точок ( координати). Я хочу додати краї та зробити його подібним до графіка. Якщо у мене є n балів, то, виходячи з характеру моєї проблеми, мені потрібно додати ( n / 2 ) 2 ребра до ділянки.x,yn(n/2)2

Тоді я хочу додати до свого сюжету деякі інтерактивні функції. Наприклад, натиснувши одну точку (вершину), всі інші вершини, які не з'єднані з цією натиснутою вершиною, повинні зникнути, щоб мати більш чіткий і зосереджений графік.

Я намагався знайти пакет візуалізації мережі, відповідний моєму проекту, але, схоже, всі вони використовують дані про підключення країв або вузлів і надають мережу на основі певного алгоритму компонування. Мої дані різні. У мене є координати вузлів, і я хочу встановити деякі краї між деякими з них. За моїми даними, у вузлів є свої фіксовані місця і їх не можна переміщувати.

Нарешті, я звузив пакети до ggvisі ggplot2. ggvisє новим та свіжим на додаток до того, що має навмисний дизайн для створення інтерактивних сюжетів. Але я дізнався, що ggplot2+Shinyтакож можна створювати інтерактивні сюжети. (Це правильно?) Окрім того, я зрозумів, що ggplot2можливості є більш різноманітними та зрілими, ніж ggvis: наприклад, ggplot2є функція масштабування, а ggvisїї немає. Що ще важливіше, оскільки ggvisзростає і змінюється, я не хочу вкладати багато часу на роботу, яка стає технічно застарілою або баггі через рік або близько того. Я думав, що це так, якщо я буду заснований на коді ggvis.

Тепер ви можете, будь ласка, оцінити мій вибір ( ggplot2+shiny) та порадити мені про можливість робити те, що я хочу зробити з цим?

Оскільки я не знав жодного із згаданих пакетів, я почав вчитися ggplot2з книги Вікхема і мені це подобається! Але я боюся витратити кілька тижнів і дізнаюся, що цей дивовижний пакет не може робити те, що я хочу зробити навіть за допомогою Shiny.

PS: Я хочу поставити остаточний код на github, щоб ймовірні користувачі могли його завантажити та запустити. Тому мені не потрібно робити веб-додаток, не потрібно жодного веб-сайту чи розміщення інтерактивної карти в Інтернеті. Мені просто потрібно мати інтерактивний сюжет, який можна запустити зсередини Rstudio.


Ласкаво просимо на сайт! Ви пробували igraphчи D3?
Зорі33

Дякую! Я переглянув, що може зробити для мене igraph, і я не знайшов це впорядкованому з даними, які я маю. Наскільки я зрозумів, igraph візуалізує мережу на основі даних з'єднаних вершин (або подібних даних про ребра). На основі деяких алгоритмів та пріоритетів, igraph розміщує вершини на графіку, сумісні з даними даними. Але я хочу, щоб вершини були точно у відповідних координатах, які я маю в моєму наборі даних. Я не хочу, щоб пакет вибирав їх макет та місце розташування.
Шахін

Чому б не d3js.org ? Це здається, що у вас є дуже особливі вимоги. D3 дозволяє надзвичайно просто працювати з SVG.
Рікардо Крус

Ви пробували гефі?
ММ

Чи можете ви надати посилання на питання CrossVal.
Джим

Відповіді:


4

Що ж, минуло багато місяців від цього прохання про допомогу. Я пишу цю відповідь на власне прохання, щоб поділитися своїм досвідом. Я навчився ggplot2і тоді ggvisтакож Shiny. Shinyможу працювати з обома, але я виявив ggvisбільш структурованим і чіткішим порівняно з ggplot2. Щось очікуване, як перше, розробляється на основі досвіду розвитку другого. Більше того, ggvisздається набагато швидшим, ніж ggplot2у швидкому генеруванні графіків / діаграм, здається, що набагато більше підходить для "Блискучого" та створення аплету. Однак негативним моментом є відсутність багатьох функцій, ggvisоскільки пакунок розробляється і ще не дозрів.

І велике спасибі за коментарі тут. Я перевірив Gephi, це не допоможе. Я створив свій аплет, який працює дуже добре, проте я нарешті дійшов до цього моменту, що мені потрібно використовувати більш потужні інструменти, такі як d3js, як уже запропонував один.


0

Час летить! Після двох років досвіду роботи я тепер відповідаю на власне запитання з кращим розумінням блискучої, R та інтерактивної візуалізації.

The Plotly - це безумовно найкраща відповідь. Це можна легко використати шляхом перетворення ggplotly () статичних графіків ggplot2 або безпосередньо шляхом вивчення логіки, що стоїть за функціями Plotly.

Останній випадок пропонується для заявок з різними сюжетами.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.