Visualizzazione di grafici di collegamento molto grandi


25

Sto cercando uno strumento per visualizzare grafici di collegamenti direzionali molto grandi. Al momento ho ~ 2 milioni di nodi con ~ 10 milioni di bordi. Ho provato alcune cose diverse, ma la maggior parte impiega ore a fare anche grafici di nodi da 100k

Cosa ho provato:
ho trascorso una giornata con gephi, ma i nodi da 80 KB impiegano circa un'ora per essere aggiunti e l'applicazione diventa quasi inutile.

Eventuali suggerimenti?

Una visualizzazione interattiva sarebbe un vantaggio.


Sarebbe utile se affermassi ciò che hai già provato. Hai provato a Graphviz?
Wolfgang Bangerth,

1
Graphviz è quello che vorrei provare per primo. Non ho idea se funzionerà con qualcosa di quelle dimensioni. Ovviamente avrai bisogno di qualcosa che usi una rappresentazione sparsa per la matrice di adiacenza, ma sembra inimmaginabile che un pacchetto software non lo farebbe.
David Ketcheson,

Sto dando a Graphviz un colpo in questo momento, sembra un po 'più promettente, ma non credo che permetta l'interazione
madmaze

2
Hai provato a interpretare il grafico come una matrice sparsa e visualizzarlo con MATLAB o la funzione 'spia' di Octave? 10 milioni di voci diverse da zero sono alla portata di desktop moderatamente potenti. Questo ti importerebbe anche per la dissezione spettrale (la ricerca di partizioni del tuo grafico potrebbe semplificarti la visualizzazione).
Jack Poulson,

1
hai guardato in visita?
pyCthon,

Risposte:


13

Graphviz dovrebbe funzionare. Credo che le immagini associate alle matrici della collezione di matrici sparse dell'Università della Florida siano state visualizzate usando sfdp, un algoritmo di visualizzazione di grafi diretto dalla forza sviluppato da Yifan Hu. La maggior parte delle matrici della raccolta ha un tempo di calcolo associato alla generazione di una visualizzazione corrispondente, quindi potresti essere in grado di cercare matrici i cui grafici hanno caratteristiche simili a quelle che desideri visualizzare. Ad esempio, un grafico con ~ 2,1 milioni di nodi e ~ 3 milioni di bordi ha impiegato Hu ~ 36000 per generare, o 10 ore. Sebbene non sia chiaro quale hardware sia stato utilizzato per generare il grafico, è probabilmente una supposizione ragionevole che sia stato utilizzato un desktop o un laptop e i tempi almeno ti darebbero un'idea approssimativa di quanto tempo potrebbe richiedere il rendering del grafico. L'algoritmo di Hu sembra essere uno degli algoritmi di visualizzazione all'avanguardia (lo ha pubblicato nel 2005), ma non essendo un esperto nel campo, non posso dire se esistono algoritmi migliori. Questo algoritmo è incluso con Graphviz come opzione ed è progettato per essere utilizzato su grafici di grandi dimensioni come quello che descrivi.


Molto pulito. Sembra che Barnes-Hut sia utilizzato per simulare le forze tra i nodi del grafico, quindi suppongo che un'implementazione FMM parallela potrebbe produrre un significativo aumento di velocità. D'altra parte, il metodo di Hu sembra avere una struttura multilivello simile a MeTiS, che tende ad essere difficile da parallelizzare.
Jack Poulson,

Sì, quando ho guardato il documento, ho anche pensato che un'implementazione FMM parallela potesse essere interessante, ma non ero sicuro di quanto sarebbe stata pratica, dal momento che non ho molta esperienza con gli algoritmi paralleli.
Geoff Oxberry,

3
@JackPoulson - tosse
Aron Ahmadia,

@GeoffOxberry - vedi link sopra
Aron Ahmadia

1
@JackPoulson - Scoprirai che gli algoritmi di layout orientati alla forza sono piuttosto sensibili al seeding iniziale, c'è stato un bel lavoro svolto da altri gruppi per riformulare il problema per layout più estetici.
Aron Ahmadia,


5

Vedi Graphinsight 1.2, può gestire facilmente con milioni di nodi ed è interattivo e in 3D.

Puoi anche tracciare grafici con milioni di nodi e spigoli con metodi algebrici ad alta efficienza o metodi a forza forzata. È disponibile in versione di prova per la valutazione ( Dichiarazione di non responsabilità: sono uno degli autori del programma ).

www.graphinsight.com


1
@linelio - Grazie per la risposta e benvenuto su scicomp! Si prega di consultare le regole sulla promozione e assicurarsi di rivelare chiaramente eventuali connessioni personali quando si fanno raccomandazioni.
Aron Ahmadia,

5

Ecco alcuni consigli e link raccolti nel tempo:

  • Per i nodi 2M è difficile consigliare qualsiasi cosa non conosca l'hardware, e forse è necessaria una certa riduzione dei dati, ma prendendo cose che sono disponibili gratuitamente, zGrViewer potrebbe adattarsi alle tue esigenze di visualizzazione (richiede GraphViz).
  • Seguendo l'idea di @pyCthon, suggerisco di dare un'occhiata anche a VisIt per una certa interattività nella stampa.
  • Sto visitando nuovamente il igraphpacchetto per il linguaggio statistico R , che include algoritmi di layout accurati ( Fruchterman-Reingold e Kamada-Kawai ), tra gli altri.
  • La libreria Layout grafico di grandi dimensioni è ora su SourceForge.

0

Abbiamo creato http://www.github.com/graphistry/pygraphistry per consentirci di farlo dalla maggior parte dei browser e dei notebook. L'idea è di utilizzare WebGL per eseguire il rendering dei grafici di grandi dimensioni (pan / zoom / ecc.) E scaricare la maggior parte del calcolo in tempo reale (layout, filtro, ecc.) Su un cloud GPU. È simile a Gephi o Cytoscape, ma con una maggiore attenzione ai grandi grafici e all'analisi dei dati e all'integrazione con il web e i notebook.


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.