Tôi đang cố tạo sơ đồ luồng của cấu trúc cây. Tôi đã có thể tạo ra các biểu đồ đại diện với networkx, nhưng tôi cần một cách để hiển thị cấu trúc cây khi tôi xuất một lô. Tôi đang sử dụng matplotlib.pylab để vẽ đồ thị.Có cách nào để đảm bảo đầu ra phân cấp từ NetworkX không?
Tôi cần hiển thị dữ liệu trong cấu trúc tương tự như được hiển thị here. Mặc dù tôi không có biểu đồ phụ.
Làm cách nào để đảm bảo cấu trúc như vậy?
ví dụ cho những người vô tín:
tôi đã có thể hiển thị các đồ thị với pylab và graphviz, nhưng không phải đề nghị cơ cấu cây tôi đang tìm kiếm. Tôi đã thử mọi networkx bố cục phải cung cấp, nhưng không có mạng nào hiển thị cấu trúc phân cấp . Tôi vừa không chắc chắn các tùy chọn /chế độ nào để cung cấp cho nó HOẶC nếu tôi cần sử dụng trọng số. Bất kỳ gợi ý nào cũng sẽ giúp ích cho bạn.
@jterrace:
Dưới đây là một phác thảo sơ bộ những gì tôi sử dụng để tạo ra các âm mưu trên. Tôi đã thêm một số nhãn, nhưng khác hơn là nó giống nhau.
import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_node("ROOT")
for i in xrange(5):
G.add_node("Child_%i" % i)
G.add_node("Grandchild_%i" % i)
G.add_node("Greatgrandchild_%i" % i)
G.add_edge("ROOT", "Child_%i" % i)
G.add_edge("Child_%i" % i, "Grandchild_%i" % i)
G.add_edge("Grandchild_%i" % i, "Greatgrandchild_%i" % i)
plt.title("draw_networkx")
nx.draw_networkx(G)
plt.show()
Ah ha! Vì vậy, tất cả những gì tôi cần là biểu đồ có hướng với bố cục 'chấm'. Tôi biết đó là một thứ rất nhỏ. Cảm ơn rất nhiều Aric! – max
Có cách nào tốt để gắn nhãn các nút tăng dần không? Ý tôi là, tôi tạo một đồ thị 'g = nx.full_rary_tree (2, 10)' Nếu tôi in các cạnh tôi nhận được: '[(0, 1), (0, 2), (1, 3), (1, 4), (2, 5), ...] 'nhưng nó sẽ hình dung chúng theo một thứ tự khác ... – CodeKingPlusPlus
Bạn muốn đặt hàng nào? Xem bfs_edges() và dfs_edges(). – Aric