Matplotlib-向下移动X轴标签,但不移动X轴刻度

2024-09-27 19:23:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Matplotlib绘制柱状图。 使用上一个问题的提示:Matplotlib - label each bin, 我已经或多或少地解决了这些问题。

最后一个问题-以前-x轴标签(“时间(以毫秒为单位)”)在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)中打开图像。这样做的图像大小调整使它们几乎不可读


Tags: 图像binmatplotlib时间绘制单位标签ax
2条回答

使用labelpad参数:

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

或设置在:

ax.xaxis.labelpad = 20

如果变量ax.xaxis.\u 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或如上所述。

相关问题 更多 >

    热门问题