2010-08-25 11 views
10

http://imgur.com/7wiRw.pngCome posso specificare una dimensione di output esatta per il mio grafico networkx?

Quanto sopra è l'output del mio grafico corrente. Tuttavia, devo ancora gestire ciò che sto cercando di ottenere. Ho bisogno di generare il mio grafico in una dimensione più grande in modo che ogni nodo/bordo possa essere visualizzato con facilità.

Ho provato nx.draw(G, node_size=size), ma questo aumenta solo la dimensione dei nodi, non la distanza tra nodi e spigoli.

risposta

4

Poiché sembra che il layout di rete sia troppo "disordinato", è possibile provare diversi algoritmi di layout grafico e vedere quale si adatta meglio.

>>> nx.draw(G) 
>>> nx.draw_random(G) 
>>> nx.draw_circular(G) 
>>> nx.draw_spectral(G) 
>>> nx.draw_spring(G) 

Inoltre, se si dispone di troppi nodi (diciamo alcune migliaia) visualizzare il grafico può essere un problema.

18

Si potrebbe provare sia nodi più piccoli/tipi di carattere o tela più grande. Ecco un modo per fare entrambe le cose:

import matplotlib.pyplot as plt 
import networkx as nx 
G = nx.cycle_graph(80) 
pos = nx.circular_layout(G) 
# default 
plt.figure(1) 
nx.draw(G,pos) 
# smaller nodes and fonts 
plt.figure(2) 
nx.draw(G,pos,node_size=60,font_size=8) 
# larger figure size 
plt.figure(3,figsize=(12,12)) 
nx.draw(G,pos) 
plt.show() 
Problemi correlati