当前版本的matplotlib(1.3.1)支持xkcd风格的绘图,但是当我按照基本指令生成这样的绘图时(在iPython 1.1.0中),
%pylab
plt.xkcd()
plt.plot(sin(linspace(0, 10)))
plt.title('Whoo Hoo!!!')
Run Code Online (Sandbox Code Playgroud)
我明白了

代替

我究竟做错了什么?
我试图从这里重现这个例子
代码在该页面上和本文末尾
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
Run Code Online (Sandbox Code Playgroud)
3.5.2 |Continuum Analytics, Inc.| (default, Jul 2 2016, 17:53:06)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
Run Code Online (Sandbox Code Playgroud)
import matplotlib
matplotlib.__version__
Out[37]: '1.5.1'
Run Code Online (Sandbox Code Playgroud)
这表明我已经安装了该字体
$ fc-list | grep "Humo"
/usr/share/fonts/Humor-Sans-1.0.ttf: Humor Sans:style=Regular
/home/vco/.fonts/Humor-Sans-1.0.ttf: Humor Sans:style=Regular
Run Code Online (Sandbox Code Playgroud)
plt.get_backend()
Out[42]: 'TkAgg'
Run Code Online (Sandbox Code Playgroud)
我按照这里的帖子说明了;
python输出错误:
/home/vco/anaconda/envs/math_general/lib/python3.5/site-packages/matplotlib/font_manager.py:1288:
UserWarning: findfont: Font family ['Humor Sans', …Run Code Online (Sandbox Code Playgroud) 当将 xkcd() 与 matplotpib 一起使用时,没有任何字体以通常的漫画字体显示。有什么改变或者我做错了什么吗?
x = df['Time']
y = df['Adjustment']
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax1 = fig.add_subplot(1,1,1)
ax1.plot(x,y)
ax1.xaxis.set_visible(False)
ax1.yaxis.set_visible(False)
plt.axvline(x=2.3, color='k', ls='dashed')
plt.axvline(x=6, color='k', ls='dashed')
ax.text(4,4,'Culture Shock', size=16)
plt.title('Test title')
plt.xkcd()
plt.show()
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助。
我应该澄清的是,该图将以 xkcd 样式绘制,而不是任何字体。它打印的内容与 Times New Roman 类似。