Matplotlib: mueve la etiqueta del eje X hacia abajo, pero no las marcas del eje X

109

Estoy usando Matplotlib para trazar un histograma. Usando los consejos de mi pregunta anterior: Matplotlib: etiquete cada contenedor , más o menos he resuelto los problemas.

Hay un problema final, anteriormente, la etiqueta del eje x ("Tiempo (en milisegundos)") se representaba debajo de las marcas de graduación del eje x (0.00, 0.04, 0.08, 0.12, etc.)

Sin relleno: etiqueta del eje debajo de las figuras

Siguiendo los consejos de Joe Kingston (vea la pregunta anterior), intenté usar:

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

Sin embargo, esto mueve las marcas de graduación del eje x (0.00, 0.04, 0.08, 0.12, etc.), así como la etiqueta del eje x ("Tiempo (en milisegundos)"):

30 Relleno: tanto la etiqueta del eje como las marcas de verificación se han movido

¿Hay alguna forma de mover solo la etiqueta del eje x debajo de las tres filas de figuras?

Nb: es posible que deba abrir los PNG a continuación directamente: haga clic con el botón derecho en la imagen, luego Ver imagen (en FF) o Abrir imagen en una nueva pestaña (Chrome). El cambio de tamaño de la imagen realizado por SO los ha vuelto casi ilegibles

victorhooi
fuente

Respuestas:

196

utilizar el parámetro del panel de etiquetas:

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

o configúrelo después de:

ax.xaxis.labelpad = 20
HYRY
fuente
13

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 de acuerdo con (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))

Puede establecer la posición de la etiqueta independientemente de las marcas mediante:

    ax.xaxis.set_label_coords(x0, y0)

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

Matthias123
fuente