2016-06-20 12 views
5

Ich versuche, ein xkcd-Stil Grundstück mit matplotlib zu ziehen (ver 1.4.2.) Unter Python 3.Matplotlib nicht Schrift finden

Wenn ich versuche zu laufen:

import matplotlib.pyplot as plt 
plt.xkcd() 
plt.plot([1,2,3,4], [1,4,9,16], 'bo') 
plt.axis([0, 6, 0, 20]) 
plt.show() 

Es öffnet ein leeres Fenster ohne irgendein Bild und ich erhalte den Fehler:

/usr/lib/python3/dist-packages/matplotlib/font_manager.py:1279: UserWarning: findfont: Font family ['Humor Sans', 'Comic Sans MS', 'StayPuft'] not found. Falling back to Bitstream Vera Sans 
    (prop.get_family(), self.defaultFamily[fontext])) 
/usr/lib/python3/dist-packages/matplotlib/font_manager.py:1289: UserWarning: findfont: Could not match :family=Bitstream Vera Sans:style=normal:variant=normal:weight=normal:stretch=normal:size=medium. Returning /usr/share/matplotlib/mpl-data/fonts/ttf/STIXSizOneSymReg.ttf 
    UserWarning) Exception in Tkinter callback 

Ich habe Humor Sans installiert. Ich habe es mit fc-list | grep Humor überprüft. Es kann auch in anderen Programmen wie Libre Office verwendet werden. Ich habe auch staypuft installiert. Ist das nicht genug?

Derselbe Code oben, aber ohne das plt.xkcd() - Bit funktioniert einwandfrei.

Eine Alternative zu plt.show(), wie pylab.savefig() funktioniert auch nicht für den xkcd-Code, hat aber kein Problem mit demselben Code, ohne xkcd zu verwenden.

Antwort

4

Wenn Sie nach der Installation von matplotlib eine neue Schriftart hinzufügen, versuchen Sie, ~/.matplotlib/fontList.cache zu entfernen, und matplotlib muss Schriftarten neu erstellen.

+0

Ich habe kein Verzeichnis ~/.matplotlib. Ich habe eine ~/.config/matplotlib, die leer ist. –

+2

Ich suchte nach FontList und fand es bei ~/.cache/matplotlib/fontList.py3k.cache. Wenn Sie es löschen, wird der obige Code erneut ausgeführt. –

+1

Ja, der Speicherort der matplotlib-Konfigurationsdateien wird vom Betriebssystem definiert. – Serenity