亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何徹底解決Python中matplotlib不顯示中文的問(wèn)題詳解(顯示方框)

 更新時(shí)間:2022年04月28日 10:20:59   作者:田宇  
Matplotlib繪制圖像顯示中文的時(shí)候,中文會(huì)變成小方格子,下面這篇文章主要給大家介紹了關(guān)于如何徹底解決Python中matplotlib不顯示中文問(wèn)題的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

在很長(zhǎng)一段時(shí)間里用Python繪圖,matplotlib都不能很好的顯示中文,起初是認(rèn)為我的pycharm里的設(shè)置問(wèn)題,但是發(fā)現(xiàn)同樣的問(wèn)題在spyder里也同樣的出現(xiàn)了,雖然有的地方可以用英文實(shí)在不行用拼音。。。但是在作圖這里沒(méi)有中文真的是太不方便了,機(jī)緣巧合下在年前終于找到問(wèn)題的根源了,于是乎愛(ài)刨根問(wèn)底兒的我把整個(gè)過(guò)程的解決方法分享給大家~~

一共有兩種解決方案,我強(qiáng)烈推薦第一種,因?yàn)楦鼮榉奖?,繪圖時(shí)不用再寫別的參數(shù),調(diào)用一次即可,第二種方法也會(huì)寫出來(lái)但是更多的是作為了解,主要因?yàn)橄啾戎绿闊?/p>

方法一:

示例:繪制每月的商品數(shù)量

  • X軸月份顯示為中文
  • 增加X(jué)軸Y軸中文,圖標(biāo)標(biāo)題
from matplotlib import pyplot as plt
a = ["一月份","二月份","三月份","四月份","五月份","六月份"]
b=[56.01,26.94,17.53,16.49,15.45,12.96]
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(a)),b)

#繪制x軸
plt.xticks(range(len(a)),a)
plt.xlabel("月份")
plt.ylabel("數(shù)量")
plt.title("每月數(shù)量")
plt.show()

不出意外繪制出來(lái)的圖是這樣的。。。。。

繪制出來(lái)的圖片,在所有應(yīng)該顯示為中文的地方均顯示亂碼

之前一直以為是系統(tǒng)中字符集支持的問(wèn)題,其實(shí)并不是這樣,根本原因是matplotlib內(nèi)置的原因,直到我知道了matplotlib.rc這個(gè)方法,其實(shí)這個(gè)我也不太會(huì)用,那么我們看一下這個(gè)的源碼寫的是該如何使用(學(xué)會(huì)看源碼真的很重要?。。?/p>

首先它肯定是能設(shè)置字體和顏色的,有關(guān)字體我們?cè)趺丛O(shè)置呢?我們接著往下看

有關(guān)字體的設(shè)置找到了,可以接收為字典,它利用了**font接收了一下字典,其實(shí)我們我們完全可以一行搞定,當(dāng)然我更喜歡橫著寫,例如下面這樣其實(shí)也是OK的~~

matplotlib.rc("font",family='MicroSoft YaHei',weight="bold")

那么我們加入這行代碼在跑一下試試

果不其然產(chǎn)生了一個(gè)報(bào)錯(cuò),那么我們?yōu)槭裁窗袽icroSoft YaHei(這個(gè)不就是微軟雅黑嗎,電腦里都有啊)這個(gè)加進(jìn)去會(huì)報(bào)錯(cuò)呢?

重點(diǎn)來(lái)了

其實(shí)報(bào)錯(cuò)只有一個(gè)原因就是他沒(méi)有這個(gè)字體,雖然電腦里有這個(gè)字體但是不代表matplotlib里也有這個(gè)字體,所以解決matplotlib中的中文顯示問(wèn)題主要就是要找到它所內(nèi)置支持的字體,那么我們首先查看一下它的內(nèi)置字體,運(yùn)行以下代碼查看所支持的字體

# 查詢當(dāng)前系統(tǒng)所有字體
from matplotlib.font_manager import FontManager
import subprocess
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)

運(yùn)行后他會(huì)顯示出所有支持的字體,大約100多種。。。。具體的我就不一一列舉了

但是你會(huì)發(fā)現(xiàn)這個(gè)都是英文字體啊,中文字體在哪里,其實(shí)我當(dāng)時(shí)也非常困擾,但是細(xì)心的我發(fā)現(xiàn)了其中的奧秘,>>>其實(shí)他是有中文的只不過(guò)是用拼音寫的....<<<

其中你會(huì)發(fā)現(xiàn)有如下字體:

  • DengXian
  • FangSong
  • KaiTi
  • LiSu
  • YouYuan
  • Adobe Fan Heiti Std
  • Adobe Fangsong Std
  • Adobe Heiti Std
  • Adobe Kaiti Std

其實(shí)這些都是中文啊啊啊啊啊啊~~~~激動(dòng)的我把代碼增加一行再試試,隨便選了個(gè)字體

from matplotlib import pyplot as plt
#新增加的兩行
import matplotlib
matplotlib.rc("font",family='YouYuan')

a = ["一月份","二月份","三月份","四月份","五月份","六月份"]
b=[56.01,26.94,17.53,16.49,15.45,12.96]
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(a)),b)

#繪制x軸
plt.xticks(range(len(a)),a)
plt.xlabel("月份")
plt.ylabel("數(shù)量")
plt.title("每月數(shù)量")
plt.show()

完美支持,也就是增加了兩行代碼就解決了中文的顯示問(wèn)題,歸根到底還是很多沒(méi)沒(méi)有找到matplotlib所支持的內(nèi)置字體方法,或是找到了不知道怎么用

方法二:

找到字體的所在路徑

from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")

但是他有一個(gè)弊端就是在每個(gè)圖上都需要在多家個(gè)參數(shù)調(diào)用才行,否則的話就會(huì)顯示不出來(lái)

plt.xticks(range(len(a)),a,fontproperties=my_font)

plt.xlabel("月份",fontproperties=my_font)
plt.ylabel("數(shù)量",fontproperties=my_font)
plt.title("每月數(shù)量",fontproperties=my_font)

總結(jié)

到此這篇關(guān)于如何徹底解決Python中matplotlib不顯示中文問(wèn)題的文章就介紹到這了,更多相關(guān)Python matplotlib不顯示中文內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python日期時(shí)間Time模塊實(shí)例詳解

    Python日期時(shí)間Time模塊實(shí)例詳解

    這篇文章主要介紹了Python日期時(shí)間Time模塊,結(jié)合實(shí)例形式詳細(xì)分析了Python日期時(shí)間Time模塊常用函數(shù)及相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • python連接數(shù)據(jù)庫(kù)的方法

    python連接數(shù)據(jù)庫(kù)的方法

    這篇文章主要為大家詳細(xì)介紹了python連接數(shù)據(jù)庫(kù)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Python采集某評(píng)論區(qū)內(nèi)容的實(shí)現(xiàn)示例

    Python采集某評(píng)論區(qū)內(nèi)容的實(shí)現(xiàn)示例

    本文主要介紹了Python采集某評(píng)論區(qū)內(nèi)容的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 探究數(shù)組排序提升Python程序的循環(huán)的運(yùn)行效率的原因

    探究數(shù)組排序提升Python程序的循環(huán)的運(yùn)行效率的原因

    這篇文章主要介紹了探究數(shù)組排序提升Python程序的循環(huán)的運(yùn)行效率的原因,作者用代碼實(shí)踐了多個(gè)小片段來(lái)進(jìn)行對(duì)比解釋,需要的朋友可以參考下
    2015-04-04
  • 使用Pytorch來(lái)擬合函數(shù)方式

    使用Pytorch來(lái)擬合函數(shù)方式

    今天小編就為大家分享一篇使用Pytorch來(lái)擬合函數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python爬蟲之Selenium下拉框處理的實(shí)現(xiàn)

    Python爬蟲之Selenium下拉框處理的實(shí)現(xiàn)

    這篇文章主要介紹了Python爬蟲之Selenium下拉框處理的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python遞歸函數(shù)特點(diǎn)及原理解析

    Python遞歸函數(shù)特點(diǎn)及原理解析

    這篇文章主要介紹了Python遞歸函數(shù)特點(diǎn)及原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • pytorch索引查找 index_select的例子

    pytorch索引查找 index_select的例子

    今天小編就為大家分享一篇pytorch索引查找 index_select的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • 在python?腳本下解析json數(shù)據(jù)

    在python?腳本下解析json數(shù)據(jù)

    這篇文章主要介紹了在python?腳本下解析json數(shù)據(jù),json數(shù)據(jù)包括JSONObject和JSONArray,下文關(guān)于其解析的內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • python合并已經(jīng)存在的sheet數(shù)據(jù)到新sheet的方法

    python合并已經(jīng)存在的sheet數(shù)據(jù)到新sheet的方法

    今天小編就為大家分享一篇python合并已經(jīng)存在的sheet數(shù)據(jù)到新sheet的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12

最新評(píng)論