Matplotlib - перемістіть мітку X-Axis вниз, але не X-Axis Ticks


109

Я використовую 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 ("Час (у мілісекундах)"):

30 Прокладка - переміщені як маркування осі, так і позначки галочки

Чи є спосіб перемістити лише мітку осі x до трьох рядів фігур?

Nb: Можливо, вам буде потрібно відкрити PNG нижче безпосередньо - клацніть правою кнопкою миші на зображення, потім перегляд зображення (у FF) або відкрити зображення на новій вкладці (Chrome). Зміна розміру зображення, зроблена SO, зробила їх майже нечитабельними

Відповіді:


196

використовувати параметр мітки:

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

або встановити після:

ax.xaxis.labelpad = 20

13

Якщо змінна ax.xaxis._autolabelpos = True, 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.