2012-11-27 82 views
2

我有一個圖形,其中節點標籤是中文的。我想用draw_graphviz()來繪製它,但是當保存圖像時,不會顯示中文字符。他們反而顯示爲白色塊。networkx draw_graphviz with chinese label

我只是想知道如何設置字體。

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我發現字體微軟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

注意,我從谷歌中國文字翻譯,所以我希望這不是什麼攻勢。