2017-12-11 20 views
0

matplotlibの図のテキスト要素のシステムにインストールされていないカスタムttfフォントを使用しようとしています。matplotlib.pyplot.rcparamsをインストールされていないカスタムフォントで使用する

with plt.style.context('mplparams.mplstyle'): 
    plt.plot(np.sin(np.linspace(0, 3 * np.pi)), '-o') 

私はFontManagerでテキストのプロパティを変更できますが、私は外部の設定ファイルのみを含む解決策を探しています。

現時点で私はfont.sans-serifをフォントパスではなくフォント名に変更できることを知っています。

これは可能ですか?

答えて

1

使用するフォントはFontmanagerに知られていなければなりません。そうしないと、プロットに取り込めません。 rcParamsでフォントを指定するには、このフォントがmatplotlibが探すフォルダになければなりません。何もインストールしたくない場合は、.ttfファイルをmatplotlibフォントフォルダにコピーしてください。私の場合、これは

python\Lib\site-packages\matplotlib\mpl-data\fonts 

です。次に、font.chacheをクリアする必要があります。 print(matplotlib.get_cachedir())でそのパスを探し、fontListファイルを削除します。 (または、必要に応じて最初にバックアップを作成する)。

はその後rcParamが

font.sans-serif : <name of font> 

を指定したスクリプトを実行したり、またthis questionを参照してください

plt.rcParams['font.sans-serif'] = "<name of font>" 

使用しています。

+0

rcParamsでttfファイルへのパスをシステムフォントまたはmplフォントディレクトリにコピーすることなく直接使用することはできないと思いますか? – shadesofdarkred

+0

rcParamsでパスを使用することは間違いありません。フォントのデフォルトの検索パスの外にあるパスからFontmanagerにロードするフォントを取得した後、rcParamsでフォント名を指定したり、検索パスを操作したりすることは、何とか可能かもしれません。カスタムパスを含むようにします。 – ImportanceOfBeingErnest

+0

私は見ています。これは次善のものなので、私はこの答えを受け入れるつもりです。ありがとう! – shadesofdarkred

関連する問題