2013-01-11 45 views
16

Vẽ một đồ thị bè lũ vớiLàm thế nào để tăng khoảng cách giữa các nút cho networkx.spring_layout

import networkx as nx 
.... 
nx.draw(G, layout=nx.spring_layout(G)) 

tạo ra hình ảnh sau đây:

enter image description here

Rõ ràng, khoảng cách giữa các nút (ví dụ, cạnh chiều dài) cần phải tăng lên. Tôi đã googled này và thấy this suggestion đây:

Đối với một số thuật toán bố trí có một "quy mô" tham số có thể giúp đỡ. ví dụ.

Trong 1: nhập khẩu networkx như nx

Trong 2: G = nx.path_graph (4)

Trong [3]: pos = nx.spring_layout (G) #default quy mô = 1

Trong [4]: ​​nx.draw (G, pos)

Trong [5]: pos = nx.spring_layout (G, quy mô = 2) # khoảng cách đôi giữa tất cả các nút

Trong [6]: nx.draw (G, pos)

Tuy nhiên, tham số scale dường như không có tác dụng.

phương pháp đúng để có được một bản vẽ tốt hơn là gì?

+0

Ngoài các câu trả lời được cung cấp dưới đây, tôi cũng đã tìm thấy rằng việc tăng kích thước hình giúp. – ericmjl

Trả lời

22

Được rồi, câu trả lời của tôi là quá muộn cho câu hỏi này. Nhưng giải pháp cho vấn đề này nằm trong phiên bản NetworkX 1.8 mà vẫn chưa được phát hành, nhưng có sẵn thông qua git hub.

Làm như sau để tăng khoảng cách giữa các nút:

pos = nx.spring_layout(G,k=0.15,iterations=20) 
    # k controls the distance between the nodes and varies between 0 and 1 
    # iterations is the number of times simulated annealing is run 
    # default k =0.1 and iterations=50 

Tweak với các thông số này để xem cách nó hoạt động. Nhưng bất chấp này không có đảm bảo rằng tất cả các nút đều là phòng không chồng chéo