ggvis vs. ggplot2 + Shiny; quale scegliere per la visualizzazione interattiva?


10

C'è una domanda simile qui in CrossValidated e ho letto le risposte. La mia domanda è un po 'diversa. Non voglio semplicemente visualizzare i miei dati, e in effetti ciò che voglio visualizzare non è facile da visualizzare con nessuno dei due pacchetti.

Ho due serie di punti ( coordinate ) sulla mia trama. Voglio aggiungere bordi e renderlo simile a un grafico. Se ho n punti, quindi in base alla natura del mio problema, devo aggiungere ( n / 2 ) 2 bordi alla trama.x,yn(n/2)2

Quindi voglio aggiungere alcune funzionalità interattive alla mia trama. Ad esempio, facendo clic su un punto (vertice), tutti gli altri vertici che non sono collegati a questo vertice cliccato devono scomparire per avere una trama più lucida e focalizzata.

Ho cercato di trovare un pacchetto di visualizzazione di rete adatto al mio progetto, ma sembra che tutti usino i dati sulla connessione di bordi o nodi e forniscano una rete basata su un algoritmo di layout specifico. I miei dati sono diversi. Ho le coordinate dei nodi e voglio stabilire dei bordi tra alcuni di essi. Nei miei dati i nodi hanno le loro posizioni fisse e non devono essere spostati.

Alla fine, ho ristretto i pacchetti a ggvise ggplot2. ggvisè nuovo e fresco oltre ad avere un design intenzionale per generare grafici interattivi. Ma ho scoperto che ggplot2+Shinypuò anche produrre trame interattive. (È corretto?) Inoltre, ho pensato che ggplot2le capacità fossero più varie e maturate di ggvis: ad esempio ggplot2ha una funzione di zoom mentre ggvisnon ce l'ha. Ancora più importante, poiché ggviscresce e cambia, non voglio investire molto tempo in un'opera che diventa tecnicamente obsoleta o buggy in circa un anno. Ho pensato che questo fosse il caso se ho basato il codice ggvis.

Ora potresti per favore valutare la mia scelta ( ggplot2+shiny) e consigliarmi sulla possibilità di fare quello che voglio farci?

Dato che non conoscevo nessuno dei pacchetti citati, ho iniziato a imparare ggplot2dal libro di Wickham e lo adoro! Ma ho paura di passare qualche settimana e scoprire che questo fantastico pacchetto non può fare quello che voglio fare nemmeno con l'aiuto di Shiny.

PS: Voglio mettere il codice finale su github in modo che gli utenti probabili possano scaricarlo ed eseguirlo. Pertanto, non è necessario creare un'applicazione Web, non è necessario alcun sito Web o mettere online la mappa interattiva. Devo solo avere un grafico interattivo che può essere eseguito dall'interno di Rstudio.


Benvenuti nel sito! Hai provato igrapho D3?
Dawny33

Grazie! Ho rivisto cosa può fare igraph per me e non l'ho trovato in linea con i dati che ho. Per quanto ho capito, igraph visualizza una rete basata sui dati dei vertici collegati (o dati simili sui bordi). Basato su alcuni algoritmi e priorità, igraph individua i vertici sulla trama compatibile con i dati forniti. Ma voglio che i vertici siano esattamente nelle coordinate corrispondenti che ho nel mio set di dati. Non voglio che il pacchetto scelga il layout e la posizione.
Shahin,

Perché non d3js.org ? Sembra che tu abbia requisiti molto particolari. D3 rende estremamente facile lavorare con SVG.
Ricardo Cruz,

Hai provato Gephi?
MM

Potresti fornire un link alla domanda di CrossVal.
Jim,

Risposte:


4

Bene, sono passati molti mesi da questa richiesta di aiuto. Scrivo questa risposta alla mia richiesta per condividere la mia esperienza. Ho imparato ggplot2e ggvisanche così Shiny. Shinypuò funzionare con entrambi, ma ho trovato ggvispiù strutturato e lucido rispetto ggplot2. Qualcosa che è prevedibile come il primo viene sviluppato sulla base dell'esperienza di sviluppo del secondo. Inoltre, ggvissembra molto più veloce rispetto ggplot2alla generazione rapida di grafici / grafici, sembra molto più adatto a "Shiny" e alla creazione di un'applet. Tuttavia, il punto negativo è la mancanza di molte funzionalità in ggvisquanto il pacchetto è in fase di sviluppo e non è ancora maturato.

E molte grazie ai commenti qui. Ho controllato Gephi, non sarebbe d'aiuto. Ho creato la mia applet che funziona davvero bene, tuttavia alla fine sono arrivato a questo punto che ho bisogno di utilizzare strumenti più potenti come d3js, come si è già suggerito.


0

Il tempo vola! Dopo 2 anni di esperienza lavorativa, ora rispondo alla mia domanda con una migliore comprensione di Shiny, R e visualizzazione interattiva.

The Plotly è di gran lunga la risposta migliore. Può essere facilmente utilizzato dalla conversione ggplotly () dei grafici statici ggplot2 o direttamente imparando la logica dietro le funzioni Plotly.

Quest'ultimo caso è consigliato per applicazioni con diversi grafici.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.