永久解決辦法
第一步:下載字體:msyh.ttf (微軟雅黑)
1> 放在系統字體文件夾下: /usr/share/fonts
2> 同時也複製了放在matplotlib的字體文件夾:
/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/fonts/ttf/
第二步:修改matplotlib配置文件:
找到 /usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/matplotlibrc ,
用文字編譯器打開文件,查找並刪除font.family和font.sans-serif兩行前的#,並在font.sans-serif後添加中文字體Microsoft YaHei, …(其餘不變)
刪除.matplotlib/cache裏面的兩個緩存字體文件,C:\Users\你的用戶名.matplotlib
重啓Python(很重要)
字體對應的名字
win7 操作系統默認支持以下中文字體:
字體 代碼
黑體 SimHei
仿宋 FangSong
楷體 KaiTi
微軟雅黑體 Microsoft YaHei
宋體 SimSun
如果裝了 office,那麼還支持以下字體:
字體 代碼
隸書 LiSu
幼圓 YouYuan
華文細黑 STXihei
華文楷體 STKaiti
華文宋體 STSong
華文中宋 STZhongsong
華文仿宋 STFangsong
方正舒體 FZShuTi
方正姚體 FZYaoti
華文彩雲 STCaiyun
華文琥珀 STHupo
華文隸書 STLiti
華文行楷 STXingkai
華文新魏 STXinwei
配置
我們可以使用 rc 配置(rcParams)來自定義圖形的各種默認屬性。
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
舉例
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family']='SimHei'
plt.rcParams['font.sans-serif']=['SimHei']
import matplotlib
matplotlib.rcParams['axes.unicode_minus']=False #解決負號問題
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif']=['SimHei']
x=np.arange(-10,10,0.001)
y=1/(1+np.exp(-x))
plt.xlabel("x")
plt.ylabel("y")
plt.title("Sigmoid激活函數和其導數")
plt.plot(x,y,color='r',label="Sigmoid激活函數")
y=np.exp(-x)/pow((1+np.exp(-x)),2)
plt.plot(x,y,color='b',label="Sigmoid激活函數的導數")
plt.legend()#將plot標籤裏面的圖注印上去
plt.show()
出現負號問題的圖
正常圖