兩行代碼解決Jupyter Notebook中文不能顯示的問題

1、為什麼不顯示中文:

Matplotlib默認不支持中文字符,因為默認的英文字體無法顯示漢字。

圖片顯示情況:

2、解決方案:

在代碼塊加上這兩行代碼:

plt.rcParams[‘font.sans-serif']=[‘SimHei'] #用來正常顯示中文標簽
plt.rcParams[‘axes.unicode_minus']=False #用來正常顯示負號

圖片顯示情況:

補充jupyter-notebook 中matplotlib不支持中文的問題(Linux)

前言

問題就不截圖瞭, jupyter-notebook中,使用plt畫出的圖像,中文都是小方格(亂碼)

解決方法如下

1. Linux安裝字體

把Windows的字體C:/Windows/Fonts復制到Linux系統的存放字體路徑/usr/share/fonts下, 如圖:

cd到/usr/share/fonts/Fonts,也就是拷貝來的文件夾, 建立字體索引信息,更新字體緩存,讓字體生效, 運行命令:

mkfontscale && mkfontdir && fc-cache -fv && source /etc/profile && fc-list |wc -l

查看字體fc-list :lang=zh

2. 添加配置

這裡有很多版本,比如:

import matplotlib
matplotlib.use('qt4agg')
#指定默認字體
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['font.family']='sans-serif' #解決負號'-'顯示為方塊的問題
matplotlib.rcParams['axes.unicode_minus'] = False

我的設置是:

from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['STSong']
mpl.rcParams['axes.unicode_minus'] = False

如圖,可以正常顯示中文瞭

3. 如果還不行,清除緩存

如果添加瞭第二部的配置,但還是顯示中文亂碼, 那麼有可能是緩存的問題, 執行rm -r ~/.cache/matplotlib

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: