[PYTHON] networkx - 가장자리 속성에 따라 색상 / 너비 변경 - 일치하지 않는 결과
PYTHONnetworkx - 가장자리 속성에 따라 색상 / 너비 변경 - 일치하지 않는 결과
나는 그래프를 올바르게 생성 할 수 있었지만 다음과 같은 두 가지 코드 행에 대해 일관성없는 결과가 더 많이 테스트되었다.
nx.draw_circular(h,edge_color=[h.edge[i][j]['color'] for (i,j) in h.edges_iter()], width=[h.edge[i][j]['width'] for (i,j) in h.edges_iter()])
nx.draw_circular(h,edge_color=list(nx.get_edge_attributes(h,'color').values()), width=list(nx.get_edge_attributes(h,'width').values()))
첫 번째 줄은 일관된 결과를 얻지 만 두 번째 줄은 가장자리의 순서대로 잘못된 색상 / 크기를 생성합니다.
그러나 위의 두 줄은 모두 함수 호출에 의존하여 가장자리의 순서에 따라 특성을 반환합니다. 다른 결과가 나타나는 이유는 무엇입니까?
h [] [] []로 속성에 접근하는 것이 좀 어색 해 보인다. 도트 규칙에 따라 액세스 할 수 있습니까? h.edges ()의 가장자리에 edge.color.
또는 나는 무엇이라도 놓쳤 느냐?
해결법
-
==============================
1.드로잉 기능에 전달 된 가장자리의 순서가 중요합니다. 가장자리 키워드를 사용하여 지정하지 않으면 G.edges ()의 기본 순서를 갖게됩니다. 명시 적으로 다음과 같이 매개 변수를 지정하는 것이 가장 안전합니다.
드로잉 기능에 전달 된 가장자리의 순서가 중요합니다. 가장자리 키워드를 사용하여 지정하지 않으면 G.edges ()의 기본 순서를 갖게됩니다. 명시 적으로 다음과 같이 매개 변수를 지정하는 것이 가장 안전합니다.
import networkx as nx G = nx.Graph() G.add_edge(1,2,color='r',weight=2) G.add_edge(2,3,color='b',weight=4) G.add_edge(3,4,color='g',weight=6) pos = nx.circular_layout(G) edges = G.edges() colors = [G[u][v]['color'] for u,v in edges] weights = [G[u][v]['weight'] for u,v in edges] nx.draw(G, pos, edges=edges, edge_color=colors, width=weights)
결과는 다음과 같습니다.
from https://stackoverflow.com/questions/25639169/networkx-change-color-width-according-to-edge-attributes-inconsistent-result by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 내 데이터를 사용한 Tensorflow 오류 (0) | 2018.11.25 |
---|---|
[PYTHON] 키보드의 근접성을 고려한 Levenshtein과 같은 거리 편집 (0) | 2018.11.25 |
[PYTHON] 간단한 GUI를 만들기 위해 OpenCV와 PyQt를 결합하는 방법은 무엇입니까? (0) | 2018.11.25 |
[PYTHON] 이진 문자열에서 16 진수로 파이썬 변환 (0) | 2018.11.25 |
[PYTHON] Python과 Selenium 요소 WebElement 객체에서 텍스트를 가져 오는 방법은 무엇입니까? (0) | 2018.11.25 |