2010-06-03 37 views

Respuesta

28

Parece que matplotlib respeta estos ajustes como rcParams:

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

Establecer los antes de crear cualquier figuras y que debe estar bien.

He mirado el código fuente y no parece haber otra forma de configurarlos mediante programación. (tick.set_pad() parece que intenta hacer lo correcto, pero el relleno parece estar configurado cuando los Ticks están construidos y no se pueden cambiar después de eso.)

13

Esto se puede hacer utilizando set_pad pero usted entonces tendrá que restablecer la etiqueta ...

for tick in ax.get_xaxis().get_major_ticks(): 
    tick.set_pad(8.) 
    tick.label1 = tick._get_text1() 
+4

Sugeriría que feo aquí es algo irrelevante y que esta sigue siendo una buena solución. Hay muchas ocasiones en que no solo estás haciendo una trama en la misma figura. Esto significa que rcParams no es una solución porque quiere evitar la configuración global. – MikeGM

+0

@MikeGM: En retrospectiva, estoy de acuerdo con usted por las razones que menciona. Voy a sacar mi descripción de esto como fea, aunque el restablecimiento de la etiqueta no es exactamente elegante. Gracias por tu comentario. – tom10

42

Si no desea cambiar el espacio a nivel mundial (editando sus rcParams), y quiere un enfoque más limpio, intente esto:

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

o solo para eje x

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

+3

Esto es mucho más fácil que iterar a través de ticks para una sola parcela. ¡Gracias! Para un solo eje, también puede usar: 'ax.xaxis.set_tick_params (pad = n)' – jonchar

+0

Muy difícil para un lector inexperto comprender qué es ax. Si lo consigo con ax = plt.gca(), entonces el comando solo mueve las etiquetas. –

Cuestiones relacionadas