我是小白,不太会用Mac终端进行操作,所以全程是使用anaconda利用python以及自己手动复制粘贴来弄的,目的是用matplotlib来画图的时候不要报错,记录下自己的操作,希望对大家有用~
1⃣️下载字体:
【超级会员V8】通过百度网盘分享的文件:SimHei.ttf
链接:https://pan.baidu.com/s/1csalWdFXLtsxQY0ysbF-wA?pwd=X17U
提取码:X17U
复制这段内容打开「百度网盘APP 即可获取」
2⃣️把下载好的字体放到matplotlib正确目录下(手动复制粘贴):
# 找到 Matplotlib 配置文件路径
import matplotlib
print (matplotlib.matplotlib_fname())
# 以供参考,我的目录是/Users/pashel/opt/anaconda3/lib/python3.12/site-packages/matplotlib/mpl-data/matplotlibrc
# 在刚刚路径的基础上去掉matplotlibrc,添加fonts/ttf/SimHei.ttf(SimHei.ttf是你刚下载好的字体,一定要是这个名字与后缀),我们得到了一个存放字体的路径
# 最终你将下载后的字体放入这个路径里,我的路径以供参考:
# /Users/pashel/opt/anaconda3/lib/python3.12/site-packages/matplotlib/mpl-data/fonts/ttf/SimHei.ttf
3⃣️我没有去进行清除缓存的步骤,而是在 Python 中手动添加字体路径:
import matplotlib.font_manager as font_manager
# 添加自定义字体路径
font_path = '/path/to/SimHei.ttf' # 将此路径替换为你自己的 SimHei 字体文件的实际路径,也就是刚刚第二步得到的那个路径
font_manager.fontManager.addfont(font_path)
4⃣️尝试通过在绘图命令中指定字体:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 测试代码,看字体是否能正确显示中文
plt.figure()
plt.plot([1, 2, 3], [1, 2, 3])
plt.title('测试标题')
plt.xlabel('横轴')
plt.ylabel('纵轴')
plt.show()
如无意外会成功显示折线图:
5⃣️使用以下代码检查 SimHei 字体是否已经被注册到 matplotlib 中:
from matplotlib.font_manager import findfont, FontProperties
print(findfont(FontProperties(family='SimHei')))
最后验证下,这个时候它会显示你存放字体的路径,与我们第二步得到的路径对比下,应当是一致的。这之后我就可以成功用matplotlib画图了,希望大家成功搞定~