Matplotlib-将 X 轴标签向下移动,但不要移动 X 轴标记

我在用 Matplotlib 绘制直方图。 使用我上一个问题中的提示: Matplotlib-标记每个垃圾箱, 我已经或多或少地解决了问题。

还有最后一个问题——之前—— x 轴标签(“ Time (in millissecond)”)被渲染在 x 轴标记(0.00.0.04,0.08,0.12等等)下面

No padding - Axis label underneath figures

使用 Joe Kingston 的建议(见上面的问题) ,我尝试使用:

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

然而,这会同时移动 x 轴标记(0.00.0.04、0.08、0.12等等)和 x 轴标记(“时间(毫秒)”) :

30 Padding - Both Axis Label and Tick Marks have Moved

有没有办法只将 x 轴标签移动到三行图形的下面?

注意: 你可能需要直接打开下面的 PNG-右键点击图片,然后查看图片(在 FF) ,或在新标签打开图片(Chrome)。SO 所做的图像调整使它们几乎不可读

177102 次浏览

使用标签板参数:

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

或设置在:

ax.xaxis.labelpad = 20

如果变量 ax.xaxis. _ autolabelpos = True,matplotlib 根据(一些摘录)设置 axis.py 中 function _ 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)

通过更改 labelpad 参数将 _ autolabelpos 设置为 False 或如上所述。