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

Jawaban:


196

gunakan parameter labelpad:

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

atau setel setelah:

ax.xaxis.labelpad = 20

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.