我正在使用Matplotlib绘制直方图。 使用我之前提问的提示:Matplotlib - label each bin, 我或多或少地解决了问题。
最后一个问题 - 先前 - x轴标签(“时间(以毫秒为单位)”)在x轴刻度线下面呈现(0.00,0.04,0.08,0.12等)
使用Joe Kingston的建议(见上面的问题),我尝试使用:
ax.tick_params(axis='x', pad=30)
然而,这会移动x轴刻度线(0.00,0.04,0.08,0.12等)以及x轴标签(“时间(以毫秒为单位)”):
有没有办法只将x轴标签移动到三行数字下面?
Nb:您可能需要直接打开下面的PNG - 右键单击图像,然后单击“查看图像”(在FF中),或在“新建”选项卡中打开图像(Chrome)。由SO完成的图像调整大小使它们几乎不可读
答案 0 :(得分:157)
使用labelpad参数:
pl.xlabel("...", labelpad=20)
或在之后设置:
ax.xaxis.labelpad = 20
答案 1 :(得分:10)
如果变量ax.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)
通过更改labelpad参数将_autolabelpos设置为False或如上所述。