16

当前版本的 matplotlib (1.3.1) 支持 xkcd 样式的绘图,但是当我按照生成此类绘图的基本说明(在 iPython 1.1.0 中)时,

%pylab
plt.xkcd()
plt.plot(sin(linspace(0, 10)))
plt.title('Whoo Hoo!!!')

我明白了

在此处输入图像描述

代替

在此处输入图像描述

我究竟做错了什么?

4

4 回答 4

19

为了让它工作,你需要

  • matplotlib 1.3.1(不适用于 matplotlib 1.3.0 或更早版本)
    • sudo pip install matplotlib --upgrade
  • 字体 Humor Sans
    • 此处此处下载,安装(在 OS X 上打开它并单击安装)
  • 删除 matplotlib 字体缓存(如DanHickstein 在 matplotlib/issues/2269 中所建议的)
    • rm ~/.matplotlib/fontList.cache

现在,执行代码,它应该可以工作。

不需要TkAgg像某些人建议的那样将后端更改为 。对我来说它工作得非常好'module://IPython.kernel.zmq.pylab.backend_inline'(你可以检查它plt.get_backend())。

(我有同样的问题,我已经解决了,至少在 OS X 10.8.5 上,使用 matplotlib 1.3.1 和 IPython 2.0.0;删除字体缓存是使字体运行所必需的。)

于 2014-04-02T12:54:16.347 回答
4

使用安装了 matplotlib 2.0.0 的 ubuntu 16.04 和 python 3,以下解决了我的问题。

  1. 安装 Comic sans:sudo apt install fonts-humor-sans
  2. 删除 matplotlib 缓存:rm ~/.cache/matplotlib -r
于 2018-03-21T14:17:12.657 回答
1

确保您已fonts-humor-sans安装。

在 Ubuntu/Debian 中,您可以使用(从命令行)安装它们:

$ sudo apt install python3-xkcd fonts-humor-sans

那么最好的选择(而不是删除 matplotlib 缓存)是重建字体管理器(从 Python 解释器、脚本或 Jupyter 笔记本中):

导入 matplotlib
matplotlib.font_manager._rebuild()

于 2020-12-19T16:58:05.947 回答
0

您链接的博客文章中:

此外,如果您想要上面的字体匹配,请务必在您的系统上下载并安装 Humor Sans 字体。为了让 matplotlib 识别它,您可能必须删除字体缓存...

至于要下载哪个版本的字体,我会尝试最新的。

于 2013-10-29T16:43:07.867 回答