2014-11-18 2 views
0

이 네트워크의 각 노드에 대한 네트워크 및 속성 센티멘트가 있습니다. 이 속성은 근사치로 -1에서 1까지 변하는 부동 소수점입니다. 이 애트리뷰트에 따라 네트워크의 노드를 콜론 (collor)으로 만들려고합니다. 즉, 값이 1에 가까울수록 색상이 강해지고 (알파 1) 또는 속성이 -1에 가까울수록 색상이 약합니다 (알파 근접 0) 또는 빨간색. 어떻게해야합니까? 그것은 다음과 같은 오류를 반환networkx를 사용하여 속성 값에 따라 노드의 색상을 매핑하는 방법은 무엇입니까?

#sentiment 
G.node[tweet['user'][ u'id']]['sentiment'] = 0.92762 

#plot 
color_map = {0:'#3B5998', 1:'#E4AF48'} 
nx.draw_networkx(G, node_color=[color_map[G.node[node]['match']] for node in G], with_labels=False) 

: 01 :

Traceback (most recent call last): 
File "graph_better.py", line 38, in <module> 
nx.draw_networkx(G, node_color=[color_map[G.node[node]['sentiment']] for node in G], with_labels=False) 
KeyError: -0.351317 

답변

1

귀하의 color_map는 두 개의 키와 사전입니다 여기에

내 코드의 일부이다. 그 사이의 값은 사전의 올바른 키가 아니므로 KeyError이됩니다.

코드를 수정하려면 먼저 node_color 인수에 값 목록을 전달해야합니다. 귀하의 경우가 될 것입니다 :

node_color = [G.node[node]['sentiment'] for node in G] 

둘째, 예를 들어, cmap 인수를 사용해야합니다

cmap = plt.cm.Reds_r 

그래서 결국 당신이해야합니다 :

nx.draw_networkx(G, node_color = [G.node[node]['sentiment'] for node in G], cmap = plt.cm.Reds_r, with_labels = False) 

이제 당신에게 남은 유일한 것은 cmap에 적절한 컬러 맵을 전달하는 것입니다.

관련 문제