我有一個邊緣列表。做一個圖形的視覺表示
(1,2),(1,3),(1,4),(1,5),(1,6),(2,4),(2,7),(3,4),(3,7),(4,5),(4,7),(5,6),(6,7)
我怎樣才能得到這張圖的圖像?
它應該是自動的,因爲超過9000(不是開玩笑)這些列表。
我有一個邊緣列表。做一個圖形的視覺表示
(1,2),(1,3),(1,4),(1,5),(1,6),(2,4),(2,7),(3,4),(3,7),(4,5),(4,7),(5,6),(6,7)
我怎樣才能得到這張圖的圖像?
它應該是自動的,因爲超過9000(不是開玩笑)這些列表。
你可以用Python和networkx
來繪製它。
import networkx
import pylab
edges = [(1,2),(1,3),(1,4),(1,5),(1,6),(2,4),(2,7),(3,4),(3,7),(4,5),(4,7),(5,6),(6,7)]
G = networkx.Graph(data=edges)
networkx.draw(G)
pylab.show()
您應該閱讀pylab
的文檔,瞭解如何將圖形保存爲圖像而不使用GUI。您可以使用ast.literal_eval
解析原始列表。例如,如果它在一個文件的一行中存儲爲一個圖形,則可以執行以下操作:
with open('edges.txt') as f:
for line in f:
edges = list(ast.literal_eval(line))
# drawing goes here
如果我想在(a,b)邊緣'a'總是畫出高於'b',我該怎麼辦? – 2011-02-25 16:20:34