2012-10-08 8 views
7

matplotlibでTTFフォントを使用しようとしています。 .ttfファイルはダウンロードされ、自分のマシンにローカルに保存されます。私はfont_managerを使ってフォントを選択するためにother instructions on this siteに従った。ただし、フォントプロパティを使用しようとすると生成したテキストは、デフォルトのmatplotlibフォントに表示されます。matplotlibが私が提供する.ttfフォントを使用しないのはなぜですか?

prop.get_name()と同様のコマンドが私が望むフォントの属性を表示するので、Pythonがフォントファイルを正しく見つけることがわかっていますが、これは私の図には表示されません。助言がありますか?一例として、

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フォントを使用するだけではなく、mpl-data/fonts /ディレクトリのフォントでも、 'Font Manager'で別のファミリ名を設定しても、プロットウィンドウに表示されるものは変更されません。 – kwill

+0

hmmm。私が考えることができる他のことは、4行目を 'prop = fm.FontProperties(fname = 'coolfont')' –

答えて

4

そのため、使用しているバックエンドの。

MacOSのデフォルトバックエンドと同じようなことをやろうとしたとき、cairoバックエンドでは動作しませんでした。

しかし、私がaggTKaggに切り替えて、あなたの例を実行すると、カスタムフォントがそこにありました。ここで

は、得られた画像は、カスタムフォントである

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

これは、Python 3のconda環境でiPythonノートブックを実行しているOSX Yosemiteに関する私の問題を解決しました。 – wil3

関連する問題