LINUX系统python通过matplotlib绘图中文字体乱码

本文详细介绍了如何在Linux系统下解决Python使用matplotlib绘图时出现的中文字体乱码问题,包括查找系统字体、上传字体、安装字体、配置matplotlib以及重新加载字体的方法。

LINUX系统python通过matplotlib绘图中文字体乱码,解决服务器里面没有字体的问题:

参考1:https://www.jianshu.com/p/7b7a3e73ef21

参考2:https://www.zhihu.com/question/25404709

查看环境
input: 终端

cat /etc/redhat-release

output:

CentOS Linux release 7.4.1708 (Core)

服务器里面的字体路径,后续会更改该文件内容中的参数配置:
input: python

import matplotlib
matplotlib.matplotlib_fname()

output:

/usr/local/anaconda/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc

首先查看系统内的中文字体,终端输入,查看是否存在相关字体:
input:

fc-list :lang=zh

output:

/usr/share/fonts/ch_hei/wen_quan_yi_hei.ttf: WenQuanYi Zen Hei Mono,文泉驛等寬正黑,文泉驿等宽正黑:style=Medium,中等

如果没有,则可以从本地copy一份simhei.ttf文件到服务器,本地路径C:\Windows\Fonts;或者从网上下载一份SimHei下载地址
通过SecureCRT中的SFTP进行文件传输,采用put方法;堡垒机用,rz file_path
上传到服务器的文件夹,在 /usr/share/fonts 路径下创建存放此字体的文件夹yourfontdir,并下载的ttf文件复制到yourfontdir中,如果没有fonts,可以通过mkdir建立;

cd /usr/share/fonts/yourfontdir
rz file_path

上传完毕后,需要在服务器内安装存放的字体,mkfontscale和mkfontdir,或者fontconfig;
如果mkfontscale命令无效,那么需要在linux里面先安装:

yum install -y fontconfig mkfontscale
#生成字体索引信息. 会显示字体的font-family
sudo mkfontscale
sudo mkfontdir
fc-cache #更新字体缓存

然后修改matplotlibrc文件配置,进入到文件路径,vi文件并进行通过i操作进行修改,取消以下几行的注释,删除#号,改好之后esc退出,英文状态下:wq保存退出:

font.family         : sans-serif 
font.sans-serif     : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif,WenQuanYi Zen Hei Mono
axes.unicode_minus  : False #这里要把True改为False,作用就是解决负号'-'显示为方块的问题

将配置好的ttf字体复制一份到matplotlib的字体文件夹内:

mv /usr/share/fonts/yourfontdir/simhei.ttf /usr/local/anaconda/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf
#删除缓冲目录
rm ~/.cache/matplotlib
#如果有字体,绘图还是显示小方块,则需要强力删除
rm -rf ~/.matplotlib/*.cache

此时字体已经存在于服务器,配置改了之后不会生效,需要在python内重新加载,即:

python console:
from matplotlib.font_manager import _rebuild
_rebuild() #reload一下
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑小柒是西索啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值