web-dev-qa-db-fra.com

Comment ajouter de l'espace entre les ticklabels et les axes dans matplotlib?

J'ai augmenté la police de mes ticklabels avec succès, mais maintenant ils sont trop proches de l'axe. Je voudrais ajouter un peu de marge de manœuvre entre les ticklabels et l'axe.

54
abjennings

Il semble que matplotlib respecte ces paramètres comme rcParams:

pylab.rcParams['xtick.major.pad']='8'
pylab.rcParams['ytick.major.pad']='8'

Réglez ces avant vous créez des chiffres et vous devriez être bien.

J'ai regardé le code source et il ne semble pas y avoir d'autre moyen de les définir par programme. (tick.set_pad () semble essayer de faire la bonne chose, mais le remplissage semble être défini lorsque les ticks sont construits et ne peuvent plus être modifiés par la suite.)

31
abjennings

Si vous ne voulez pas changer l'espacement globalement (en éditant vos rcParams) et que vous voulez une approche plus propre, essayez ceci:

ax.tick_params(axis='both', which='major', pad=15)

ou pour seulement l'axe x

ax.tick_params(axis='x', which='major', pad=15)

65
wronk

Cela peut être fait en utilisant set_pad mais vous devez ensuite réinitialiser l'étiquette ...

for tick in ax.get_xaxis().get_major_ticks():
    tick.set_pad(8.)
    tick.label1 = tick._get_text1()
17
tom10