노드와 엣지를 불러오기 위해선 G[n]의 형태로 기술하면 됩니다.
G[n]은 노드 n과 연결된 노드와 연결속성을 보여줍니다.
G[n][m]은 노드 n과 노드 m의 연결(엣지)의 속성을 보여줍니다.
import networkx as nx
G = nx.Graph()
G.add_nodes_from("1234")
G.add_edges_from([(1,2),(1,3),(1,4)])
print(G[1]) #노드 1과 연결되는 노드들 {}안은 속성값{2: {}, 3: {}, 4: {}}
print(G[2]){1: {}}
print(G[3]){1: {}}
print(G[1][2]) #엣지(1,2)의 속성값만 보여줌{1: {}}
print(G[2][3]) #존재하지 않는 엣지라 오류발생
아래 처럼 안전하게 엣지의 속성을 부여할 수 있습니다.
G.add_edge(2,3)
G[2][3]['color']='blue'
print(G[2][3])
{'color': 'blue'}
엣지에 부여된 속성을 이용해 루프문을 사용할 수도 있습니다.
fg = nx.Graph()
fg.add_weighted_edges_from([(1,2,0.125),(1,3,0.75),(2,4,1.2),(3,4,0.375)])
for (s,o,d) in fg.edges(data='weight'):
if d<0.5: print('(%d, %d, %.3f)'%(s,o,d))
(1, 2, 0.125)
(3, 4, 0.375)
그래프 속성 부여하기
g = nx.Graph(day="friday")
그래스 속성 수정하기
g.graph['day']='Monday'
노드 속성 부여/수정하기
g.add_node(1, time='5pm')
g.add_nodes_from([1], time='5pm')
g.node[1]['time']='5pm'
엣지 속성 부여/수정하기
Graph.add_edge(1,2, time='5pm')
Graph.add_edges_from((1,2), time="5pm")
Graph.add_edges_from([1,2,{'time':'5pm'}])
Graph[1][2]['time'] = '5pm'
Graph.edge[1][2]['time']='5pm'
- https://networkx.github.io/documentation/networkx-1.10/tutorial/tutorial.html [본문으로]
반응형