Saya punya plot faktor sederhana
import seaborn as sns
g = sns.factorplot("name", "miss_ratio", "policy", dodge=.2,
linestyles=["none", "none", "none", "none"], data=df[df["level"] == 2])
Masalahnya adalah bahwa semua label x berjalan bersama, membuatnya tidak dapat dibaca. Bagaimana Anda memutar teks sehingga label dapat dibaca?
matplotlib
seaborn
dan
sumber
sumber
import matplotlib.pylab as plt
.plt.xticks(rotation=45)
Jawaban:
Aman benar bahwa Anda dapat menggunakan perintah matplotlib normal, tetapi ini juga dibangun ke dalam
FacetGrid
:Ada beberapa komentar dan jawaban lain mengklaim ini "tidak berfungsi", namun, siapa pun dapat menjalankan kode seperti yang ditulis di sini dan melihat bahwa itu berfungsi. Jawaban lain tidak memberikan contoh yang direproduksi dari apa yang tidak bekerja, sehingga sangat sulit untuk alamat, tapi saya duga adalah bahwa orang yang mencoba untuk menerapkan solusi ini ke output dari fungsi yang mengembalikan sebuah
Axes
objek bukannyaFacet Grid
. Ini adalah hal yang berbeda, danAxes.set_xticklabels()
metode ini memang memerlukan daftar label dan tidak bisa begitu saja mengubah properti label yang ada diAxes
. Pelajarannya adalah bahwa penting untuk memperhatikan objek apa yang sedang Anda kerjakan.sumber
ha="right"
untuk mensejajarkan label sumbu-x dengan tanda centangnya. yaitug.set_xticklabels([label1, label2], rotation=30, ha='right')
g.set_xticklabels(rotation=30)
menjadig.set_xticklabels(g.get_xticklabels(), rotation=30)
berkat jawaban ini: stackoverflow.com/a/39689464/1870832FacetGrid
objek, beberapa mengembalikanAxes
objek Matplotlib . Untuk yang pertama, tidak mengatur label akan berfungsi, untuk yang kedua, itu tidak akan. Anda dapat melihat objek mana sajaFacetGrid
dengan melihat dokumentasi: seaborn.pydata.org/api.html . Misalnya, jika Anda menggunakang = sns.catplot()
ini akan berhasil, tetapisns.barplot()
tidak karena itu mengembalikanAxes
objek.Saya punya masalah dengan jawaban oleh @ mwaskorn, yaitu itu
gagal, karena ini juga memerlukan label. Sedikit lebih mudah daripada jawaban oleh @Aman untuk hanya menambahkan
sumber
g.set_xticklabels(g.get_xticklabels(), rotation=30)
. Tetapkan ke variabel jika Anda ingin menekan output.plt.xtics
bekerja untuk saya.Ini masih merupakan objek matplotlib. Coba ini:
sumber
Jika ada yang bertanya-tanya bagaimana cara ini untuk clustermap CorrGrids (bagian dari contoh dasar laut yang diberikan):
sumber
Anda juga dapat menggunakan
plt.setp
sebagai berikut:untuk memutar label 90 derajat.
sumber
Untuk a
seaborn.heatmap
, Anda dapat memutar menggunakan ini (berdasarkan jawaban @ Aman )sumber
Plot burung laut apa pun yang didukung oleh facetgrid tidak akan berfungsi dengan baik (mis. Catplot)
namun barplot, countplot, dll. akan berfungsi karena tidak didukung oleh facetgrid. Di bawah ini akan bekerja untuk mereka.
Juga, jika Anda memiliki 2 grafik yang saling overlay, coba set_xticklabels pada grafik yang mendukungnya.
sumber