2016-06-20 8 views
5

नहीं मिल सकता है मैं पायथन 3.matplotlib फ़ॉन्ट

तहत matplotlib के साथ एक xkcd शैली साजिश (ver 1.4.2।) आकर्षित करने के लिए जब मैं चलाने का प्रयास कोशिश कर रहा हूँ:

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() 

यह बिना किसी छवि के एक खाली विंडो खुलता है और मुझे त्रुटि मिलती है:

/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 

मेरे पास हास्य सैन्स स्थापित है। मैंने इसे fc-list | grep Humor के साथ चेक किया। इसका उपयोग अन्य कार्यक्रमों जैसे लिबर ऑफिस के भीतर भी किया जा सकता है। मेरे पास staypuft भी स्थापित है। क्या वह पर्याप्त नहीं है?

ऊपर एक ही कोड लेकिन plt.xkcd() बिट बिना बेकार काम करता है।

plt.show() जैसे pylab.savefig() के लिए एक विकल्प xkcd कोड के लिए काम नहीं करेगा, लेकिन xkcd का उपयोग किए बिना एक ही कोड के साथ कोई समस्या नहीं है।

उत्तर

4

यदि आप matplotlib इंस्टॉल करने के बाद एक नया फ़ॉन्ट जोड़ते हैं तो ~/.matplotlib/fontList.cache को हटाने का प्रयास करें और matplotlib को फोंट का पुनर्निर्माण करना होगा।

+0

मेरे पास ~/.matplotlib निर्देशिका नहीं है। मेरे पास ~/.config/matplotlib है, जो खाली है। –

+2

मैंने फ़ॉन्टलिस्ट की खोज की और इसे ~/.cache/matplotlib/fontList.py3k.cache पर पाया। इसे हटाने से कोड ऊपर से ऊपर काम करता है। –

+1

हाँ, matplotlib कॉन्फ़िगरेशन फ़ाइलों का स्थान ऑपरेटिंग सिस्टम द्वारा परिभाषित किया गया है। – Serenity