web-dev-qa-db-ja.com

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

プロットから、Fontsizeの設定がLegend Titleフォントサイズに影響しないことがわかります。

凡例タイトルのフォントサイズを小さいサイズに設定する方法は?

48
Tapajit Dey

これは間違いなく古い質問ですが、私もイライラしていましたし、他の答えは凡例を変更しませんでしたtitle fontsizeが、テキストの残りを変更しました。だから、しばらくの間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'
58
nothilaryy

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

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
34
DougR

それに頭を打ちました、もう一つのより流れる方法があります:

leg = ax.legend()
leg.set_title('A great legend',prop={'size':14})
19
Max

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

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

これは最速です:

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

私は一般的にこのようにします。プロットが完了したら、次のことを行います

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

これがあなたのために働くかどうかはわかりません

5
Nicola Vianello