Banyak jawaban "benar" di sini tetapi saya akan menambahkan satu lagi karena saya pikir beberapa perincian tidak disertakan. OP meminta rotasi 90 derajat tetapi saya akan berubah menjadi 45 derajat karena ketika Anda menggunakan sudut yang tidak nol atau 90, Anda juga harus mengubah perataan horizontal; jika tidak, label Anda akan tidak di tengah dan agak menyesatkan (dan saya rasa banyak orang yang datang ke sini ingin memutar sumbu ke sesuatu selain 90).
Kode termudah / paling tidak
Pilihan 1
plt.xticks(rotation=45, ha='right')
Seperti disebutkan sebelumnya, itu mungkin tidak diinginkan jika Anda lebih suka mengambil pendekatan Berorientasi Objek.
pilihan 2
Cara cepat lain (ini ditujukan untuk objek tanggal tetapi tampaknya bekerja pada label apa pun; ragu bahwa ini direkomendasikan):
fig.autofmt_xdate(rotation=45)
fig
Anda biasanya akan mendapatkan dari:
fig = plt.figure()
fig, ax = plt.subplots()
fig = ax.figure
Berorientasi Objek / Berurusan langsung dengan ax
Opsi 3a
Jika Anda memiliki daftar label:
labels = ['One', 'Two', 'Three']
ax.set_xticklabels(labels, rotation=45, ha='right')
Opsi 3b
Jika Anda ingin mendapatkan daftar label dari plot saat ini:
# Unfortunately you need to draw your figure first to assign the labels,
# otherwise get_xticklabels() will return empty strings.
plt.draw()
ax.set_xticklabels(ax.get_xticklabels(), rotation=45, ha='right')
Opsi 4
Mirip dengan di atas, tetapi sebaliknya melalui manual.
for label in ax.get_xticklabels():
label.set_rotation(45)
label.set_ha('right')
Opsi 5
Kami masih menggunakan pyplot
(seperti plt
) di sini tetapi berorientasi objek karena kami mengubah properti dari ax
objek tertentu .
plt.setp(ax.get_xticklabels(), rotation=45, ha='right')
Opsi 6
Opsi ini sederhana, tetapi AFAIK Anda tidak dapat mengatur label dengan menyelaraskan cara ini sehingga opsi lain mungkin lebih baik jika sudut Anda tidak 90.
ax.tick_params(axis='x', labelrotation=45)
Sunting:
Ada diskusi tentang "bug" ini dan perbaikannya berpotensi dijadwalkan untuk v3.2.0
:
https://github.com/matplotlib/matplotlib/issues/13774
ha
(horizontal align)