Linux下python matplotlib画图修改中文字体(小方块)

Ⅰ. 环境配置

# python3.6
matplotlib==3.3.4

Ⅱ. 查看系统中有无中文字体

fc-list :lang=zh

Linux下python matplotlib画图修改中文字体(小方块)_第1张图片
如果有您想使用的字体,请直接跳到第四步(貌似不需要了,直接跳到第五步,待验证),若无接着第三步

Ⅲ. Linux增加中文字体

windows10字体默认文件夹为C:/Windows/Fonts
将您想使用的中文字体copy至Linux任意位置(暂放)
在Linux下创建chinese(用户自定义)文件夹,copy字体

cd /usr/share/fonts/
sudo mkdir chinese
sudo cp simsun.ttc /usr/share/fonts/chinese/
chmod -R 755 /usr/share/fonts/chinese

建立字体索引信息,更新字体缓存

mkfontscale
mkfontdir
fc-cache

Linux下python matplotlib画图修改中文字体(小方块)_第2张图片

配置字体,在fonts.conf中加入红框内容

sudo vi /etc/fonts/fonts.conf

Linux下python matplotlib画图修改中文字体(小方块)_第3张图片
再次清除缓存

fc-cache

Ⅳ. 中文字体给matplotlib专用(貌似不需要了)

非常抱歉博主把这块给忘记了,博主后来生成成功后,发现放入word中奇丑无比,就选用了Echarts来做图了(pyecharts V1),博主也出了一个博文,关于pyecharts V1保存图片至本地

运行如下python代码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @File     : __init__.py
# @Author   : LiuYan
# @Time     : 2021/12/2 17:21


import matplotlib

print(matplotlib.matplotlib_fname())

输出为:

/home/zzsn/anaconda3/envs/yan@py36/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
vi /home/zzsn/anaconda3/envs/yan@py36/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc

Ⅴ. 清除缓存

rm -rf ~/.cache/

在这里插入图片描述

Ⅵ. 验证

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @File     : utils
# @Author   : LiuYan
# @Time     : 2021/11/9 16:50

import matplotlib as mpl
import matplotlib.pyplot as plt

from matplotlib import rcParams


# for chinese show
# 1. 中英文统一: 中文格式
plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = ['SimSun'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False

# 2. 中文√ 英文: Latex
# config = {
#     "font.family": 'serif',
#     "mathtext.fontset": 'stix',
#     "font.serif": ['SimSun'],
# }
# rcParams.update(config)

# 3. error
# mpl.use('pgf')
# pgf_config = {
#     "font.family": 'serif',
#     "mathtext.fontset": 'stix',
#     "pgf.rcfonts": False,
#     "text.usetex": True,
#     "pgf.preamble": [
#         r"\usepackage{unicode-math}",
#         r"\setmainfont{Times New Roman}",
#         r"\usepackage{xeCJK}",
#         r"\xeCJKsetup{CJKmath=true}",
#         r"\setCJKmainfont{SimSun}"
#     ]
# }
# rcParams.update(pgf_config)

# Test -> plt
plt.title(r'宋体 Times New Roman')
plt.axis('off')
plt.savefig('usestix.png')
plt.show()

Linux下python matplotlib画图修改中文字体(小方块)_第4张图片

Ⅶ. 结语

Over!大功告成!
至此,本文到此结束!

关于 “Linux下python matplotlib画图修改中文字体(小方块)” 已全部完成。
本文只做学习用途,无任何商业用途!
转载注明出处!祝各位学业有成!
大大怪爱小乖乖!
研哥哥

你可能感兴趣的:(Python,linux,python,matplotlib,乱码)