Matplotlib-перемещение метки по оси X вниз, но не по оси X Тики


Я использую Matplotlib для построения гистограммы. Используя советы из моего предыдущего вопроса: Matplotlib-метка каждого Бина, Я более или менее едут работаю.

есть одна последняя проблема - ранее-метка оси x ("время (в миллисекундах)") отображалась под отметками оси x (0.00, 0.04, 0.08, 0.12 и т. д.)

используя совет от Джо Кингстона (см. вопрос выше), я попытался использование:

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

тем не менее, это перемещает обе метки оси x (0.00, 0.04, 0.08, 0.12 и т. д.), а также метка оси x ("время (в миллисекундах)"):

есть ли способ переместить только метку оси x под три ряда фигур?

Nb: вам может потребоваться открыть PNGs ниже напрямую - щелкните правой кнопкой мыши на изображении, затем просмотрите изображение (в FF) или откройте изображение на новой вкладке (Chrome). Изменение размера изображения сделано так оказал им почти нечитабельный

2 81

2 ответа:

использовать параметр labelpad:

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

или установите его после:

ax.xaxis.labelpad = 20

если переменная ax.абсцисс._autolabelpos = правда, библиотек matplotlib задает положение надписи в _update_label_position функции в axis.py по данным (некоторые выдержки):

    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 или, как упоминалось выше, изменяя параметр labelpad.