2015-04-21 57 views
3

最近我發現了ipython notebook這是一個強大的工具。作爲一名IT學員,我一直在等待用Python代表圖表。對於爲例,我想知道,如果有一個庫(如numpymatplotlib?),它可以從這個如何用ipython表示圖形

{ "1" : ["3", "2"], 
    "2" : ["4"], 
    "3" : ["6"], 
    "4" : ["6"], 
    "5" : ["7", "8"], 
    "6" : [], 
    "7" : [], 
    "8" : [] 
} 

像這樣得出:

(source : developpez.com)

是否有這樣的事?

+0

複製?我正在測試:http://stackoverflow.com/questions/19472530/representing-graphs-data-structure-in-python – FunkySayu

回答

5

您可以使用networkx,如果你需要渲染IPython的筆記本圖形,nxpd

import networkx as nx 
from nxpd import draw 
G = nx.DiGraph() 
G.graph['dpi'] = 120 
G.add_nodes_from(range(1,9)) 
G.add_edges_from([(1,2),(1,3),(2,4),(3,6),(4,5),(4,6),(5,7),(5,8)]) 
draw(G, show='ipynb') 

enter image description here

+0

謝謝,那正是我一直在尋找的。我只是關於有價值圖的一個小問題。我應該手動打印評估還是有參數?我找了它,但沒有在庫中找到'nxpd' – FunkySayu

+0

'nxpd'可以安裝'pip install nxpd' –

2

您可以使用pygraphviz

import pygraphviz 

G = pygraphviz.AGraph(directed=True) 
G.add_nodes_from(range(1,9)) 
G.add_edges_from([(1,2),(1,3),(2,4),(3,6),(4,5),(4,6),(5,7),(5,8)]) 
G.layout() 
G.draw('graph.png') 

然後在降價區塊:

![graph](graph.png) 

這使得到:

graph