Matplotlib – 向下移动X轴标签,但不移动X轴标签

我正在使用Matplotlib绘制直方图。 使用我以前的问题的提示: Matplotlib – 标记每个垃圾箱 ,我或多或less去解决问题。

最后有一个问题 – 以前 – x轴标记(“时间(毫秒)”)正在呈现在x轴标记(0.00,0.04,0.08,0.12等)之下,

没有填充 - 数字下面的轴标签

使用Joe Kingston的build议(参见上面的问题),我试着使用:

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

但是,这会同时移动x轴标记(0.00,0.04,0.08,0.12等)以及x轴标签(“时间(以毫秒)”为单位):

30填充 - 轴标签和刻度线已移动

有没有办法将x轴标签移动到三行数字之下?

铌:您可能需要直接打开下面的PNG – 右键单击​​图像,然后查看图像(在FF),或打开图像在新标签(铬)。 由SO完成的图像大小已经使它们几乎不可读

使用labelpad参数:

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

或者在之后设置它:

 ax.xaxis.labelpad = 20 

如果variablesax.xaxis._autolabelpos = True,matplotlib根据(一些摘录)在axis.py中的函数_update_label_position中设置标签位置:

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

您可以使用以下方法独立于刻度设置标签位置:

  ax.xaxis.set_label_coords(x0, y0) 

通过更改标签板参数将_autolabelpos设置为False或如上所述。