Matplotlib中文亂碼問題解決方案

MatplotlibPython的一個2D繪圖庫,許多小伙伴第一次使用圖表繪制時,會發(fā)現(xiàn)中文亂碼或者小方塊的情況

原因是Matplotlib默認字體并不包含中文,所以必須設置為中文字體

準備工作:

  • 系統(tǒng):Windows
  • 環(huán)境管理器:Anaconda
  • IDE:Jupyter notebook

1.編寫如下代碼,獲取matplotlib包所在的配置文件的路徑

import matplotlib
matplotlib.matplotlib_fname() #輸出matplotlib包所在的配置文件的路徑

D:\Anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc

2.根據(jù)上面的路徑打開文件夾(根據(jù)自己實際的輸出路徑去操作)

D:\Anaconda3\lib\site-packages\matplotlib\mpl-data\fonts\ttf

3.加入中文字體


把中文字體文件放到文件夾里
  • 打開文件后可以看到滿屏的字體文件,但沒有一個是支持中文的
  • 這時我們需要在網(wǎng)上下載一個中文字體,小伙伴們下載自己喜歡的字體,這里以SimHei為例
  • 把中文字體文件放到文件夾里

到此,準備工作結(jié)束。解決方案有以下兩種:

一、簡單粗暴型

每次繪制圖表前輸入以下代碼

import matplotlib.pyplot as plt
import seaborn as sns

plt.rcParams['font.sans-serif'] = ['SimHei']  
# Matplotlib中設置字體-黑體,解決Matplotlib中文亂碼問題
plt.rcParams['axes.unicode_minus'] = False    
# 解決Matplotlib坐標軸負號'-'顯示為方塊的問題
sns.set(font='SimHei')                        
# Seaborn中設置字體-黑體,解決Seaborn中文亂碼問題

值得注意的是,輸入的字體名稱必須和上面準備工作中加入的字體文件名稱一致

二、一勞永逸型

1.根據(jù)上面準備工作獲取matplotlib包所在的配置文件的路徑,打開matplotlibrc文件(以記事本方式或其他編輯器方式打開)

D:\Anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc

打開matplotlibrc文件.jpg

2.找到#font.sans-senrif,去掉前面的#,并在后面寫上在準備工作加入的中文字體的名稱SimHei

添加文字名稱SimHei

3.找到#axes.unicode_minus,去掉前面的#,并在改為False

修改負號設置

修改完畢后記得保存關閉,然后重新啟動Jupyter notebook,等待奇跡的發(fā)生

  • 小伙伴們可以根據(jù)自己的情況,選擇一種解決方案


最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容