linux中如何徹底解決matplotlib中文亂碼問題

小編給大家分享一下linux中如何徹底解決matplotlib中文亂碼問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

成都創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè)|網(wǎng)頁維護|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計與制作經(jīng)驗,為許多企業(yè)提供了網(wǎng)站定制設(shè)計服務(wù),案例作品覆蓋崗?fù)?/a>等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身策劃品質(zhì)網(wǎng)站。

matplotlib是python繪圖最基礎(chǔ)的工具包,但是一直以來matplotlib對中文都不是非常友好,默認情況下繪圖時中文顯示是亂碼。

之前使用windows的時候只需要更改matplotlibrc配置文件即可直接解決,但是當要在linux生產(chǎn)環(huán)境中批處理的時候就遇到了很多問題,有些linux系統(tǒng)沒有中文字體,而且大多數(shù)提供的中文字體是ttc格式,而matplotlib只支持ttf格式,而不支持ttc格式字體。

linux和mac os中的問題是相同的,下面就說一下如何徹底解決這一問題:

Windows

windows中是最簡單,直接修改matplotlibrc配置文件中的font相關(guān)的參數(shù)設(shè)置即可

Linux

假設(shè)你沒有root權(quán)限,只是在個人用戶中安裝(有root權(quán)限會更方便)。

首先查看系統(tǒng)中是否已經(jīng)有支持的中文字體

linux中如何徹底解決matplotlib中文亂碼問題

可以看到支持的中文字體都是ttc格式,畫出來的圖是無法顯示中文

linux中如何徹底解決matplotlib中文亂碼問題

下面我們安裝新字體,從windows拷貝微軟雅黑ttf文件,放到當前用戶主目錄 .fonts目錄下(如果沒有此目錄自行創(chuàng)建),放好字體文件之后執(zhí)行 fc-cache更新字體緩存,然后查看系統(tǒng)字體就能找到新添加的字體了

linux中如何徹底解決matplotlib中文亂碼問題

把相應(yīng)的字體文件拷貝到 matplotlib 的 mpl-data/fonts/ttf 目錄下

修改 matplotlib 的配置文件 matplotlibrc 中 font.serif 和 font.sans-serif 選項(這是有襯線字體和無襯線字體,關(guān)于有襯線字體和無襯線字體的區(qū)別,可自行搜索)

注意:字體名稱是 Microsoft YaHei, 關(guān)于字體名稱在fc-list :lang=zh輸出信息中可以看到,如果錯了的話是不會生效的。

linux中如何徹底解決matplotlib中文亂碼問題

然后畫圖中文顯示即不會顯示亂碼

linux中如何徹底解決matplotlib中文亂碼問題

Mac OS X

OS X系統(tǒng)添加操作和Linux的操作類似,只是字體放置位置為 /Users/用戶名/Library/Fonts/ 目錄下,然后執(zhí)行 fc-cache 更新字體緩存,同時把字體文件放到 matplotlib/mpl-data/fonts/ttf 目錄下,然后剩下的操作和Linux系統(tǒng)相同。

三個系統(tǒng)我都測試過,最終都成功了。關(guān)于是否需要拷貝文件到 mpl-data 路徑的文件中,這個可能不是必要的,因為我在mac os x上拷貝到了 mpl-data/fonts 目錄下,而不是 mpl-data/fonts/ttf 目錄下,但是仍然成功顯示中文了,所以可能只需要添加到系統(tǒng)字體中即可。如果不行的話,還是將字體拷貝到 mpl-data/fonts/ttf 目錄中。

關(guān)于是否需要更新 matplotlib 字體緩存的問題,這個不是最關(guān)鍵的問題,可以刪除主目錄下 .matplotlib 文件中的字體緩存文件,或者直接重啟ipython 也可以。

看完了這篇文章,相信你對“l(fā)inux中如何徹底解決matplotlib中文亂碼問題”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

本文標題:linux中如何徹底解決matplotlib中文亂碼問題
文章起源:http://bm7419.com/article22/jjcicc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)頁設(shè)計公司、品牌網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司