如何在 matplotlib 中使用 Humor Sans?
How can I use Humor Sans in matplotlib?
我想用 matploblib 创建 ROC 曲线的 XKCD 样式图。它大部分工作正常,但我不明白为什么它不使用幽默 sans。它肯定安装在我的系统上:
$ fc-list | grep -i humor
/home/user/.local/share/fonts/Humor-Sans.ttf: Humor Sans:style=Regular
如何让 matplotlib 使用 Humor-Sans 字体?
我已经尝试添加 fontname='Humor Sans'
:
/home/user/.local/lib/python3.6/site-packages/matplotlib/font_manager.py:1328:
UserWarning: findfont: Font family ['Humor Sans'] not found.
Falling back to DejaVu Sans
我的代码
import matplotlib.pyplot as plt
import numpy as np
with plt.xkcd():
xs = np.linspace(0, 1, 50)
plt.plot(xs, (1 / (-xs) + 50) / 50)
plt.plot(xs, xs)
plt.title('ROC Curve')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.savefig('xkcd-roc-explanation.png')
当前结果
Matplotlib 显然有它自己的缓存文件。在我的系统上,我可以通过执行
来解决这个问题
mv ~/.cache/matplotlib/fontList.json ~/.cache/matplotlib/fontList-backup.json
您可以通过以下方式强制重建字体缓存:
import matplotlib.font_manager
matplotlib.font_manager._rebuild()
然后检查字体可用性
matplotlib.font_manager.findfont('Humor Sans')
我想用 matploblib 创建 ROC 曲线的 XKCD 样式图。它大部分工作正常,但我不明白为什么它不使用幽默 sans。它肯定安装在我的系统上:
$ fc-list | grep -i humor
/home/user/.local/share/fonts/Humor-Sans.ttf: Humor Sans:style=Regular
如何让 matplotlib 使用 Humor-Sans 字体?
我已经尝试添加 fontname='Humor Sans'
:
/home/user/.local/lib/python3.6/site-packages/matplotlib/font_manager.py:1328:
UserWarning: findfont: Font family ['Humor Sans'] not found.
Falling back to DejaVu Sans
我的代码
import matplotlib.pyplot as plt
import numpy as np
with plt.xkcd():
xs = np.linspace(0, 1, 50)
plt.plot(xs, (1 / (-xs) + 50) / 50)
plt.plot(xs, xs)
plt.title('ROC Curve')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.savefig('xkcd-roc-explanation.png')
当前结果
Matplotlib 显然有它自己的缓存文件。在我的系统上,我可以通过执行
来解决这个问题mv ~/.cache/matplotlib/fontList.json ~/.cache/matplotlib/fontList-backup.json
您可以通过以下方式强制重建字体缓存:
import matplotlib.font_manager
matplotlib.font_manager._rebuild()
然后检查字体可用性
matplotlib.font_manager.findfont('Humor Sans')