matplotlib库不能正确显示中文

  1. Ubuntu的字体目录在/usr/share/fonts下,自带的中文字体很烂,先安装一下中文字体库。终端输入:
1
2
3
git clone https://github.com/tracyone/program_font 
cd program_font
./install.sh
  1. 在/usr/share/fonts/MyFonts下添加了很多新字体

  2. 显示matplotlib库的字体文件夹

1
2
import matplotlib
matplotlib.matplotlib_fname()

显示/home/ck/anaconda3/envs/pytorch2/lib/python3.10/site-packages/matplotlib/mpl-data/matplotlibrc,打开mpl-data下的fonts文件夹,将黑体“simhei.ttf”复制到fonts/tff文件夹下

  1. 删除matplotlib缓存
1
2
cd ~/.cache/matplotlib
rm -rf *.*
  1. 设置字体
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
font_name = "simhei"
mpl.rcParams['font.family']= font_name # 指定字体,实际上相当于修改 matplotlibrc 文件 只不过这样做是暂时的 下次失效
mpl.rcParams['axes.unicode_minus']=False # 正确显示负号,防止变成方框


# 生成示例数据
x = np.linspace(0, 2 * np.pi, 1000)
y = np.sin(x)

# 创建图形
plt.figure()
# 绘制正弦曲线
plt.plot(x, y, label='正弦曲线')
# 添加标题
plt.title('正弦曲线图')
# 添加x轴标签
plt.xlabel('x')
# 添加y轴标签
plt.ylabel('sin(x)')
# 显示图例
plt.legend()
# 显示网格
plt.grid(True)
# 显示图形
plt.show()

ok了!


matplotlib库不能正确显示中文
http://binbo-zappy.github.io/2024/12/12/python/matplotlib库不能正确显示中文/
作者
Binbo
发布于
2024年12月12日
许可协议