标签:networkx
python XX install
easy_install SQLObject
pip install simplejson --安装包 pip install --upgrade simplejson --升级包 pip uninstall simplejson --卸载包
pip install numpy pip install matplotlib pip install networkx
import networkx as nx G=nx.Graph() D=nx.DiGraph() M=nx.MultiGraph()
G.add_node(1) G.add_node('first_node') #这里用一个对象多为key来唯一区别一个点 #我们还能够用一个列表来批量加入点 G.add_nodes_from([1,2,3]) #还可以用一个图对象作为点,嵌入到其他图中 G.add_node(D) #这里D作为一个点的key #或者把一个图的所有点赋予另一个图 G.add_nodes_from(D) #这里返回D的所有点,赋予G #与加入相同的传递方法,我们也可以删除点 G.remove_node(1) G.remove_nodes_from([1,2,3])
G.add_edge(1,2) #表示1,2之间有一条边。 #如果不存在点1,2,则会自动加入点集合。 #或者以元组的形式作为输入 e=(1,2) G.add_edge(*e) #这里的*代表吧元组解包(unpack),当作一个个的值扔到函数中去。 #如果不解包,等价于 #G.add_edge(e)=G.add_edge((1,2))与参数传递的方式不符。 #类似的,我们还可以使用包含元组的列表来传递参数 G.add_edges_from([(1,2),(2,3)]) #我们还可以报一个图的边赋予另一个图 G.add_edges_from(H) #删除 G.remove_edge(1,2) G.remove_edges_from([(1,2),(2,3)])
node_list = G.nodes() edge_list = G.edges() #可以返回包含点与边的列表 node = G.node[‘first_node’] #如上根据key返回点 edge = G.edge['first_node']['second_node'] #同样的方法,返回两个key之间的边
G.add_node(1,time='5pm') #在添加时跟上属性 G.add_nodes_from([1,2,3],time='5pm') #批量添加点是,跟上统一的属性 G.add_nodes_from([(3,{'time':'5pm'}), (4,{'time':'4pm'})]) #或者写成元组列表[(key,dict),(key,dict)]的形式 G.node[1]['time'] #根据字典key访问属性值。 #给边添加属性也类似 G.add_edge(1,2,time='3am') G.add_edges_from([(1,2,{'time'='5pm'}),(2,3,{'time'=3am})]) #批量赋予属性 G.edge[1][2][‘time’] #访问 #我们还可以使用特定的函数批量返回属性,如 time = nx.get_edge_attributes(G,'time') #返回得到以元组为key,time属性为值得一个字典 time[(1,2)]
nx.connected_components(G) #返回列表形式的G的全连通分量,每个分量一个子列表
nx.draw(G) #画出图G matplotlib.show() #显示出来
标签:networkx
原文地址:http://blog.csdn.net/ice110956/article/details/38796529