2014-10-10 46 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