Ubuntu系统中,使用matplotlib画图调用times new romain字体报错 findfont: Font family ['Times New Roman'] not found. Falling back to DejaVu Sans.
画图时报错,缺少字体 findfont: Font family ['Times New Roman'] not found. Falling back to DejaVu Sans.
有两种解决方式:
方式一:在线安装 msttcorefonts
包
# 安装 msttcorefonts 包 这种方式需要ubuntu能连外网,否则因为访问source-forge失败而告终
sudo apt update
sudo apt install ttf-mscorefonts-installer
sudo apt install --reinstall ttf-mscorefonts-installer
# 更新字体缓存
sudo fc-cache -fv
# 验证字体安装
fc-list | grep "Times New Roman"
# 清除matplotlib缓存
rm ~/.cache/matplotlib/ -rf
方式二:手动安装
需要从windows本地系统里找到Times New Roman这个字体,然后将其上传到服务器里的./fonts下。
- 打开windows文件管理器,字体位于
C:\Windows\Fonts
- 在当前目录搜索
Times
,将其复制到桌面,会得到4个子文件 - 将4个子文件上传到服务器中
# 将windows字体上传到服务器
mkdir -p ~/.fonts
cp /path/to/downloaded/TimesNewRoman.ttf ~/.fonts/
# 更新字体缓存
fc-cache -fv
# 检查字体是否安装
fc-list | grep "Times New Roman"
# 清除matplotlib缓存
rm ~/.cache/matplotlib/ -rf