永久解決matplotlib中文亂碼
來源:簡說Python
作者:老表
大家好,我是老表,今天給大家分享一個永久解決matplotlib中文亂碼的筆記,希望對大家有所幫助。
首先需要你的電腦安裝好了Python環(huán)境,并且安裝好了Python開發(fā)工具。
如果你還沒有安裝,可以參考以下文章:
如果僅用Python來處理數(shù)據(jù)、爬蟲、數(shù)據(jù)分析或者自動化腳本、機器學(xué)習(xí)等,建議使用Python基礎(chǔ)環(huán)境+jupyter即可,安裝使用參考Windows/Mac 安裝、使用Python環(huán)境+jupyter notebook
如果想利用Python進行web項目開發(fā)等,建議使用Python基礎(chǔ)環(huán)境+Pycharm,安裝使用參考:Windows下安裝、使用Pycharm教程,這下全了 和 Mac下玩轉(zhuǎn)Python-安裝&使用Python/PyCharm 。
首先下載下黑體字體庫,這里我已經(jīng)下載好了,大家在微信公眾號簡說Python回復(fù):字體,即可獲取下載地址。
查看matplotlib安裝目錄
import matplotlib
# 查了安裝路徑
print(matplotlib.get_data_path())
'''
/Users/hhh/Library/Python/3.7/lib/python/site-packages/matplotlib/mpl-data
'''
將下載好的字體復(fù)制到 mpl-data/fonts/ttf目錄下

修改matplotlib設(shè)置文件,在 mpl-data/matplotlibrc,利用文本模式打開即可,修改三個地方,修改好后保存即可:
# 第一個地方:font.family: sans-serif這一句前面的#去掉
font.family: sans-serif
# 第二個地方:在:(冒號)后加一個SimHei
font.sans-serif: SimHei, DejaVu Sans, Bitstream ...
# 第三個地方:axes.unicode_minus后的值改為False
axes.unicode_minus: False
我們需要重新加載字體配置 如果你的matplotlib是3+以下,可以使用以下代碼實現(xiàn)該步操作:
from matplotlib.font_manager import _rebuild
_rebuild()
如果你的matplotlib是3+及以上,在這些版本中私有方法_rebuild已被棄用,所以沒法使用上面方法進行重新加載,不過更簡單的,你只需要重新啟動下你的python環(huán)境就可以了。
以jupyter為例子,點一下圖中按鈕重啟內(nèi)核,再運行代碼即可顯示中文。
要是還是不行,查看下matplotlib緩存存放位置,然后刪除,再重啟jupyter notebook試試。
# matplotlib緩存的目錄
import matplotlib
print(matplotlib.get_cachedir())
'''
/Users/hhh/.matplotlib
'''
這個小繪圖示例也給到大家方便檢測。
# 隨便繪制一個餅圖
import matplotlib.pyplot as plt
fig1 = plt.figure() # 先創(chuàng)建一個圖像對象
plt.pie([0.5, 0.3, 0.2], # 值
labels=['我', '你', '它'], # 標(biāo)簽
explode=(0, 0.2, 0), # (爆裂)距離
autopct='%1.1f%%', # 顯示百分?jǐn)?shù)格式
shadow=True) # 是否顯示陰影
plt.show()
--End--
文章點贊超過100+
我將在個人視頻號直播(老表Max)
帶大家一起進行項目實戰(zhàn)復(fù)現(xiàn)
掃碼即可加我微信
老表朋友圈經(jīng)常有贈書/紅包福利活動
點擊上方卡片關(guān)注公眾號,回復(fù):1024 領(lǐng)取最新Python學(xué)習(xí)資源 學(xué)習(xí)更多: 整理了我開始分享學(xué)習(xí)筆記到現(xiàn)在超過250篇優(yōu)質(zhì)文章,涵蓋數(shù)據(jù)分析、爬蟲、機器學(xué)習(xí)等方面,別再說不知道該從哪開始,實戰(zhàn)哪里找了 “點贊”就是對博主最大的支持

