Bagaimana cara meletakkan teks di sudut kiri atas (atau kanan atas) gambar matplotlib, misalnya di mana legenda kiri atas berada, atau di atas plot tetapi di sudut kiri atas? Misalnya jika itu adalah sebuah plt.scatter (), maka sesuatu yang akan berada di dalam kuadrat pencar, letakkan di pojok kiri atas.
Saya ingin melakukan ini tanpa mengetahui secara ideal skala scatterplot yang sedang diplot, karena ini akan berubah dari kumpulan data ke kumpulan data. Saya hanya ingin teksnya kira-kira di kiri atas, atau kira-kira di kanan atas. Dengan pemosisian tipe legenda, itu tidak boleh tumpang tindih dengan titik plot pencar apa pun.
Terima kasih!
text
danax.transAxes
) tidak ada di antaranya.Jawaban:
Anda bisa menggunakan
text
.text
koordinat dapat diberikan relatif terhadap sumbu, sehingga posisi teks Anda tidak bergantung pada ukuran plot:Untuk mencegah teks mengganggu titik pencar Anda lebih sulit afaik. Metode yang lebih mudah adalah dengan mengatur y_axis (ymax in
ylim((ymin,ymax))
) ke nilai yang sedikit lebih tinggi dari koordinat y maksimum dari poin Anda. Dengan cara ini Anda akan selalu memiliki ruang kosong ini untuk teks.EDIT: di sini Anda memiliki contoh:
Parameter ha dan va mengatur perataan teks Anda relatif terhadap titik penyisipan. yaitu. ha = 'left' adalah set yang baik untuk mencegah teks panjang keluar dari sumbu kiri saat bingkai diperkecil (dibuat lebih sempit) secara manual.
sumber
from pylab import figure, text, scatter, show
Kode dalam jawaban dijalankan di konsol ipython dalam mode pylab di mana impor eksplisit tidak diperlukan. Pada lingkungan yang bersih Anda perlu mengimpor di atas dan membuatshow()
untuk melihat plotSalah satu solusinya adalah menggunakan
plt.legend
fungsi tersebut, bahkan jika Anda tidak menginginkan legenda yang sebenarnya. Anda dapat menentukan penempatan kotak legenda dengan menggunakanloc
keyterm. Informasi lebih lanjut dapat ditemukan di situs web ini, tetapi saya juga menyertakan contoh yang menunjukkan cara menempatkan legenda:Perhatikan bahwa
loc=2
legenda berada di pojok kiri atas plot. Dan jika teks tumpang tindih dengan plot, Anda dapat membuatnya lebih kecil dengan menggunakanlegend.fontsize
, yang akan membuat legenda lebih kecil.sumber
matplotlib
agak berbeda dari saat jawaban asli dipostingmatplotlib.pyplot.text
matplotlib.axes.Axes.text
Output dari Keduanya
sumber