python matplotlib 中如何显示中文字符

                                                                                      永久解决办法


第一步:下载字体: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()

 

出现负号问题的图 

python matplotlib 中如何显示中文字符_第1张图片 

 正常图

python matplotlib 中如何显示中文字符_第2张图片

你可能感兴趣的:(python)