Tôi đang cố gắng sử dụng pygraphviz và networkx trong python (v 2.7) để tạo một bản đồ mạng. Tôi tìm thấy một kịch bản trông rất hữu ích trên stackoverflow:Làm thế nào để chạy neato từ pygraphviz trên 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')
tôi nhận được một lỗi trên dòng cuối cùng, về cơ bản nó không thể tìm thấy neato:
"ValueError: Program neato not found in path."
Các lỗi liên quan đến file agraph.py cho pygraphviz
, nhưng tôi không thể thấy bất kỳ điều gì có thể gây ra sự cố khi tôi xem qua agraph.py
Bất kỳ ý tưởng nào giải quyết vấn đề này? Tôi đang sử dụng các cửa sổ và IDLE cho mã hóa của tôi. Cảm ơn!
Trước tiên, cảm ơn bạn đã trả lời. Tôi đã cài đặt graphviz. Bây giờ, khi tôi chạy tập lệnh của mình, tôi nhận được lỗi này: Traceback (cuộc gọi gần đây nhất): Tệp "C: /Python27/2_5.py", dòng 22, trong G.draw ('/ tmp/out. png ', format =' png ', prog =' neato ') Tệp "C: \ Python27 \ lib \ site-packages \ pygraphviz \ agraph.py", dòng 1422, trong hình vẽ fh = self._get_fh (đường dẫn, 'w + b') Tệp "C: \ Python27 \ lib \ site-packages \ pygraphviz \ agraph.py", dòng 1458, trong _get_fh fh = tệp (đường dẫn, chế độ = chế độ) IOError: [Errno 2] Không có tệp hoặc thư mục nào như vậy: '/tmp/out.png' –
Amlanza
Có sự cố khi tạo tệp /tmp/out.png. Điều này có thể là do hệ điều hành./tmp là một thư mục bình thường trong tất cả các bản phân phối Linux, vì vậy nó sẽ chỉ cần tạo tập tin tha. Nếu bạn đang làm việc trên các cửa sổ thư mục có thể sẽ không có mặt, do đó lỗi (bạn đang cố gắng tạo tệp trong một thư mục không tồn tại). Nếu bạn thay thế nó chỉ bằng '" out.png "' mà không chỉ rõ thư mục, nó sẽ tạo nó trong thư mục hiện tại mà không cần phàn nàn. Hãy cho tôi biết nếu điều này làm các trick! – EnricoGiampieri