一、問題描述:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用來正常顯示中文標籤
plt.rcParams['axes.unicode_minus'] = False # 用來正常顯示負號
使用matplotlib畫圖,在Windows下正常,在linux環境下中文亂碼
Font family ['sans-serif'] not found.Falling back to DejaVu Sans
二、解決方案:
在linux環境中的matplotlib裏裝入SIMHEI.TTF字體即可
三、解決步驟
1、下載SIMHEI.TTF字體
2、把字體放到指定目錄
# python 終端獲取路徑
import matplotlib
print(matplotlib.matplotlib_fname())
#/root/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
# 下載好的SIMHEI.TTF放到該目錄下
# (shell)
mv ./SIMHEI.TTF /root/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/
3、刪除matplotlib的緩衝目錄
# python 終端獲取緩存路徑
import matplotlib
print(matplotlib.get_cachedir())
# /root/.cache/matplotlib
# 刪除緩衝目錄
# (shell)
rm -rf /root/.cache/matplotlib
4、修改matplotlibrc文件
# (shell)
vim /root/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
# 修改的內容
font.family : sans-serif
# 去掉前面的#
font.sans-serif : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
# 去掉前面的#,並在冒號後面添加SimHei
axes.unicode_minus : False
# 去掉前面的#,並將True改爲False