最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

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

一共有兩種解決方案,我強烈推薦第一種,因為更為方便,繪圖時不用再寫別的參數(shù),調(diào)用一次即可,第二種方法也會寫出來但是更多的是作為了解,主要因為相比之下太麻煩

方法一:

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

  • X軸月份顯示為中文
  • 增加X軸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()

不出意外繪制出來的圖是這樣的。。。。。

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

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

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

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

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

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

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

重點來了

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

# 查詢當(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)

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

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

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

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

其實這些都是中文啊啊啊啊啊啊~~~~激動的我把代碼增加一行再試試,隨便選了個字體

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()

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

方法二:

找到字體的所在路徑

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

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

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不顯示中文問題的文章就介紹到這了,更多相關(guān)Python matplotlib不顯示中文內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python字符串替換實例分析

    Python字符串替換實例分析

    這篇文章主要介紹了Python字符串替換的方法,實例對比分析了單個字符替換與字符串替換的相關(guān)技巧,非常簡單實用,需要的朋友可以參考下
    2015-05-05
  • 通過Python實現(xiàn)控制手機詳解

    通過Python實現(xiàn)控制手機詳解

    如今python是非常多人學(xué)習(xí)的,而手機也幾乎人手一部。對于很多Python學(xué)習(xí)者,想用python來完成android手機中各種炫酷的的控制,adb是必不可缺少的工具之一
    2021-10-10
  • pandas讀取CSV文件時查看修改各列的數(shù)據(jù)類型格式

    pandas讀取CSV文件時查看修改各列的數(shù)據(jù)類型格式

    這篇文章主要介紹了pandas讀取CSV文件時查看修改各列的數(shù)據(jù)類型格式,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • python 按不同維度求和,最值,均值的實例

    python 按不同維度求和,最值,均值的實例

    今天小編就為大家分享一篇python 按不同維度求和,最值,均值的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 深入解析Python的Tornado框架中內(nèi)置的模板引擎

    深入解析Python的Tornado框架中內(nèi)置的模板引擎

    模板引擎是Web開發(fā)框架中負(fù)責(zé)前端展示的關(guān)鍵,這里我們就來以實例深入解析Python的Tornado框架中內(nèi)置的模板引擎,來學(xué)習(xí)如何編寫Tonardo的模板.
    2016-07-07
  • Python爬蟲必備之Xpath簡介及實例講解

    Python爬蟲必備之Xpath簡介及實例講解

    xpath是一種在XML文檔中定位元素的語言,常用于xml、html文件解析,比css選擇器使用方便,下面這篇文章主要給大家介紹了關(guān)于Python爬蟲必備之Xpath簡介及實例的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Python爬蟲 bilibili視頻彈幕提取過程詳解

    Python爬蟲 bilibili視頻彈幕提取過程詳解

    這篇文章主要介紹了Python爬蟲 bilibili視頻彈幕提取過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • 詳解Python中字典的增刪改查

    詳解Python中字典的增刪改查

    這篇文章主要為大家介紹了?Python字典的增刪改查,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Python中的函數(shù)參數(shù)傳遞問題

    Python中的函數(shù)參數(shù)傳遞問題

    這篇文章主要介紹了Python中的函數(shù)參數(shù)傳遞問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 淺談一下四則運算和二叉樹

    淺談一下四則運算和二叉樹

    這篇文章主要淺談一下四則運算和二叉樹,因為總是見到把?四則運算表達(dá)式?用?樹?的形式來展示,所以就想著給定一顆表達(dá)式樹,計算它的結(jié)果出來,需要的朋友可以參考下
    2023-04-04

最新評論

桦川县| 九龙县| 扎兰屯市| 阿荣旗| 苍山县| 苍梧县| 肃南| 峨山| 惠安县| 五华县| 宜城市| 宕昌县| 剑河县| 基隆市| 保德县| 丰都县| 化德县| 安徽省| 安徽省| 句容市| 富宁县| 辽阳县| 辽阳县| 平遥县| 南康市| 镇原县| 湄潭县| 太仆寺旗| 上虞市| 石狮市| 黄陵县| 紫金县| 来安县| 拜泉县| 盱眙县| 五河县| 阿图什市| 肃宁县| 辽源市| 宝坻区| 得荣县|