我一直在使用matplotlib中的xkcd样式功能。我有Matplotlib 1.4,并且幽默sans字体已正确安装,或至少在msword中有效。

当我运行以下示例代码时,我得到“?”任何时候标签上都应使用负号而不是“-”。知道是什么原因造成的吗?

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

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

另外,声誉现在已经很高,可以发布图像。如您所见,除了那些令人讨厌的问号之外,其他所有内容都如预期。

最佳答案

eryksun评论是正确的。因此,必须将MINUS SIGN(U + 2212)字符添加到xkcd字体(无色)。
为此,请使用字体编辑器(我使用FontForge):

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

  • 我遇到了与您相同的问题,并且解决了该问题。

    关于python - 负数不能以matplotlib xkcd样式正确显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26304583/

    10-11 16:41