Visualizzazione di un grafico con un milione di vertici


17

Qual è lo strumento migliore da utilizzare per visualizzare (disegnare vertici e bordi) un grafico con 1000000 vertici? Ci sono circa 50000 spigoli nel grafico. E posso calcolare la posizione dei singoli vertici e bordi.

Sto pensando di scrivere un programma per generare un svg. Altri suggerimenti?


puoi provare Graphviz ... non sono sicuro che si
ridimensiona

Spero che una risposta a questa domanda possa toccare come sono stati realizzati grafici come questi: medium.com/i-data/…
shadowtalker

Ciao @Cici, di solito le domande sugli strumenti consigliati sono sconsigliate su questo e altri siti SE, in quanto invitano solo molte opinioni.
Sean Owen,

Risposte:


19

Suggerisco anche un Gephisoftware ( https://gephi.github.io ), che sembra essere abbastanza potente. Alcune informazioni aggiuntive sull'uso Gephicon reti di grandi dimensioni sono disponibili qui e, più in generale, qui . Cytoscape( http://www.cytoscape.org ) è un'alternativa a Gephi, essendo un'altra piattaforma popolare per l'analisi e la visualizzazione di reti complesse.

Se desideri lavorare con le reti in modo programmatico (inclusa la visualizzazione) in R, Python o C / C ++, puoi controllare la igraphraccolta di librerie. A proposito di R, potresti trovare interessanti i seguenti post sul blog: sull'uso di R con Cytoscape ( http://www.vesnam.com/Rblog/viznets1 ) e sull'uso di R con Gephi ( http://www.vesnam.com/ Rblog / viznets2 ).

Per un elenco completo dei software di analisi e visualizzazione della rete , inclusi alcuni confronti e recensioni, si consiglia di controllare le seguenti pagine: 1) http://wiki.cytoscape.org/Network_analysis_links ; 2) http://www.kdnuggets.com/software/social-network-analysis.html ; 3) http://www.activatenetworks.net/social-network-analysis-sna-software-review .


8

https://gephi.github.io/ afferma che può gestire un milione di bordi. Se il tuo grafico ha 1000000 vertici e solo 50000 bordi, la maggior parte dei vertici non avrà comunque bordi.

In effetti, le specifiche Gephi sono il doppio del tuo esempio: "Reti fino a 50.000 nodi e 1.000.000 di bordi"


8

Penso che, per far Gephifronte a problemi di mancanza di memoria, avrai bisogno di almeno 8 GB di RAM. Sebbene il numero di bordi non sia estremamente grande.

Forse, lo strumento più appropriato in questo caso sarebbe GraphViz. È uno strumento da riga di comando per le visualizzazioni di rete e presumibilmente sarebbe più tollerante alle dimensioni del grafico. Inoltre, come ricordo, in GraphVizesso è possibile utilizzare coordinate pre-calcolate per facilitare i calcoli.

Ho provato a trovare esempi reali di utilizzo GraphVizcon enormi grafici, ma non ci sono riuscito. Anche se ho trovato discussioni simili sulla scienza computazionale .


4

Resoconti: ho finito per codificare graphml e usare yEd per la visualizzazione (solo perché ho familiarità con questa combinazione. Scommetto che gephi o graphviz funzionerebbero bene e potrebbero anche essere migliori). Da quando ho calcolato la posizione di tutti i nodi, la memoria non è stata un grosso problema. La codifica graphml è un po 'più semplice rispetto alla codifica svg, poiché non devo specificare esplicitamente il posizionamento dei bordi.


2

PajekXXL è progettato per gestire reti enormi. Ma Pajek è anche un tipo di programma bizzarro con un'interfaccia non intuitiva.


2

Consiglierei di usare Graphexp. Gephi dipende fortemente dalla RAM del tuo computer, che ovviamente è limitata. Graphexp invece mostra solo un numero limitato di nodi, attraverso i quali è possibile navigare verso altri nodi. Ho visualizzato un grafico con 700 milioni di vertici usando Graphexp come interfaccia utente e Janusgraph con HBase come memoria back-end. https://github.com/bricaud/graphexp


Veramente? per me inizia a soffocare quando
provo

La velocità dipende principalmente dal database back-end e dalla capacità di elaborazione. Graphexp è solo UI.
Sandeep Kumar,

Mi rendo conto che, ma per "soffocamento" intendo che la frequenza di aggiornamento scenderà a 1-2 fps quando si animano i nodi che appaiono sullo schermo. Potrebbe essere utile notare che si tratta di una versione recente di Safari
BrDaHa,

0

Dai un'occhiata a Graphistry , sono in grado di gestire nodi e bordi 1Mil.


Sì, Graphistry è l'unico strumento visivo interattivo per grafici di grandi dimensioni perché esegue end-to-end su GPU per te.
Leo Meyerovich il
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.