Comment définir la taille de police de la légende de L'axe Matplotlib?
j'ai un code comme ceci:
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()
on peut voir dans le graphique que le réglage de Fontsize n'affecte pas la taille de police du titre de la légende.
Comment définir la taille de la police du titre de la légende à une taille plus petite?
6 réponses
C'est certainement une vieille question, mais a été frustrant, moi aussi, et aucune des autres réponses changé la légende titre fontsize à tous, mais plutôt juste changé le reste du texte. Donc après m'être cogné la tête contre la documentation de matplotlib pendant un moment, j'ai trouvé ça.
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')
Voici comment changer la taille de la police de la liste de légende et/ou du titre de la légende:
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
je ne sais pas comment le configurer pour une parcelle individuelle, mais j'ai toujours le faire à l'échelle mondiale:
plt.rc('legend',**{'fontsize':6})
cogné ma tête contre elle aussi, Voici une autre façon plus fluide de le faire:
leg = ax.legend()
leg.set_title('A great legend',prop={'size':14})
je fais généralement de cette façon. Une fois l'intrigue terminée, je fais ce qui suit
plt.legend(loc=0, numpoints=1)
leg = plt.gca().get_legend()
ltext = leg.get_texts()
plt.setp(ltext, fontsize='small')
je ne sais pas si cela fonctionne pour vous