python - 如何在 matplotlib 中使用 Humor Sans?

标签 python matplotlib ubuntu-18.04

我想用 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')

当前结果

enter image description here

最佳答案

您可以通过以下方式强制重建字体缓存:

import matplotlib.font_manager
matplotlib.font_manager._rebuild()

然后检查字体可用性

matplotlib.font_manager.findfont('Humor Sans')

关于python - 如何在 matplotlib 中使用 Humor Sans?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51010200/

相关文章:

python - 用于简单图形模拟(TSP 模拟等...)的最佳 python UI 包

python - 如何根据其值的频率将行转换为列

python - 如何在 Matplotlib 中交错或偏移 x 轴标签?

python - 尝试使用 matplotlib 更新 3D 图形坐标

python - 如何检查是否启用了 Jupyter Notebook 扩展?

r - 在 Ubuntu 18.04 上将 R 更新到 3.5+

python - 使用枚举作为类中的标志,Python

python - cx_Freeze 构建错误?

c++ - 我无法使用 FTGL(找不到 ft2build.h)

java - 在 Ubuntu 服务器上通过 R 连接到 Athena 时出现问题