1. 场景描述
linux服务器下安装了Anaconda3,执行Pyhton的K-means算法,结果出现如下图的中文字符乱码。上次已经解决了,忘记记录解决流程了,这次配置了一台新的服务器,又出现,默认不配置的话matplotlib画图就会乱码,这次把解决过程记录下,希望能帮助自己和有需要的朋友。
2. 解决方案
网上有好几个解决方案,只介绍自己实战可行的。
1. 查看matplotlib字体位置
python
import matplotlib
print(matplotlib.matplotlib_fname())
#记录下来,字体位置我的是:/home/ruanjianlaowang/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
exit()
2. 上传字体到服务器
cd /home/ruanjianlaowang/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf
通过ftp或者其他方式,将字体传上去,我们传的是:simhei.ttf
3. 删除字体缓存
cd ~/.cache/matplotlib
rm -rf *
4. 重启python应用
nohup python k-means.py &
说明: 假如还没生效,再更改个配置文件试试。(我们以前没更改这个配置文件,但是这次发生了个插曲,这次用的jmeter测试,一直还是乱码,后来改了这个还是不行,原来是jmeter的问题)
cd /home/ruanjianlaowang/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data
vi matplotlibrc
font.family : sans-serif #去掉前面的#
font.serif : simhei, DejaVu Serif, #新加了simhei
插曲
这次用的jmeter测试,发现都更改了还是乱码,后来jmeter的请求中增加了utf-8参数才可以。
I’m 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!