为什么matplotlib无法显示图像(matplotlib画图字体缺少问题解决方法)

在服务器调用matplotlib画图的时候经常会遇到下面的提示:,我来为大家科普一下关于为什么matplotlib无法显示图像?以下内容希望对你有帮助!

为什么matplotlib无法显示图像(matplotlib画图字体缺少问题解决方法)

为什么matplotlib无法显示图像

在服务器调用matplotlib画图的时候经常会遇到下面的提示

Font family [‘sans-serif‘] not found.Falling back to DejaVu Sans

默认的DejaVu Sans字体画图的显示效果是很差的

具体解决方法:

1. 在所需系统中python环境下,输入以下代码查看字体路径

[tangg@node01 ~]$ pythonPython 3.9.12 (main, Jun 1 2022, 11:38:51) [GCC 7.5.0] :: Anaconda, Inc. on linuxType "help", "copyright", "credits" or "license" for more information.>>> import matplotlib >>> print(matplotlib.matplotlib_fname)/home/tangg/.local/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc

切换到上面查询到的路径

[tangg@node01 fonts]$ cd /home/tangg/.local/lib/python3.9/site-packages/matplotlib/mpl-datfonts images matplotlibrc plot_directive sample_data stylelib

继续切换到字体(fonts)目录下

[tangg@node01 fonts]$ cd fonts/ttf/Arial.ttf DejaVuSans-Bold.ttf DejaVuSerif-Bold.ttf STIXGeneral.ttf STIXSizOneSymReg.ttfcmb10.ttf DejaVuSansDisplay.ttf DejaVuSerifDisplay.ttf STIXNonUniBolIta.ttf STIXSizThreeSymBol.ttfcmex10.ttf DejaVuSansMono-BoldOblique.ttf DejaVuSerif-Italic.ttf STIXNonUniBol.ttf STIXSizThreeSymReg.ttfcmmi10.ttf DejaVuSansMono-Bold.ttf DejaVuSerif.ttf STIXNonUniIta.ttf STIXSizTwoSymBol.ttfcmr10.ttf DejaVuSansMono-Oblique.ttf LICENSE_DEJAVU STIXNonUni.ttf STIXSizTwoSymReg.ttfcmss10.ttf DejaVuSansMono.ttf LICENSE_STIX STIXSizFiveSymReg.ttfcmsy10.ttf DejaVuSans-Oblique.ttf STIXGeneralBolIta.ttf STIXSizFourSymBol.ttfcmtt10.ttf DejaVuSans.ttf STIXGeneralBol.ttf STIXSizFourSymReg.ttfDejaVuSans-BoldOblique.ttf DejaVuSerif-BoldItalic.ttf STIXGeneralItalic.ttf STIXSizOneSymBol.ttf

2. 下载所需的字体(下载链接):

https://www.123pan.com/s/IczA-wkRgh 提取码: xhzy

将网盘的字体下载上传到上面获取得到的字体(fonts)目录下即可。

3. 删除matplotlib的缓冲目录(具体操作如下)

[tangg@node01 ~]$ pythonPython 3.9.12 (main, Jun 1 2022, 11:38:51) [GCC 7.5.0] :: Anaconda, Inc. on linuxType "help", "copyright", "credits" or "license" for more information.>>> import matplotlib >>> matplotlib.get_cachedir'/home/tangg/.cache/matplotlib'

rm -rf /home/tangg/.cache/matplotlib

4. 修改matplotlibrc文件中对应内容(文件路径就是第一步中查到的字体路径)

font.family : sans-serif # 去掉前面的# font.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子图

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页