問題
????最近在CentOS 7使用python繪制報表,輸出后發(fā)現圖形中文亂碼,解決方法很簡單疏之。
查看操作系統(tǒng)是否含有字體庫
????上圖可知,系統(tǒng)中不包含字體庫暇咆,中文字體自然也就不存在了锋爪,那么接下來我們應該做的就是安裝字體庫及中文字體。
安裝字體庫
1.????yum -y install fontconfig
????當看到下圖所示爸业,即已安裝成功
2.? ??cd /user/share/
????下載完成后其骄,進入如上目錄下,可以看到fonts及fontconfig目錄(此目錄之前是不存在的)扯旷。
????好了拯爽,字體庫已安裝,接下來就要添加中文字體了钧忽。
添加中文字體
????CentOS中字體粗存儲在上圖所示的fonts目錄毯炮,我們需要做的就是下載中文字庫存放到該文件夾下逼肯,至于中文字體來源,可以從其他機器copy否副,也可以直接在網上下載,我是從windows機器直接下載的所需中文字體崎坊。
1.? ??字體下載
????在C:\Windows\Fonts目錄下找到所需字體备禀,copy出來,然后上傳到目標服務器奈揍。
? ? 以黑體及宋體為例:
2.? ? 字體上傳
? ? 在fonts目錄下新建文件夾曲尸,將字體移入后修改文件夾權限:
????mkdir chinese
????mv simhei.ttf chinese/
????chmod -R 755 /usr/share/fonts/chinese
????可安裝輔助工具搜索目錄中所有字體信息,并匯總生成fonts.scale文件
????yum -y install ttmkfdir
????ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir
3. 修改字體配置文件
????vim? /etc/fonts/fonts.conf
????配置文件中增加我們的chinese目錄
? ??保存退出后男翰,一定要記得刷新字體緩存,執(zhí)行:fc-cache
4.? ??通過fc-list看一下字體列表
????到這另患,字體庫安裝完成。
????對部分小伙伴來說到這就結束了蛾绎,但是還會有部分小伙伴沒能解決亂碼問題昆箕,這是因為matplotlib字體文件夾中不包含中文字體,我們繼續(xù)修改matplotlib配置文件租冠。
matplotlib新增中文字體
1.? ??將下載的字體復制一份放到matplotlib文件夾
????/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/fonts/ttf/
2.? ? 修改matplotlib配置文件
????vim /usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/matplotlibrc?
? ?<1> 查找并刪除font.family和font.sans-serif兩行前的#
????<2> 并在font.sans-serif后添加中文字體Microsoft YaHei, …(其余不變)
????<3> axes.unicode_minus? : False鹏倘;使其值為False;否則無法顯示負號
3.? ??刪除.matplotlib/cache里面的兩個緩存字體文件
4.? ? 重啟python
轉載:https://blog.csdn.net/wlwlwlwl015/article/details/51482065