新手求助:JupyterNotebook项目中MS Mincho字体无法使用(含报错)
解决Matplotlib找不到MS Mincho字体的问题
嘿,别慌!我之前在Jupyter Notebook里用Matplotlib时也碰到过类似的字体找不到问题,给你几个亲测有效的解决步骤:
1. 先确认系统里真的装了MS Mincho字体
打开Windows控制面板的「字体」,搜索“MS Mincho”,看看能不能找到对应的字体文件。如果没找到,得先安装它——一般Windows系统默认会带,但如果是精简版系统可能没有,你可以双击字体文件完成安装。
2. 让Matplotlib重新生成字体缓存
有时候Matplotlib的字体缓存是旧的,就算你装了字体也识别不到。在Jupyter里运行这段代码:
import matplotlib.font_manager as fm fm._rebuild()
运行完重启Jupyter Notebook,再试试调用MS Mincho字体,大概率能解决问题。
3. 手动指定字体路径(兜底方案)
如果上面的方法没用,那就直接告诉Matplotlib字体文件在哪:
- 先找到MS Mincho的字体文件路径,一般在
C:\Windows\Fonts里,文件名是msmincho.ttc(注意是ttc格式) - 然后在你的绘图代码里这样设置:
import matplotlib.pyplot as plt import matplotlib.font_manager as fm # 替换成你的字体实际路径,如果路径有空格记得用引号括起来 font_path = 'C:/Windows/Fonts/msmincho.ttc' ms_mincho = fm.FontProperties(fname=font_path) # 单个文本/图表指定字体 plt.title('测试标题', fontproperties=ms_mincho) plt.xlabel('X轴标签', fontproperties=ms_mincho) plt.text(0.5, 0.5, '测试文字', fontproperties=ms_mincho) plt.show() - 要是想全局设置成MS Mincho,就用这段代码:
import matplotlib as mpl import matplotlib.font_manager as fm font_path = 'C:/Windows/Fonts/msmincho.ttc' fm.fontManager.addfont(font_path) mpl.rcParams['font.family'] = 'MS Mincho' # 之后绘图就不用每次指定字体了 plt.title('全局字体测试') plt.show()
4. 清理Anaconda专属的Matplotlib缓存
如果你用的是Anaconda环境,Matplotlib可能会在用户目录下存单独的缓存。找到C:\Users\<你的用户名>\.matplotlib这个文件夹,删掉里面类似fontlist-v330.json的缓存文件,然后重启Jupyter,再运行fm._rebuild()重新生成缓存。
补充说明
你看到的报错findfont: Font family ['MS Mincho'] not found,本质是Matplotlib的字体管理器在它的字体列表里找不到这个字体家族,上面的方法要么是让它重新扫描系统字体,要么是手动把字体加入它的列表,就能解决fallback到DejaVu Sans的问题啦。
内容的提问来源于stack exchange,提问作者Software Developer
相关产品推荐
相关产品推荐

