Saya merencanakan dataset menggunakan di matplotlib
mana saya memiliki xlabel yang cukup "tinggi" (itu adalah rumus yang diberikan dalam TeX yang berisi sebagian kecil dan karenanya memiliki tinggi yang setara dengan beberapa baris teks).
Bagaimanapun, bagian bawah formula selalu terputus ketika saya menggambar angka. Mengubah ukuran gambar sepertinya tidak membantu ini, dan saya belum bisa menemukan cara menggeser sumbu x "ke atas" untuk memberikan ruang bagi xlabel. Sesuatu seperti itu akan menjadi solusi sementara yang masuk akal, tetapi apa yang akan menyenangkan adalah memiliki cara untuk membuat matplotlib mengenali secara otomatis bahwa label terputus dan diubah ukurannya.
Berikut ini contoh yang saya maksud:
import matplotlib.pyplot as plt
plt.figure()
plt.ylabel(r'$\ln\left(\frac{x_a-x_b}{x_a-x_c}\right)$')
plt.xlabel(r'$\ln\left(\frac{x_a-x_d}{x_a-x_e}\right)$')
plt.show()
sementara Anda dapat melihat seluruh ylabel, xlabel terpotong di bagian bawah.
Dalam hal ini adalah masalah khusus mesin, saya menjalankan ini pada OSX 10.6.8 dengan matplotlib 1.0.0
sumber
plt.savefig("test.png",bbox_inches='tight')
: stackoverflow.com/questions/21288062/…Jawaban:
Menggunakan:
untuk memberi ruang bagi label.
Edit:
Karena saya memberi jawaban,
matplotlib
telah menambahkantight_layout()
fungsi. Jadi saya sarankan untuk menggunakannya:harus memberi ruang untuk xlabel.
sumber
gcf().subplots_adjust
daripadaplt.subplots_adjust
? Apakah ada perbedaan?gcf
dangca
? Anda lalai menjelaskan!tight_layout()
memang memperbaiki cutoff xlabels, sayangnya menyebabkan ylabel saya menjadi terputus (yang tidak terpotong sebelumnya). Namun, obat pertama (subplots_adjust(bottom=0.25)
) bekerja dengan baik. Terima kasih.gcf()
dangca()
"dapatkan angka sekarang" dan "dapatkan sumbu saat ini", masing-masing.Opsi yang mudah adalah dengan mengkonfigurasi matplotlib untuk secara otomatis menyesuaikan ukuran plot. Ini berfungsi dengan baik untuk saya dan saya tidak yakin mengapa itu tidak diaktifkan secara default.
Metode 1
Set ini di file matplotlibrc Anda
Lihat di sini untuk informasi lebih lanjut tentang menyesuaikan file matplotlibrc: http://matplotlib.org/users/customizing.html
Metode 2
Perbarui rcParams selama runtime seperti ini
Keuntungan menggunakan pendekatan ini adalah bahwa kode Anda akan menghasilkan grafik yang sama pada mesin yang dikonfigurasi secara berbeda.
sumber
Jika Anda ingin menyimpannya di file, Anda menyelesaikannya menggunakan
bbox_inches="tight"
argumen:sumber
Menempatkan
plot.tight_layout()
setelah semua perubahan pada grafik, tepat sebelumshow()
atausavefig()
akan menyelesaikan masalah.sumber
plt.autoscale()
bekerja untukku.sumber
Anda juga dapat mengatur lapisan khusus sebagai default di
$HOME/.matplotlib/matplotlib_rc
sebagai berikut. Dalam contoh di bawah ini, saya telah memodifikasi bagian bawah dan bagian luar kotak:sumber