Python 3.x 使用PyWaffle模块和FontLib使用Matplotlib创建华夫格图表

Python 3.x 使用PyWaffle模块和FontLib使用Matplotlib创建华夫格图表,python-3.x,matplotlib,waffle-chart,Python 3.x,Matplotlib,Waffle Chart,我正在尝试使用PyWaffle()来绘制华夫格图表 我已经安装了模块,并且安装了PyWaffle使用的字体() 然后,我运行Git repo中提供的以下代码 data = {'Democratic': 48, 'Republican': 46, 'Libertarian': 3} fig = plt.figure( FigureClass=Waffle, rows=5, values=data, colors=("#232066", "#983D3D", "

我正在尝试使用PyWaffle()来绘制华夫格图表

我已经安装了模块,并且安装了PyWaffle使用的字体()

然后,我运行Git repo中提供的以下代码

data = {'Democratic': 48, 'Republican': 46, 'Libertarian': 3}
fig = plt.figure(
    FigureClass=Waffle, 
    rows=5, 
    values=data, 
    colors=("#232066", "#983D3D", "#DCB732"),
    legend={'loc': 'upper left', 'bbox_to_anchor': (1, 1)},
    icons='child', icon_size=18, 
    icon_legend=True
)
这将返回以下绘图:

相反,我得到了以下异常

FileNotFoundError:[Errno 2]没有这样的文件或目录:“font/FontAwesome.otf”

我用来安装FontAwesome的步骤是他们网站上列出的步骤:

  • 首先,我下载了压缩文件夹
  • 接下来,我解压缩了文件夹
  • 然后我打开了它

  • 我右键单击字体并选择:Install。

    PyWaffle似乎在相对于调用脚本(或python解释器/jupyter笔记本)的位置查找字体文件,而不是在已安装的系统字体中。错误被抛出,因为它找不到它

    字体文件是作为PyWaffle包的一部分安装的,它看起来不合适。您可以通过在虚拟环境或系统的
    站点包
    目录中查找
    font
    目录,并将其复制到与脚本相同的位置来解决此问题

    或者,您可以编辑
    站点包
    pywaffle
    目录中的文件
    waffle.py
    ,以替换此行:

    FONTAWESOME_FILE = 'font/FontAwesome.otf'
    
    有了这些:

    import os
    import font
    FONTAWESOME_FILE = os.path.join(font.__path__[0], 'FontAwesome.otf')
    
    这有点混乱,升级包时会被覆盖,但它允许您编写的任何脚本使用图标,而无需每次复制字体文件

    编辑

    现在已经解决了这个问题,所以将包升级到最新版本就足够了