2012-10-08 26 views
7

मैं matplotlib में एक टीटीएफ फ़ॉन्ट का उपयोग करने की कोशिश कर रहा हूँ; .ttf फ़ाइल डाउनलोड की जाती है और मेरी मशीन पर स्थानीय रूप से रहती है। font_manager का उपयोग कर फ़ॉन्ट का चयन करने के लिए मैंने other instructions on this site का पालन किया है; हालांकि, फ़ॉन्ट गुणों का उपयोग करने का प्रयास करने वाले किसी भी पाठ को अभी भी डिफ़ॉल्ट matplotlib फ़ॉन्ट में दिखाई देता है।matplotlib क्यों प्रदान करता है .ttf फ़ॉन्ट का उपयोग नहीं करता है?

मुझे पता है कि पाइथन सफलतापूर्वक फ़ॉन्ट फ़ाइल ढूंढता है, क्योंकि prop.get_name() और इसी तरह के आदेश फ़ॉन्ट के गुणों को दिखाते हैं - लेकिन यह मेरी आकृति पर दिखाई नहीं देता है। कोई सुझाव?

एक उदाहरण के रूप:

import matplotlib.pyplot as plt 
import matplotlib.font_manager as fm 

fig, ax = plt.subplots() 

prop = fm.FontProperties(fname='/Users/smith/fonts/coolfont.ttf') 
ax.set_title('Text in a cool font', fontproperties=prop, size=40) 

fig.show() 
+1

mpl निर्देशिका में अपने फ़ॉन्ट कैश को साफ़ करने का प्रयास करें (उदा।, ~/.matplotlib) –

+0

मैंने mpl निर्देशिका में फ़ॉन्ट कैश फ़ाइल हटा दी है। कोड को फिर से चलाने से परिणाम नहीं बदले। मैं ध्यान दूंगा कि यह सिर्फ एक विशिष्ट * .ttf फ़ॉन्ट का उपयोग नहीं कर रहा है - यहां तक ​​कि मेरे एमपीएल-डेटा/फोंट/निर्देशिका में फोंट के लिए, 'फ़ॉन्ट मैनेजर' में एक अलग परिवार का नाम सेट करने से प्लॉट विंडो में जो भी दिखाई देता है, वह कभी भी नहीं बदलता है। – kwill

+0

हम्म। केवल एक चीज जो मैं सोच सकता हूं वह है कि अपनी चौथी रेखा को इस प्रकार बदलें: 'prop = fm.FontProperties (fname =' coolfont ') ' –

उत्तर

4
अपने बैकएंड है कि आप प्रयोग कर रहे हैं की वजह से

जब मैंने अपने डिफ़ॉल्ट बैकएंड के साथ ऐसा कुछ करने की कोशिश की जो MacOS है और cairo बैकएंड के साथ यह काम नहीं करता है।

हालांकि जब मैंने agg और TKagg पर स्विच किया और अपना उदाहरण चलाया तो कस्टम फ़ॉन्ट वहां था।

यहाँ अपने कोड को संशोधित इतना है कि यह मेरी मशीन

#!/usr/bin/env python 
import matplotlib 
matplotlib.use("agg") 
import matplotlib.pyplot as plt 
import matplotlib.font_manager as fm 

fig, ax = plt.subplots() 
prop = fm.FontProperties(fname='Outwrite.ttf') 
ax.set_title('Text in a cool font', fontproperties=prop, size=40) 
plt.show() 
plt.savefig('test.png') 

जिसके परिणामस्वरूप छवि एक कस्टम फ़ॉन्ट के साथ है पर चलाता है।

+1

इसने ओएसएक्स योसामेट पर एक पाइथन 3 कोंडा पर्यावरण में एक आईपीथन नोटबुक चलाने पर मेरी समस्या हल की। – wil3

संबंधित मुद्दे