在服务器调用matplotlib画图的时候经常会遇到下面的提示:
Font family [‘sans-serif‘] not back to DejaVu Sans
默认的DejaVu Sans字体画图的显示效果是很差的。
具体解决方法:
1. 在所需系统中python环境下,输入以下代码查看字体路径
[tangg@node01 ~]$ python
Python 3.9.12 (main, Jun 1 2022, 11:38:51)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>> prin)
/home/tangg/.local/lib
切换到上面查询到的路径
[tangg@node01 fonts]$ cd /home/tangg/.local/lib
fonts images matplotlibrc plot_directive sample_data stylelib
继续切换到字体(fonts)目录下
[tangg@node01 fonts]$ cd fonts/ttf/
Arial.ttf DejaVuSan DejaVuSeri STIXGeneral.ttf STIXSizOneSymReg.ttf
cmb10.ttf DejaVuSan DejaVuSeri STIXNonUniBolI STIXSizT
cmex10.ttf DejaVuSan DejaVuSeri STIXNonUniBol.ttf STIXSizT
cmmi10.ttf DejaVuSan DejaVuSerif.ttf STIXNonUniI STIXSizTwoSymBol.ttf
cmr10.ttf DejaVuSan LICENSE_DEJAVU STIXNonUni.ttf STIXSizTwoSymReg.ttf
cm DejaVuSan LICENSE_STIX STIXSizFiveSymReg.ttf
cm DejaVuSan STIXGeneralBolI STIXSizFourSymBol.ttf
cm DejaVuSans.ttf STIXGeneralBol.ttf STIXSizFourSymReg.ttf
DejaVuSan DejaVuSeri STIXGeneralI STIXSizOneSymBol.ttf
2. 下载所需的字体(下载链接):
提取码: xhzy
将网盘的字体下载上传到上面获取得到的字体(fonts)目录下即可。
3. 删除matplotlib的缓冲目录(具体操作如下)
[tangg@node01 ~]$ python
Python 3.9.12 (main, Jun 1 2022, 11:38:51)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>> ma
'/home/tangg/.cache/matplotlib'
rm -rf /home/tangg/.cache/matplotlib
4. 修改matplotlibrc文件中对应内容(文件路径就是第一步中查到的字体路径)
: sans-serif
# 去掉前面的#
: SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
# 去掉前面的#,并在冒号后面添加SimHei
axes.unicode_minus : False
# 去掉前面的#,并将True改为False
matplotlib 笔记1: 多点线图、显示label、刻度、xy轴比例、主副轴
matplotlib 笔记2: 调整边界、多个子图、inset子图