Ho problemi con la visualizzazione di grafici di grandi dimensioni in python e networkx. Il grafico che si desidera visualizzare è diretto e ha una dimensione del bordo e del vertice di 215.000 Dalla documentazione (che è collegata alla pagina principale) è chiaro che networkx supporta la stampa con matplotlib
e GraphViz. In matplotlib
e NetworkX il disegno è fatto come segue:visualizzazione grafico di grandi dimensioni con python e networkx
import
networkx as nx
import matplotlib.pyplot as plt
#Let g be a graph that I created
nx.draw(g)
ottengo un errore di memoria dopo nx.draw(g)
, poi si farebbe normalmente plt.show()
o PLT [una_qualche_funzione] per salvare il file in un formato per un efficiente e così via. .
Successivamente ho provato GraphViz. Dal wikipedia page il formato dot
viene utilizzato per grafi orientati e ho creato un file di punti:
nx.write_dot(g, "g.dot")
Questo ha funzionato bene e ho avuto un file di punti nella mia directory corrente che è di 12 megabyte. Poi ho fatto funzionare il programma di dot
(parte di graphviz per creare un file PostScript):
dot -Tps g.dot -o g.ps
Questo rallenta il mio computer, corre per qualche minuto e quindi visualizzare Killed
nel terminale. Quindi non ha mai potuto eseguire ... Durante la lettura della documentazione per graphviz sembra che solo i grafici non orientati fossero supportati per la visualizzazione di grafici di grandi dimensioni.
Domanda: Con questi due tentativi falliti qualcuno può mostrarmi come visualizzare il mio grafico di grandi dimensioni utilizzando Python e NetworkX con circa 215.000 vertici e 215.000 bordi? Ho il sospetto che con Graphviz dovrò produrre un formato intermedio (anche se questo non dovrebbe essere così difficile non sarà facile come una funzione integrata) e poi usare un altro strumento per leggere il formato intermedio e quindi produrre una visualizzazione .
Quindi, sto cercando il seguente:
- grafico di uscita da NetworkX in un formato intermedio
- Con nuovo pacchetto/software/strumento (idealmente python-interattivo) leggere il formato intermedio e visualizzare la grande grafico
Se hai bisogno di maggiori informazioni fammi sapere!
Immagina di riuscire a creare un'immagine PostScript di questo grafico di grandi dimensioni. Cosa ne faresti? Supponi di aver speso 10 secondi guardando ciascun nodo. ci vorrebbero quasi 25 giorni per ispezionare l'intero grafico. Mi sembra piuttosto che visualizzare l'intera cosa (come una immagine PostScript) è necessario un modo per "ingrandire" su sottografi di interesse. – unutbu
Mi piacerebbe avere un'idea di come appare il mio grafico. Dopo che ho un'idea mi concentrerò su sottografi, cricche, comunità ... – CodeKingPlusPlus