2012-11-27 2 views
2

노드 레이블이 중국어 인 그래프가 있습니다. draw_graphviz()을 사용하여 그려야하지만 이미지를 저장할 때 중국어 문자가 표시되지 않습니다. 대신에 흰색 블록으로 표시됩니다.networkx draw_graphviz 중국 레이블

글꼴을 설정하는 방법을 알고 싶습니다.

nx.draw_graphviz(G, font_size=6, node_size=80, font_family='serif', font_color='b', alpha=0.1)  
plt.savefig("community__large" + str(i) + ".png") 
plt.close() 

위를

내가 지금 사용하고있는 코드입니다.

답변

3

... 대신 모든 중국어 단어가 블록 흰색으로 표시되지 않습니다. 처음에는 plt.show()를 사용하는 경우,하지만 이미지를 저장할 때이 설명하는 동작을 복제 할 수에서

는 문자 흰색 블록으로 표시됩니다. 내 시스템 (OS X 10.8.2, Python 2.7.3)에서 SimHei라는 글꼴이이 문제를 해결하는 것으로 보입니다. matplotlib mailing list에서 Microsoft Yahei 글꼴도 잘 작동한다는 것을 알았지 만 시도하지는 않았습니다.

g = nx.Graph() 

g.add_edge('挪威'.decode('utf8'), '瑞典'.decode('utf8')) 
nx.draw_graphviz(g, font_family='SimHei', node_size=1000, 
    node_color='white') 
plt.savefig('plot.png') 

이 다음과 같은 이미지 제작 :

Graph with Chinese labels

주 내가 구글에서 한자를 가지고, 그래서 그것을 불쾌 아무것도 아니다 바랍니다.