62

私はこのようなコードを持っています:

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()

凡例のフォントサイズ

Fontsize の設定が Legend Title のフォント サイズに影響しないことがプロットで確認できます。

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

4

8 に答える 8

86

これは間違いなく古い質問ですが、私もイライラしていました。他の回答は凡例のタイトルのフォントサイズをまったく変更せず、残りのテキストを変更しただけです。そのため、しばらく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')

Matplotlib 3.0.3 以降、グローバルに設定することもできます

plt.rcParams['legend.title_fontsize'] = 'xx-small'
于 2013-06-13T17:34:00.880 に答える
41

凡例リストおよび/または凡例タイトルのフォントサイズを変更する方法は次のとおりです。

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
于 2013-01-24T10:45:51.840 に答える
15

個々のプロットに設定する方法はわかりませんが、常にグローバルに設定します:

plt.rc('legend',**{'fontsize':6})
于 2012-09-13T10:09:32.353 に答える
7

これは最速です:

plt.legend(loc=2,prop={'size':6})
于 2016-06-23T11:27:57.663 に答える
5

私はだいたいこの方法でやっています。プロットが完了したら、次のことを行います

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

これがうまくいくかどうかはわかりません

于 2012-09-13T10:18:29.397 に答える