18 votos

Matplotlib - Mover la etiqueta del eje X hacia abajo, pero no las marcas del eje X

Nb: Es posible que tenga que abrir los PNGs de abajo directamente - Haga clic derecho en la imagen, a continuación, ver la imagen (en FF), o abrir la imagen en una nueva pestaña (Chrome). El cambio de tamaño de la imagen hecha por SO ha hecho casi ilegible ... lol.

Estoy usando Matplotlib para trazar un histograma.

Utilizando los consejos de mi pregunta anterior:

Matplotlib - etiquetar cada recipiente

Más o menos he solucionado los problemas =).

Hay un último problema: antes, la etiqueta del eje x ("Tiempo (en milisegundos)") se mostraba debajo de las marcas del eje x (0,00, 0,04, 0,08, 0,12, etc.)

No padding - Axis label underneath figures

Siguiendo el consejo de Joe Kingston (véase la pregunta anterior), he probado a utilizar:

ax.tick_params(axis='x', pad=30)

Sin embargo, esto desplaza tanto las marcas del eje x (0,00, 0,04, 0,08, 0,12, etc.), como la etiqueta del eje x ("Tiempo (en milisegundos)"):

30 Padding - Both Axis Label and Tick Marks have Moved

¿Hay alguna forma de mover sólo la etiqueta del eje x a la parte inferior de las tres filas de cifras?

Salud, Victor

27voto

HYRY Puntos 26340

utilizar el parámetro labelpad:

pl.xlabel("...", labelpad=20)

o ponerlo después:

ax.xaxis.labelpad = 20

1voto

Matthias123 Puntos 76

Si la variable ax.xaxis._autolabelpos = True, matplotlib establece la posición de la etiqueta en la función _update_label_position en axis.py según (algunos extractos):

    bboxes,bboxes2 = self._get_tick_bboxes(ticks_to_draw, renderer)
    bbox = mtransforms.Bbox.union(bboxes)
    bottom = bbox.y0
    x, y = self.label.get_position()
    self.label.set_position((x,bottom-self.labelpad*self.figure.dpi/72.0))

Puedes establecer la posición de la etiqueta independientemente de los ticks utilizando:

    ax.xaxis.set_label_coords( (x0,y0) )

que establece _autolabelpos en False o como se mencionó anteriormente cambiando el parámetro labelpad.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X