2012-09-13 36 views
29

私はこのようなコードを持っている:Matplotlib軸凡例のフォントサイズを設定するには?

import matplotlib.pyplot as plt 
from matplotlib.pyplot import * 
from matplotlib.font_manager import FontProperties 

fontP = FontProperties() 
fontP.set_size('xx-small') 
fig=plt.figure() 
ax1=fig.add_subplot(111) 
plot([1,2,3], label="test1") 
ax1.legend(loc=0, ncol=1, bbox_to_anchor=(0, 0, 1, 1), 
      prop = fontP,fancybox=True,shadow=False,title='LEGEND') 
plt.show() 

legend fontsize

をフォントサイズの設定は、伝説のタイトルのフォントサイズに影響を与えないことプロットで見ることができます。

凡例のタイトルのフォントサイズを小さくするにはどうすればよいですか?

答えて

41

これは間違いなく古い質問ですが、あまりにも私をイライラさせられたし、他の回答のどれも全くフォントサイズ伝説タイトルを変更していないが、代わりに、単にテキストの残りの部分を変更しました。ですから、しばらく私の頭をmatplotlibのドキュメントにぶつけた後、私はこれを考え出しました。

legend = ax1.legend(loc=0, ncol=1, bbox_to_anchor=(0, 0, 1, 1), 
      prop = fontP,fancybox=True,shadow=False,title='LEGEND') 

plt.setp(legend.get_title(),fontsize='xx-small') 
14

私は、個々のプロットのためにそれを設定する方法を知りませんが、私は常にグローバルでそれを行う:

plt.rc('legend',**{'fontsize':6}) 
5

は、私は一般的に、このように行います。プロットは、これはここで

+0

ipythonノートで、私はちょうど '行いますsetp(gca()。get_legend()。get_texts()、fontsize = 'small') '。 –

26

のために動作するかどうか、私は

plt.legend(loc=0, numpoints=1) 
leg = plt.gca().get_legend() 
ltext = leg.get_texts() 
plt.setp(ltext, fontsize='small') 

以下の私にはわからないん行われた後は、伝説のリストおよび/または凡例のタイトルのフォントサイズを変更する方法です。

legend=plt.legend(list,loc=(1.05,0.05), title=r'$\bf{Title}$') #Legend: list, location, Title (in bold) 
legend.get_title().set_fontsize('6') #legend 'Title' fontsize 
plt.setp(plt.gca().get_legend().get_texts(), fontsize='12') #legend 'list' fontsize 
+0

提案したコードをマージする際に助けてください。私はこのコードを私が持っているコードに追加するといくつかのエラーが出てきます。具体的に : トレースバック(最新の呼び出しの最後): で 伝説= plt.legend(リスト、LOC =(1.05,0.05)、タイトル= R '$ \ BF {タイトル} $')#Legend:リスト、場所、タイトル(太字) 凡例のファイル「C:¥Python26¥Lib¥site-packages¥matplotlib¥pyplot.py」2800行目 ret = gca()。legend(* args、** kwargs) ファイル "C:¥Python26¥Lib¥site-packages¥matplotlib¥axes.py"、行4494、凡例 ラベル)] TypeError:ZIP引数2が反復をサポートする必要があります –

+0

これらのコマンドが動作しないことに気付きましたSpyderではIPythonコンソールを使用していますが、標準のPython(v2.7)コンソールでうまく動作します。 IPythonでは、 'NameError:name' gca 'が定義されていません。 – DougR

5

これが最速である:

plt.legend(loc=2,prop={'size':6}) 
4

もそれに対して私の頭とHしちゃった、ここでそれを行うための別のより流れるの方法は次のとおりです。

leg = ax.legend() 
leg.set_title('A great legend',prop={'size':14}) 
関連する問題