2012-10-08 15 views
7

Próbuję użyć czcionki TTF w matplotlib; plik .ttf został pobrany i działa lokalnie na moim komputerze. Śledziłem other instructions on this site, aby wybrać czcionkę, używając font_manager; jednak każdy tekst, który generuję próbując użyć właściwości czcionki, nadal pojawia się w domyślnej czcionce matplotlib.Dlaczego matplotlib nie używa dostarczonej czcionki .ttf?

Wiem, że Python pomyślnie znajduje plik czcionki, ponieważ prop.get_name() i podobne polecenia pokazują atrybuty czcionki, której chcę - ale to nie jest to, co pojawia się na mojej figurze. Jakieś sugestie?

Jako przykład:

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

spróbuj wyczyścić pamięć podręczną czcionek w katalogu mpl (np. ~/.matplotlib) –

+0

Usunięto plik pamięci podręcznej czcionek w katalogu mpl. Ponowne uruchomienie kodu nie zmieniło wyników. Zauważam, że nie jest to tylko używanie konkretnej czcionki * .ttf - nawet w przypadku czcionek w katalogu mpl-data/fonts/ustawienie innej nazwy w "Font Manager" nigdy nie zmienia tego, co pojawia się w oknie wykresu. – kwill

+0

hmmm. Jedyne, co mogę wymyślić to zmienić twoją czwartą linię na: 'prop = fm.FontProperties (fname = 'coolfont')' –

Odpowiedz

4

jego ponieważ od zaplecza, którego używasz.

Kiedy próbowałem zrobić coś podobnego z moim domyślnym backendem, który jest MacOS i z backendem cairo, nie działało.

Jednak po przełączeniu na agg i TKagg i uruchomieniu przykładowej czcionki użytkownika była tam.

Oto kod zmodyfikowany tak, że działa na moim komputerze

#!/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') 

Uzyskany obraz jest czcionką niestandardowej.

+1

Rozwiązało to mój problem na OS X Yosemite, uruchamiając notatnik iPython w środowisku condo w języku Python 3. – wil3

Powiązane problemy