Ich möchte nur mit Python eine einfache Grafik zeichnen 3 NetworkX & graphviz:Python 3 NetworkX draw_graphviz() funktioniert nicht
import networkx as nx
G = nx.complete_graph(3)
nx.draw_graphviz(G)
Ich verwende ubuntu14.04 und IPython3 und wie üblich Ich habe PIP3 installieren NetworkX und laufen gab der Code mir:
ImportError: pydot could not be loaded: http://code.google.com/p/pydot/
und ich versuchte pydotplus und laufen Sie den Code installieren:
/usr/local/lib/python3.4/dist-packages/networkx/drawing/nx_pydot.py in pydot_layout(G, prog, root, **kwds)
294
295 if isinstance(node,list):
--> 296 node=node[0]
297 pos=node.get_pos()[1:-1] # strip leading and trailing double quotes
298 if pos != None:
IndexError: list index out of range
auch
und pydot2:
/usr/local/lib/python3.4/dist-packages/pydot.py in write(self, path, prog, format)
1893 prog = self.prog
1894
-> 1895 dot_fd = file(path, "w+b")
1896 if format == 'raw':
1897 data = self.to_string()
NameError: name 'file' is not defined
verbrachte ich einige Zeit in der Suche und andere pydots und pygraphviz Kombinationen bereits, aber noch kein Glück installieren.
Während dies in Beziehung gesetzt werden: pydot and graphviz error: Couldn't import dot_parser, loading of dot files will not be possible, das löst nicht das Problem in Python 3.
Does this https: // Gruppen .google.com/forum/#! topic/pygraphviz-discuss/mbK5voZ9-hs erklären etwas von dem Problem? – Joel
Ich denke, pygraphviz hängt von der Analyse der [DOT-Sprache] ab (https://en.wikipedia.org/wiki/DOT_%28graph_description_language%29), was ist die Aufgabe von pydot? Und nun ist es irgendwie pydot, das mit Python3 und nicht mit pygraphviz inkompatibel ist. – pterodragon
FWIW, Ich erreichte das gewünschte Ergebnis, indem ich eine .dot-Datei mit 'networkx.write_dot (G, 'graph.dot') ausgab und dann den entsprechenden graphviz-Ausgabebefehl wie' neato -T png graph.dot> graph.png ausführte '. (graphviz muss vorher installiert werden; siehe die man-Seite für mehr) – pterodragon