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.Comment ajouter de l'espace entre les ticklabels et les axes dans matplotlib?
Répondre
Il ressemble à matplotlib respecte ces paramètres comme rcParams:
pylab.rcParams['xtick.major.pad']='8'
pylab.rcParams['ytick.major.pad']='8'
Définissez les 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() a l'air d'essayer de faire la bonne chose, mais le padding semble être réglé lorsque les ticks sont construits et ne peuvent pas être modifiés après cela.)
Ceci peut être fait en utilisant set_pad
doivent alors réinitialiser l'étiquette ...
for tick in ax.get_xaxis().get_major_ticks():
tick.set_pad(8.)
tick.label1 = tick._get_text1()
Si vous ne voulez pas changer globalement l'espacement (en modifiant 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)
Cela est beaucoup plus facile que d'itérer à travers les tiques pour une seule parcelle. Merci! Pour un seul axe, vous pouvez aussi utiliser: 'ax.xaxis.set_tick_params (pad = n)' – jonchar
Assez difficile pour un lecteur inexpérimenté de comprendre ce qu'est ax. Si je l'obtiens avec ax = plt.gca(), alors la commande ne fait que déplacer les étiquettes. –
Je dirais que ici laid est un peu hors de propos et que cela reste une bonne solution. Il y a beaucoup d'occasions où vous ne faites pas juste une intrigue sur le même chiffre. Cela signifie que rcParams n'est pas une solution car vous voulez éviter les paramètres globaux. – MikeGM
@MikeGM: Rétrospectivement, je suis d'accord avec vous pour les raisons que vous mentionnez. Je vais prendre ma description de ce qui est laid, même si la réinitialisation de l'étiquette n'est pas vraiment élégante. Merci pour votre commentaire. – tom10