詳解Python Matplot中文顯示完美解決方案
原因與現(xiàn)象
Matplot是一個功能強(qiáng)大的Python圖表繪制庫,很遺憾目前版本自帶的字體庫中并不支持中文字體。所以如果在繪制內(nèi)容中需要顯示中文,那么就會顯示為方格字符。
解決辦法
有一個較為完美的解決方案,通過掃描Matplot自帶字體庫以及系統(tǒng)字體庫,尋找能夠支持的中文字體,如果能夠找到的話,就設(shè)置第一個為Matplot的字體熟悉。
import matplotlib.pyplot as plt from matplotlib.font_manager import FontManager from pylab import mpl import subprocess def get_matplot_zh_font(): fm = FontManager() mat_fonts = set(f.name for f in fm.ttflist) output = subprocess.check_output('fc-list :lang=zh -f "%{family}\n"', shell=True) zh_fonts = set(f.split(',', 1)[0] for f in output.split('\n')) available = list(mat_fonts & zh_fonts) print '*' * 10, '可用的字體', '*' * 10 for f in available: print f return available def set_matplot_zh_font(): available = get_matplot_zh_font() if len(available) > 0: mpl.rcParams['font.sans-serif'] = [available[0]] # 指定默認(rèn)字體 mpl.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負(fù)號'-'顯示為方塊的問題
在繪圖之前,調(diào)用set_matplot_zh_font()設(shè)置一下就可以了。
效果
如下圖所示:
以上所述是小編給大家介紹的Python Matplot中文顯示完美解決方案詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
python 設(shè)置xlabel,ylabel 坐標(biāo)軸字體大小,字體類型
這篇文章主要介紹了python 設(shè)置xlabel,ylabel 坐標(biāo)軸字體大小,字體類型,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07python利用裝飾器進(jìn)行運(yùn)算的實(shí)例分析
本文主要是通過使用Python的裝飾器來做一個運(yùn)算的實(shí)例,來給大家詳細(xì)介紹下Python的裝飾器,非常的實(shí)用,有需要的小伙伴可以參考下。2015-08-08詳解多線程Django程序耗盡數(shù)據(jù)庫連接的問題
這篇文章主要介紹了多線程Django程序耗盡數(shù)據(jù)庫連接的問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10python BlockingScheduler定時任務(wù)及其他方式的實(shí)現(xiàn)
這篇文章主要介紹了python BlockingScheduler定時任務(wù)及其他方式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)Dropout應(yīng)用詳解解
這篇文章主要為大家介紹了Python深度學(xué)習(xí)中關(guān)于pytorch神經(jīng)網(wǎng)絡(luò)Dropout的應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10