在机器学习中,数据可视化分析是非常重要的一环,也是工程人士必须具备的技能。matplotlib是python语言中经常用到的可视化工具,但令人头疼的是,matplotlib在显示中文方面会遇到很多问题,这种问题在windows操作系统下很容易解决,相信不少伙伴很容易找到解决方案,但在linux下,比较麻烦,不同的发行版,解决方案也不同。博主在本期介绍,在deepin下,如何解决matplotlib中文字体显示问题。
首先,需要下载字体,以中文字体simhei为例,下载网址为http://font.chinaz.com/161017462260.htm,进行下载,下载完成后进行解压,解压后,为了方便,可将simheittf.ttf重新命名为SimHei.ttf,这里便完成了第一步。
接下来,双击SimHei.ttf,进行安装,安装完成后,系统便有了该字体,但是matplotlib 还没有,进入python环境,在这里,博主将matplotlib装在了虚拟环境中,字体显示目录如图所示:
将SimHei.ttf复制到该目录下,返回上上一级目录,如图:
修改蓝色框中的配置文件,可以使用vim打开,通过查找功能找到以下文字,进行修改:
保存之后,退出。
最后,执行命令,进入matplotlib的缓存目录下:
紧接着执行如下命令,清除缓存。
接下来,先演示一个一般的程序,下面的程序为深度学习中常用的sigmiod函数图像:
import numpy as np
import matplotlib.pyplot as plt
def sigmoid(x):
return 1. / (1. + np.exp(-x))
def plot_sigmoid():
x = np.arange(-10, 10, 1)
y = sigmoid(x)
plt.plot(x, y)
plt.xlabel("特征")
plt.ylabel("标签")
plt.title("激活函数sigmoid")
plt.grid()
plt.show()
if __name__ == '__main__':
plot_sigmoid()
结果如下:
可以看到,中文字体没有显现。
接下来在python程序中指定字体参数,指定字体所在的目录,添加代码后的修改程序如下所示:
import numpy as np
import matplotlib.pyplot as plt
# 导入字体属性包
from matplotlib.font_manager import FontProperties
# 指定中文字体所在的位置
font = FontProperties(fname=r"/home/deeplearningaiwq/AIENV/Pytorch1x/lib/python3.5/site-packages/matplotlib/mpl-data/fonts/ttf/SimHei.ttf", size=14)
def sigmoid(x):
return 1. / (1. + np.exp(-x))
def plot_sigmoid():
x = np.arange(-10, 10, 1)
y = sigmoid(x)
plt.plot(x, y)
plt.xlabel("特征", FontProperties=font) # 指定字体属性参数
plt.ylabel("标签", FontProperties=font)
plt.title("激活函数sigmoid", FontProperties=font)
plt.grid()
plt.show()
if __name__ == '__main__':
plot_sigmoid()
运行结果如下图所示:
这样,便能够成功显示中文字体了,博主也是查阅了很多资料,由于比较麻烦,因此,记录下来,希望能够帮助到大家。