web-dev-qa-db-ja.com

matplotlibで凡例のフォント名を変更する方法

Matplotlibプロットの凡例でTimesNewRomanのフォントを表示したいと思います。他のすべての目盛りラベル/軸ラベル/タイトルをTimesNew Romanに変更し、ドキュメントを検索しましたが、pyplot.legend()


もちろん、投稿してすぐに答えが見つかりました。同じ問題を抱えている他の人のための解決策:

import matplotlib as mpl  
mpl.rc('font',family='Times New Roman')
15
Stu

これはグーグルの結果に表示されていなかったので、私はそれを答えとして投稿するつもりです。フォントのrcパラメータを使用して、単一のデフォルトフォントを設定できます。

同じ問題を抱えている他の人のための解決策:

_import matplotlib as mpl_

mpl.rc('font',family='Times New Roman')

11
Greg.S

.rc与えられた解決策は、すべての図面のデフォルトフォントを変更します。

すべてのフォントを変更するのではなく、この特定のグラフの凡例(特定のaxisオブジェクトに属する凡例)のフォントプロパティのみを変更する場合に、これを行うための解決策を次に示します。

L = ax.legend()
plt.setp(L.texts, family='Consolas')

これにより、凡例と軸に異なるフォントを選択できます。これは、凡例に等幅フォントが必要なときに役立ちますが、軸には必要ありません。次のようなきちんとした凡例を作成できます。

enter image description here

タイトルが凡例とは異なるフォントであることに注意してください。これにより、他の方法では実現が難しい数字の配置が得られます。

9
Floris

これがより良い方法だと思います。

import matplotlib.font_manager as fm

## your font directory 
font_path = '/Users/frhyme/Library/Fonts/BMDOHYEON_otf.otf'

## font_name 
font_name = fm.FontProperties(fname=font_path).get_name()

plt.legend(prop={'family':font_name, 'size':20})
2
frhyme