1. 程式人生 > >python3.5下networkx畫圖中文節點問題

python3.5下networkx畫圖中文節點問題

因為做一個數據分析,需要用到網路圖,看到networkx很多人在用就安裝了一個,簡單試用下,很簡單,但是真正使用的時候,才發現matplotlib中文顯示是大方塊,不是亂碼,因此推斷應該是少了中文字型,和編碼無關。果斷問度娘,這時候看到了http://blog.csdn.net/fennvde007/article/details/13996989這篇文章,果斷照著樓主的方法試了,但是,但是發現3.5環境下,matplotlib檔案和博主的不太一樣,在pythonX\lib\site-packages\matplotlib\mpl-data\matplotlibrc資料夾下並沒有Vera.ttf這個字型檔案,但是還是直接從windows下複製了箇中文字型過去,並命名為Vera.ttf,但是還是不可行,遂 試圖找到matplotlib呼叫的字型檔案,還真找到了。matplotlib預設呼叫的為

DejaVuSans.ttf字型檔案,只要從windows拷貝一個你想要的字型檔案,替換DejaVuSans.ttf,就沒問題了。

測試程式碼還是用原博主的程式碼:

# coding = utf-8
from pylab import *
import networkx as nx
g=nx.Graph()
g.add_edge('張三','李四')
g.add_edge('張三','王五')
nx.draw(g,with_labels=True)
plt.show()

顯示結果: