Я просто хочу, чтобы нарисовать простой граф с Python 3 NetworkX & Graphviz:Python 3 NetworkX draw_graphviz() не работает
import networkx as nx
G = nx.complete_graph(3)
nx.draw_graphviz(G)
Я использую ubuntu14.04 и IPython3 и, как обычно, я установить PIP3 NetworkX и работает код дал мне:
ImportError: pydot could not be loaded: http://code.google.com/p/pydot/
и я попытался установить pydotplus и запустить код:
/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
и 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
Я потратил некоторое время на поиски и не устанавливая другие pydots и комбинации pygraphviz уже, но все еще не повезло.
Хотя это может быть связано: pydot and graphviz error: Couldn't import dot_parser, loading of dot files will not be possible, что не решает проблему в Python 3.
ли это https: // группы .google.com/forum/#! topic/pygraphviz-discuss/mbK5voZ9-hs объясняют некоторые проблемы? – Joel
Я думаю, что pygraphviz зависит от разбора языка [DOT] (https://en.wikipedia.org/wiki/DOT_%28graph_description_language%29), который является задачей pydot? И теперь как-то это pydot, что несовместимо с Python3, а не pygraphviz. – pterodragon
FWIW, я достиг желаемого результата, выведя файл .dot, используя 'networkx.write_dot (G, 'graph.dot')', а затем выполните соответствующую команду вывода графика, например 'neato -T png graph.dot> graph.png '. (graphviz должен быть установлен заранее, см. справочную страницу для более) – pterodragon