Python利用Matplotlib繪圖無法顯示中文字體的解決方案
發(fā)現(xiàn)問題
我在利用Pycharm中的matplotlib庫進(jìn)行繪圖的時(shí)候,出現(xiàn)了一個(gè)問題,當(dāng)我將所繪的圖的橫,縱坐標(biāo),希望加上一個(gè)中文描述的時(shí)候,比如,'橫坐標(biāo)','縱坐標(biāo)'類似這樣的描述方法。出現(xiàn)了很多人都會出現(xiàn)的一個(gè)問題。
import matplotlib.pyplot as plt squares = [1, 4, 9, 16, 25] fig, ax = plt.subplots() ax.plot(squares, linewidth=3) #設(shè)置圖表標(biāo)題并給坐標(biāo)軸加上標(biāo)簽。 ax.set_title("主題", size=14) ax.set_xlabel("橫坐標(biāo)", size=14, color='red') ax.set_ylabel("縱坐標(biāo)", size=14, color='red') ax.tick_params(axis='both', labelsize=14) plt.show()
結(jié)果不出意外成為了這樣
最開始以為是我的pycharm軟件的語言配置出現(xiàn)了,問題,后來左改一下,右改一下,發(fā)現(xiàn)并沒有什么作用,喜歡對問題刨根問底的我,查詢很多資料發(fā)現(xiàn)出現(xiàn)這樣的問題是因?yàn)镸atplotlib庫中沒有與所輸入的中文字符匹配的語言,所以無法正常顯示中文,所以在這里把解決方案分享給大家。
pycharm顯示的錯(cuò)誤如下:
UserWarning: Glyph 32437 (\N{CJK UNIFIED IDEOGRAPH-7EB5}) missing from current font.
FigureCanvasAgg.draw(self)
解決方式:
首先應(yīng)該查詢一下matplotlib中擁有哪些語言??梢酝ㄟ^以下代碼實(shí)現(xiàn):
from matplotlib.font_manager import FontManager mpl_fonts = set(f.name for f in FontManager().ttflist) print('all font list get from matplotlib.font_manager:') for f in sorted(mpl_fonts): print('\t' + f)
然后軟件顯示結(jié)果中我們可以發(fā)現(xiàn)一系列包含中文的語言格式,例如Microsoft YaHei,YouYuan等
對于這個(gè)問題我就比較疑惑了,既然他有最后卻無法成功顯示,廢話不多說,直接上干貨,既然他有這種語言,那么我們在程序里,將他設(shè)置成包含中文語言就可以,實(shí)現(xiàn)方式如下:
import matplotlib matplotlib.rc("font", family='Microsoft YaHei')
這兩行代碼,就將顯示圖片時(shí)的語言設(shè)置成為了 Microsoft YaHei,也就是我們電腦里面常用的微軟雅黑這種字體
運(yùn)行程序,結(jié)果不出所料地顯示了中文:
import matplotlib.pyplot as plt import matplotlib matplotlib.rc("font", family='Microsoft YaHei') squares = [1, 4, 9, 16, 25] fig, ax = plt.subplots() ax.plot(squares, linewidth=3) #設(shè)置圖表標(biāo)題并給坐標(biāo)軸加上標(biāo)簽。 ax.set_title("主題", size=14) ax.set_xlabel("橫坐標(biāo)", size=14, color='red') ax.set_ylabel("縱坐標(biāo)", size=14, color='red') ax.tick_params(axis='both', labelsize=14) plt.show()
結(jié)果如下:
參閱文獻(xiàn): http://chabaoo.cn/article/246372.htm
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python圖片操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
總結(jié)
到此這篇關(guān)于Python利用Matplotlib繪圖無法顯示中文字體的解決方案的文章就介紹到這了,更多相關(guān)Matplotlib繪圖無法顯示中文內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django實(shí)現(xiàn)模型字段動(dòng)態(tài)choice的操作
這篇文章主要介紹了django實(shí)現(xiàn)模型字段動(dòng)態(tài)choice的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04python基于OpenCV模板匹配識別圖片中的數(shù)字
這篇文章主要介紹了python基于OpenCV模板匹配識別圖片中的數(shù)字,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03基于Python實(shí)現(xiàn)一個(gè)簡易的數(shù)據(jù)管理系統(tǒng)
為了方便的實(shí)現(xiàn)記錄數(shù)據(jù)、修改數(shù)據(jù)沒有精力去做一個(gè)完整的系統(tǒng)去管理數(shù)據(jù)。因此,在python的控制臺直接實(shí)現(xiàn)一個(gè)簡易的數(shù)據(jù)管理系統(tǒng),包括數(shù)據(jù)的增刪改查等等。感興趣的可以跟隨小編一起學(xué)習(xí)一下2021-12-12利用Python自動(dòng)監(jiān)控網(wǎng)站并發(fā)送郵件告警的方法
這篇文章介紹的是通過定時(shí)執(zhí)行python腳本,可以實(shí)現(xiàn)定期批量訪問網(wǎng)站,如果發(fā)現(xiàn)網(wǎng)站打不開,第一時(shí)間發(fā)郵件到管理員郵箱進(jìn)行預(yù)警。有需要的可以參考借鑒。2016-08-08使用Python paramiko模塊利用多線程實(shí)現(xiàn)ssh并發(fā)執(zhí)行操作
ssh是一個(gè)協(xié)議,OpenSSH是其中一個(gè)開源實(shí)現(xiàn),paramiko是Python的一個(gè)庫,實(shí)現(xiàn)了SSHv2協(xié)議(底層使用cryptography)。這篇文章主要介紹了使用Python paramiko模塊利用多線程實(shí)現(xiàn)ssh并發(fā)執(zhí)行操作,需要的朋友可以參考下2019-12-12python中使用正則表達(dá)式的后向搜索肯定模式(推薦)
這篇文章主要介紹了python里使用正則表達(dá)式的后向搜索肯定模式,本文通過代碼介紹的非常詳細(xì),包括語法介紹,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11