Подтвердить что ты не робот

Как установить размер шрифта оси Matplotlib Legend?

У меня есть такой код:

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 не влияет на размер шрифта заголовка легенды.

Как установить размер шрифта заголовка легенды на меньший размер?

4b9b3361

Ответ 1

Это, безусловно, старый вопрос, но меня это тоже расстраивало, и ни один из других ответов вообще не изменил размер шрифта заголовка легенды, а просто изменил остальную часть текста. Поэтому, после того, как я некоторое время ударился головой о документацию по 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'

Ответ 2

Вот как изменить шрифт списка легенд и/или название легенды:

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

Ответ 3

Я тоже ударил головой об этом, вот еще один более быстрый способ сделать это:

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

Ответ 4

Я не знаю, как настроить его для отдельного сюжета, но я всегда делаю это глобально:

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

Ответ 5

Это самый быстрый:

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

Ответ 6

Я обычно так делаю. Как только график был выполнен, я делаю следующее

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

Я не знаю, работает ли это для вас