2014-10-10 48 views
3

我一直在玩matplotlib中的xkcd样式功能。我有Matplotlib 1.4,幽默sans字体安装正确,或至少在msword中工作。负数不能在matplotlib中正确显示xkcd样式

当我运行下面的示例代码时,我得到“?”任何时候都应该有一个负数,而不是标签上的“ - ”。任何想法是什么导致这个?

with plt.xkcd(): 
    plt.figure() 
    plt.plot(np.sin(np.linspace(0, 10))) 
    plt.title('Whoo Hoo!!!') 

enter image description here

编辑:在伯尼的建议(感谢伯尼)我尝试了一些不同的后端。试过Qt,Tkinter和内联,似乎都没有工作。我使用Ipython 2.3 btw。

此外,声望现在足够高,可以发布图像。正如你所看到的,除了那些讨厌的问号外,一切都如预期的那样。

+1

负值在我的测试图中正确显示。你使用了哪个后端?你可以通过这样做来找到:'import matplotlib; matplotlib.get_backend()' – bernie 2014-10-10 17:17:21

+0

Bernie,我使用的是QT4Agg。我切换到IPython内联后端'module://IPython.kernel.zmq.pylab.backend_inline',除了它显示内联的事实,我得到了相同的结果。试过Tkinter(TkAgg),那也行不通。奇怪的。 – 2014-10-10 18:24:16

+0

嗯。我现在没有想法... – bernie 2014-10-10 18:28:17

回答

1

eryksun评论是正确的。因此,您必须将减号标志(U + 2212)字符添加到xkcd字体(hunour sans)。 要做到这一点,使用字体编辑器(我用FontForge):

  1. 从FontForge菜单,打开幽默三世的ttf文件。
  2. 将HYPHEN-MINUS(U + 002d)字形复制粘贴到MINUS SIGN(U + 2212)字符框(它们按增加的Unicode编号排序)。
  3. 转到文件 - >生成字体。选择True Type(.ttf)并将其保存在与字体文件夹不同的文件夹中。
  4. 安装新保存的字体。 (在Windows上,双击打开预览窗口,然后单击安装)

我遇到了与您相同的问题,并解决了这个问题。

+0

感谢Ludo和Eryksun,那就是诀窍。顺便说一句,你链接的FontForge的版本在我的win7机器上反复崩溃。我用位于这里的windows构建完成了它:http://fontforgebuilds.sourceforge.net/ – 2014-11-29 17:08:01