Linux服务器Python Matplotlib中文乱码修复指南
本文详解在Linux服务器环境下使用Python进行K-means算法绘图时,Matplotlib出现中文乱码的解决方案。通过查找字体路径、上传simhei.ttf字体、清除缓存及修改配置文件等步骤,有效解决图表中文显示异常问题,并附带JMeter测试时的UTF-8参数设置建议。
Linux下Python Matplotlib中文乱码修复指南
1. 场景描述
在安装了Anaconda3的Linux服务器环境中运行Python的K-means算法时,生成的图表出现中文字符乱码现象。此前虽曾解决该问题但未做记录,此次在新服务器配置时再次遇到。默认情况下Matplotlib绘图会显示乱码,现将完整的解决流程整理如下,供个人备忘及有相同需求的开发者参考。

2. 解决方案
网络上存在多种解决思路,此处仅介绍经实际测试可行的操作步骤。
查看matplotlib字体位置
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 *
重启python应用
4. 重启python应用
nohup python k-means.py &
配置文件修改与JMeter测试插曲
说明:若上述操作后仍未生效,可尝试修改相关配置文件。此前未修改此文件时未出现问题,但本次测试中遇到一个插曲:使用JMeter进行压力测试时,即便完成前述配置,图表依然显示乱码。经排查发现,这并非Matplotlib配置问题,而是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进行测试时,发现即使完成所有Matplotlib配置,中文仍显示为乱码。最终在JMeter的请求参数中显式添加UTF-8编码设置后,问题得以解决。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













