2013-03-27 3 views
14

Ho un grafico con 690.024 nodi e 7,398 042 bordi e voglio visualizzarlo. Ho usato il punto e il gephi di graphviz ma entrambi terminano a causa della poca memoria. C'è un modo per risolvere questo problema?Visualizza grafici grandi

+0

Quanta RAM hai a disposizione? in che formato sono i grafici? –

+0

Ho 24 GB di RAM e attualmente il mio grafico è in formato punto, ma non posso cambiarlo in nulla. – AliBZ

risposta

13

Gephi ha un limite basato sulla quantità di memoria allocata in JVM. Controllare questo http://gephi.org/users/requirements/ per apportare modifiche.
Vorrei suggerire di utilizzare Stanford Network Analysis Platform (SNAP).
La libreria SNAP di base è scritta in C++ e ottimizzata per le massime prestazioni e rappresentazione grafica compatta.
Si adatta facilmente a reti massive con centinaia di milioni di nodi e miliardi di spigoli. Gestisce in modo efficiente grafici di grandi dimensioni, calcola proprietà strutturali, genera grafici regolari e casuali e supporta attributi su nodi e spigoli. Oltre alla scalabilità per i grafici di grandi dimensioni, un ulteriore punto di forza di SNAP è che i nodi, i bordi e gli attributi in un grafico o in una rete possono essere modificati dinamicamente durante il calcolo.

1

Prova Tulip. Ho scaricato l'origine e ricostruito, è facile quando hai installato Qt SDK.

modificare penso che il processore graphviz per grandi grafici dovrebbe essere sfdp, vedere il primo discussione (caricamento molto grande grafico non)

+0

Il tulipano funziona bene per i grafici più piccoli, ma per il mio grafico si è bloccato dopo un giorno. – AliBZ

2

Si può prendere in considerazione Hive plots se avete bisogno di visualizzare le relazioni tra tutti i bordi per un grafico di queste dimensioni Se è necessario costruire un grafico in cui vengono visualizzati nodi e spigoli, si consiglia di provare igraph, che ha un'interfaccia Python e R. Ho costruito alcuni grafici molto grandi usando igraph through R, ma non riesco a ricordare i requisiti di memoria (questo probabilmente dipenderebbe comunque dai dati).

2

Abbiamo creato http://www.github.com/graphistry/pygraphistry per abilitare l'operazione dalla maggior parte di browser e notebook. L'idea è di utilizzare WebGL per il rendering dei grandi grafici (pan/zoom/ecc.) E scaricare la maggior parte del calcolo in tempo reale (layout, filtro, ecc.) In un cloud GPU. È simile a Gephi e Cytoscape, ma si concentra maggiormente sul ridimensionamento di grandi grafici e sull'ottimizzazione dell'analisi dei dati e sull'integrazione in app Web e ambienti notebook.

1

LGL usato per lavorare in tal caso per le visualizzazioni statiche - almeno qualche anno fa :)

http://lgl.sourceforge.net/ http://www.ncbi.nlm.nih.gov/pubmed/15184029?dopt=Abstract

ho usato che ad esempio, per una cifra: https://static-content.springer.com/image/art%3A10.1186%2F1471-2105-7-276/MediaObjects/12859_2006_Article_1015_Fig2_HTML.jpg

nella carta : http://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-7-276 con dati con un numero paragonabile di nodi e spigoli.

+0

Questo è davvero gentile da parte tua, giovanotto. Sii ancora così gentile e coraggioso e mandami una mail con il tuo vero nome. Mi piacerebbe parlare con il tuo supervisore di tesi. Pozdrowienia, Michał Okoniewski, dr hab, ETH di Zurigo. – MichalO