2010-06-03 6 views

Répondre

28

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.)

13

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() 
+4

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

+0

@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

42

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)

+3

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

+0

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. –