2013-06-08 3 views
2

그래프의 노드와 에지 속성을 얻기 위해 yEd 그래프로 작성된 그래프 (XML) 파일을 처리해야합니다. networkX 라이브러리를 사용하여이를 수행해야합니다. 저는 파이썬에서 새로 왔고 networkX 라이브러리를 사용한 적이 없기 때문에 어떤 도움을 주시면 감사하겠습니다.파이썬에서 networkx로 XML 파일 처리하기

답변

3

YED에서 그래프와 파일> 저장을 만들 ... : 당신이 그래프 XML 파일이있는 경우 그만큼 쉽지처럼

, 그것은 본다 As ... GraphML 형식을 사용합니다. 말하자면, 'test.graphml'파일에 저장하십시오.

해당 디렉토리로 이동하고 실행 파이썬 : 읽고 노드의 속성을 처리 할 경우

>>> import networkx as nx 
>>> import matplotlib.pyplot as plt 
>>> G = nx.read_graphml('test.graphml') 
>>> nx.draw(G) 
>>> plt.show() 
>>> 

또한,이처럼로부터 데이터를 추출, 그들을 통해 반복 할 수

('n8', {'y': '178.1328125', 'x': '268.0', 'label': '8'}) 
('n9', {'y': '158.1328125', 'x': '0.0', 'label': '9'}) 
('n0', {'y': '243.1328125', 'x': '160.0', 'label': '0'}) 
('n1', {'y': '303.1328125', 'x': '78.0', 'label': '1'}) 
('n2', {'y': '82.1328125', 'x': '221.0', 'label': '2'}) 
('n3', {'y': '18.1328125', 'x': '114.0', 'label': '3'}) 
('n4', {'y': '151.1328125', 'x': '170.0', 'label': '4'}) 
('n5', {'y': '122.1328125', 'x': '85.0', 'label': '5'}) 
('n6', {'y': '344.1328125', 'x': '231.0', 'label': '6'}) 
('n7', {'y': '55.1328125', 'x': '290.0', 'label': '7'}) 
이 이런 식으로 뭔가가 발생합니다
for node in G.nodes(data=True): 
    print node 

(나는 이것을 테스트 할 YED에서 임의의 그래프를 생성) 하나가 액세스하려는 경우최종 예를 들어, X는 노드 n5 좌표

:

>>> print G['n5']['x'] 

당신에게 85.0을 줄 것이다.

+0

완벽! 무리 감사 – geolykos

1

나는이 질문을 읽고 생각했다 : doc for that package is REALLY good, 파이썬 표준에 의해서조차. 당신은 정말로 그것을 조사해야합니다. 이것은 당신이 시작할 수 있어야

>>> mygraph=nx.read_gml("path.to.file")

+0

@gauden : networkX 문서가 특별히 좋은 예입니다. – BenDundee

+0

감사합니다! 예 전체 튜토리얼을 읽었지만 networkx 명령은 xml 파일과 어떻게 상호 작용하지 않는지 설명합니다. 혼란 스러웠던 점은 무엇입니까 – geolykos

+0

설명서 링크가 작동하지 않습니다. [이 하나] (https://networkx.readthedocs.io/en/stable/overview.html) 그래도 않습니다. – IMLD

관련 문제