ggvis vs ggplot2 + Shiny; yang mana yang akan dipilih untuk visualisasi interaktif?

10

Ada pertanyaan serupa di sini di CrossValidated, dan saya telah membaca jawabannya. Pertanyaan saya agak berbeda. Saya tidak ingin hanya memvisualisasikan data saya, dan memang apa yang ingin saya visualisasikan tidak mudah untuk divisualisasikan dengan salah satu paket.

Saya memiliki dua set poin ( koordinat ) pada plot saya. Saya ingin menambahkan tepi dan membuatnya mirip dengan grafik. Jika saya memiliki poin, maka berdasarkan sifat dari masalah saya, saya perlu menambahkan tepi ke plot.n ( n / 2 ) 2x,yn(n/2)2

Lalu saya ingin menambahkan beberapa fitur interaktif ke plot saya. Misalnya, dengan mengklik pada satu titik (titik), semua simpul lainnya yang tidak terhubung ke titik yang diklik ini harus menghilang untuk memiliki plot yang lebih jernih dan fokus.

Saya mencoba untuk menemukan paket visualisasi jaringan yang cocok untuk proyek saya, tetapi tampaknya semuanya menggunakan data tentang koneksi tepi atau node dan menyediakan jaringan berdasarkan beberapa algoritma tata letak tertentu. Data saya berbeda. Saya memiliki koordinat titik dan saya ingin membuat beberapa tepi di antara beberapa di antaranya. Dalam data saya, node memiliki lokasi tetapnya sendiri dan tidak boleh dipindahkan.

Akhirnya, saya mempersempit paket ke ggvisdan ggplot2. ggvisbaru dan segar selain memiliki desain yang disengaja untuk menghasilkan plot interaktif. Tetapi saya menemukan bahwa itu ggplot2+Shinyjuga dapat menghasilkan plot interaktif. (Apakah itu benar?) Selain itu, saya pikir ggplot2kemampuannya lebih bervariasi dan lebih matang daripada ggvis: misalnya ggplot2memiliki fitur pembesaran sementara ggvistidak memilikinya. Lebih penting, seperti ggvisyang tumbuh dan berubah, saya tidak ingin menginvestasikan banyak waktu pada pekerjaan yang secara teknis usang atau buggy dalam setahun atau lebih. Saya pikir ini terjadi jika saya berdasarkan kode ggvis.

Sekarang bisakah Anda mengevaluasi pilihan saya ( ggplot2+shiny) dan memberi tahu saya tentang kemungkinan untuk melakukan apa yang ingin saya lakukan dengannya?

Karena saya tidak tahu paket apa pun yang disebutkan, saya sudah mulai belajar ggplot2dari buku Wickham dan saya menyukainya! Tetapi saya takut menghabiskan beberapa minggu dan mengetahui bahwa paket luar biasa ini tidak dapat melakukan apa yang ingin saya lakukan bahkan dengan bantuan Shiny.

PS: Saya ingin meletakkan kode terakhir pada github sehingga pengguna yang mungkin dapat mengunduh dan menjalankannya. Karena itu, saya tidak perlu membuat aplikasi web, tidak perlu situs web apa pun atau meletakkan peta interaktif online. Saya hanya perlu memiliki plot interaktif yang dapat dijalankan dari dalam Rstudio.

Shahin
sumber
Selamat datang di situs ini! Apakah Anda mencoba igraphatau D3?
Dawny33
Terima kasih! Saya meninjau apa yang dapat dilakukan igraph untuk saya dan saya tidak menemukannya sejalan dengan data yang saya miliki. Sejauh yang saya mengerti, igraph memvisualisasikan jaringan berdasarkan data dari simpul yang terhubung (atau data serupa tentang tepi). Berdasarkan beberapa algoritma dan prioritas, igraph menempatkan simpul pada plot yang kompatibel dengan data yang diberikan. Tapi saya ingin simpul berada pada koordinat yang sesuai yang saya miliki di dataset saya. Saya tidak ingin paket memilih tata letak dan lokasi mereka.
Shahin
Kenapa tidak d3js.org ? Sepertinya Anda memiliki persyaratan yang sangat khusus. D3 membuatnya sangat mudah untuk bekerja dengan SVG.
Ricardo Cruz
Sudahkah Anda mencoba gephi?
MM
Bisakah Anda memberikan tautan ke pertanyaan CrossVal.
Jim

Jawaban:

4

Yah, berbulan-bulan telah berlalu dari permintaan bantuan ini. Saya menulis jawaban ini atas permintaan saya sendiri untuk membagikan pengalaman saya. Saya belajar ggplot2dan kemudian ggvisjuga Shiny. Shinydapat bekerja dengan keduanya, tetapi saya menemukan ggvislebih terstruktur dan jernih dibandingkan dengan ggplot2. Sesuatu yang diharapkan sebagai yang pertama sedang dikembangkan berdasarkan pengalaman pengembangan yang terakhir. Selain itu, ggvistampaknya jauh lebih cepat daripada ggplot2dalam pembuatan grafik / grafik cepat, tampaknya jauh lebih cocok untuk 'Shiny' dan membuat applet. Namun, poin negatifnya adalah kurangnya banyak fitur ggviskarena paket sedang dalam pengembangan dan belum menjadi matang.

Dan banyak terima kasih untuk komentar di sini. Saya telah memeriksa Gephi, itu tidak akan membantu. Saya membuat applet saya yang berfungsi dengan sangat baik, namun akhirnya saya sampai pada titik ini bahwa saya perlu menggunakan alat yang lebih kuat seperti d3js, seperti yang telah disarankan.

Shahin
sumber
0

Waktu berlalu! Setelah 2 tahun pengalaman bekerja, sekarang saya menjawab pertanyaan saya sendiri dengan pemahaman yang lebih baik tentang Shiny, R, dan visualisasi interaktif.

Sejauh ini, Plotly adalah jawaban terbaik. Ia dapat dengan mudah digunakan dengan konversi ggplotly () dari plot statis ggplot2, atau secara langsung dengan mempelajari logika di balik fungsi Plotly.

Kasus terakhir disarankan untuk aplikasi dengan beragam plot.

Shahin
sumber