永久解决办法
第一步:下载字体: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()
出现负号问题的图
正常图