python-3.x - 使用 PyWaffle 模块和 FontAwesome 使用 Matplotlib 创建华夫饼图
问题描述
我正在尝试使用 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
)
相反,我得到以下异常。
FileNotFoundError:[Errno 2] 没有这样的文件或目录:'font/FontAwesome.otf'
我用来安装 FontAwesome 的步骤是在他们的网站上列出的:
我右键单击字体并选择:安装。
解决方案
PyWaffle 似乎在相对于调用脚本(或 python 解释器/jupyter notebook)的位置查找字体文件,而不是在已安装的系统字体中。错误被抛出,因为它找不到它。
字体文件是作为 PyWaffle 包的一部分安装的,它只是看起来位置不正确。font
您可以通过在虚拟环境或系统目录中找到该目录site-packages
并将其复制到与您的脚本相同的位置来解决此问题。
或者,您可以编辑在您的目录中waffle.py
找到的文件以替换此行:pywaffle
site-packages
FONTAWESOME_FILE = 'font/FontAwesome.otf'
用这些:
import os
import font
FONTAWESOME_FILE = os.path.join(font.__path__[0], 'FontAwesome.otf')
这有点杂乱无章,并且会在您升级软件包时被覆盖,但它允许您编写的任何脚本使用图标,而不必每次都复制字体文件。
编辑
现在已经修复了这个问题,因此将软件包升级到最新版本就足够了。
推荐阅读
- ruby-on-rails - 如何使用 Ruby 中的路径裁剪图像?
- regex - 正则表达式:组的匹配补码
- php - 全部重写为 1 个域,Joomla 管理员除外
- mysql - 在 MySQL 中创建存储过程时出现错误 1064 (42000)
- amazon-web-services - 打包程序“source_ami_filter”中的“所有者”字段有什么作用?
- asp.net-core - 如何从 Blazor WASM 中的类调用 StateHasChanged() / NotifyAuthenticationStateChanged
- python - 熊猫数据框保留满足某些条件的行,否则保留任何可用的
- vue.js - 如何翻译 Quasar 组件?
- excel - 使用vba删除列表框中的选定项目
- web-scraping - 如何更新 python 抓取的有效负载信息