Dalam gambar matplotlib, bagaimana saya bisa membuat ukuran font untuk label centang menggunakan ax1.set_xticklabels()
lebih kecil?
Lebih lanjut, bagaimana seseorang dapat memutarnya dari horizontal ke vertikal?
python
matplotlib
Buka jalannya
sumber
sumber
Jawaban:
Harap perhatikan bahwa versi MPL yang lebih baru memiliki pintasan untuk tugas ini. Contoh ditampilkan dalam jawaban lain untuk pertanyaan ini: https://stackoverflow.com/a/11386056/42346
Kode di bawah ini untuk tujuan ilustrasi dan mungkin belum tentu dioptimalkan.
sumber
plt.setp
. (Juga, lihatlahax.tick_params
) Misalnya, Anda bisa melakukannyaplt.setp(ax.get_xticklabels(), rotation='vertical', fontsize=14)
. Juga, objek sumbu memilikiax.is_last_row()
metode yang dapat berguna dalam kasus-kasus seperti contoh Anda. Alih-alihif i != len...
, Anda bisa melakukannyaif not ax.is_last_row()
. (Mengapa ini metode, saya tidak tahu ... Matplotlib membenci properti, rupanya!)is_last_row()
, terima kasih! Saya telah menggunakanplt.setp
di masa lalu, dan tidak selalu yakin itu mewakili cara yang lebih kanonik untuk menyesuaikan label centang. Anda telah menghapus keraguan itu, terima kasih. Secara lebih luas: jawaban Anda, terutama dalammatplotlib
tag, sering membuat saya kagum. Terus bekerja dengan baik.plt.setp
adalah "matlab-isme", dan loop eksplisit mungkin jauh lebih pythonic. Menjadi mualaf matlab, saya sendiri,setp
terasa alami, tetapi untuk masing-masing mereka sendiri. Salah satunya cukup mudah dibaca, imoax.tick_params(axis='x', labelsize=8)
get_ticklabels
tidakget_major_ticks
Sebenarnya ada cara yang lebih sederhana. Saya baru saja menemukan:
Ini hanya menjawab ukuran
label
sebagian dari pertanyaan Anda.sumber
axis = 'x'
atauaxis = 'y'
untuk memodifikasi hanya satu sumbuUntuk menentukan ukuran dan rotasi font sekaligus, coba ini:
sumber
Atau, Anda bisa melakukan:
sumber
sumber
ax.xaxis.set_tick_params(labelsize=20)
Alternatif lain
Saya memiliki dua plot berdampingan dan ingin menyesuaikan label centang secara terpisah.
Solusi di atas sudah dekat tetapi mereka tidak berhasil untuk saya. Saya menemukan solusi saya dari halaman matplotlib ini .
Ini berhasil dan langsung pada intinya. Untuk kasus penggunaan saya, plot di sebelah kanan yang perlu disesuaikan. Untuk plot di sebelah kiri karena saya membuat label centang baru saya dapat menyesuaikan font dalam proses yang sama seperti mengatur label.
yaitu
jadi saya gunakan untuk plot yang tepat,
Kehalusan kecil ... Saya tahu ... tapi saya harap ini membantu seseorang :)
Poin bonus jika ada yang tahu cara menyesuaikan ukuran font dari urutan label magnitude.
sumber
Dalam versi Matplotlib saat ini, Anda dapat melakukannya
axis.set_xticklabels(labels, fontsize='small')
.sumber
labels
juga. Lebih baik jika kita dapat mengubah ukuran font saja.Anda juga dapat mengubah parameter tampilan label seperti ukuran huruf dengan garis seperti ini:
sumber
Untuk font yang lebih kecil, saya menggunakan
ax1.set_xticklabels(xticklabels, fontsize=7)
dan itu berhasil!
sumber
Berikut ini bekerja untuk saya:
Keuntungan dari atas Anda tidak perlu memberikan
array
darilabels
dan bekerja dengan data padaaxes
.sumber