使用PyWaffle模块和FontAwesome使用Matplotlib创建华夫饼图

时间:2018-07-01 15:07:05

标签: python-3.x matplotlib waffle-chart

我正在尝试使用PyWaffle(https://github.com/ligyxy/PyWaffle)绘制华夫饼图。

我已经安装了模块,并且已经安装了PyWaffle使用的fontawesome字体(https://fontawesome.com/?from=io)。

然后我运行Git存储库中提供的以下代码。

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
)

这应该返回以下图: enter image description here

相反,我得到了以下异常。

FileNotFoundError:[错误2]没有此类文件或目录:'font / FontAwesome.otf'

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

  1. 首先我下载了​​压缩文件夹
  2. 接下来,我将文件夹解压缩 enter image description here
  3. 然后我打开它 enter image description here enter image description here

我右键单击字体并选择:安装。

您的建议将不胜感激

1 个答案:

答案 0 :(得分:2)

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

字体文件是作为PyWaffle软件包的一部分安装的,只是看起来位置不合适。您可以通过以下方法解决此问题:在虚拟环境或系统的font目录中找到site-packages目录,然后将其复制到脚本所在的位置。

或者,您可以编辑waffle.py的{​​{1}}目录中的文件pywaffle,以替换此行:

site-packages

有了这些:

FONTAWESOME_FILE = 'font/FontAwesome.otf'

这有点麻烦,并且在升级软件包时会被覆盖,但是它将允许您编写的任何脚本使用图标,而无需每次都复制字体文件。

编辑

此问题现已修复,因此将软件包升级到最新版本就足够了。