Matplotlib - Pindahkan label X-Axis ke bawah, tapi bukan X-Axis Ticks

109

Saya menggunakan Matplotlib untuk merencanakan histogram. Menggunakan tip dari pertanyaan saya sebelumnya: Matplotlib - beri label pada setiap tempat sampah , saya kurang lebih telah berhasil.

Ada satu masalah terakhir - sebelumnya - label sumbu x ("Waktu (dalam milidetik)") dirender di bawah tanda centang sumbu x (0,00, 0,04, 0,08, 0,12 dll.)

Tanpa padding - Label sumbu di bawah gambar

Menggunakan saran dari Joe Kingston (lihat pertanyaan di atas), saya mencoba menggunakan:

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

Namun, ini memindahkan tanda centang sumbu x (0,00, 0,04, 0,08, 0,12 dll.), Serta label sumbu x ("Waktu (dalam milidetik)"):

30 Padding - Label Sumbu dan Tanda Centang telah Pindah

Adakah cara untuk memindahkan hanya label sumbu x ke bawah tiga baris gambar?

Nb: Anda mungkin perlu membuka PNG di bawah ini secara langsung - Klik kanan pada gambar, lalu Lihat Gambar (dalam FF), atau Buka gambar di tab baru (Chrome). Pengubahan ukuran gambar yang dilakukan oleh SO membuatnya hampir tidak bisa dibaca

victorhooi
sumber

Jawaban:

196

gunakan parameter labelpad:

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

atau setel setelah:

ax.xaxis.labelpad = 20
HYRY
sumber
13

Jika variabel ax.xaxis._autolabelpos = True, matplotlib menyetel posisi label dalam fungsi _update_label_position di axis.py sesuai dengan (beberapa kutipan):

    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))

Anda dapat mengatur posisi label secara independen dari kutu dengan menggunakan:

    ax.xaxis.set_label_coords(x0, y0)

yang menyetel _autolabelpos ke False atau seperti yang disebutkan di atas dengan mengubah parameter labelpad.

Matthias123
sumber