Sto cercando di utilizzare pygraphviz e networkx in python (v 2.7) per creare una mappa di rete. Ho trovato uno script che sembra molto utile su StackOverflow:Come eseguire neato da pygraphviz su Windows
import networkx as nx
import numpy as np
import string
import pygraphviz
dt = [('len', float)]
A = np.array([(0, 0.3, 0.4, 0.7),
(0.3, 0, 0.9, 0.2),
(0.4, 0.9, 0, 0.1),
(0.7, 0.2, 0.1, 0)
])*10
A = A.view(dt)
G = nx.from_numpy_matrix(A)
G = nx.relabel_nodes(G, dict(zip(range(len(G.nodes())),string.ascii_uppercase)))
G = nx.to_agraph(G)
G.node_attr.update(color="red", style="filled")
G.edge_attr.update(color="blue", width="2.0")
G.draw('/tmp/out.png', format='png', prog='neato')
ottengo un errore sull'ultima riga, in fondo non riesce a trovare Neato:
"ValueError: Program neato not found in path."
L'errore fa riferimento al file agraph.py per pygraphviz
, ma non riesco a vedere nulla che potrebbe causare il problema quando guardo attraverso agraph.py
Qualche idea su come risolvere questo problema? Sto usando Windows e IDLE per la mia codifica. Grazie!
Innanzitutto, grazie per aver risposto. Ho installato Graphviz. Ora, quando eseguo il mio script ottengo questo errore: Traceback (ultima chiamata ultima): File "C: /Python27/2_5.py", riga 22, in G.draw ('/ tmp/out. png ', format =' png ', prog =' neato ') File "C: \ Python27 \ lib \ site-packages \ pygraphviz \ agraph.py", riga 1422, nel disegno fh = self._get_fh (percorso, 'w + b') File "C: \ Python27 \ lib \ site-packages \ pygraphviz \ agraph.py", riga 1458, in _get_fh fh = file (percorso, modalità = modalità) IOErrore: [Errno 2] Nessun file o directory di questo tipo: '/tmp/out.png' –
Amlanza
Ha qualche problema nel creare il file /tmp/out.png. Ciò potrebbe essere dovuto al sistema operativo./tmp è una directory normale in tutta la distribuzione linux, quindi sarà sufficiente creare il file. Se stai lavorando su Windows, quella directory probabilmente non sarà presente, quindi l'errore (stai cercando di creare il file in una directory che non esiste). Se lo sostituisci con solo "" out.png "' senza specificare la directory, dovresti crearlo nella directory corrente senza lamentarti. Fammi sapere se questo fa il trucco! – EnricoGiampieri