Saya mencoba memplot dua kuantitas terpisah pada grafik yang sama menggunakan twiny sebagai berikut:
fig = figure()
ax = fig.add_subplot(111)
ax.plot(T, r, 'b-', T, R, 'r-', T, r_geo, 'g-')
ax.set_yscale('log')
ax.annotate('Approx. sea level', xy=(Planet.T_day*1.3,(Planet.R)/1000), xytext=(Planet.T_day*1.3, Planet.R/1000))
ax.annotate('Geostat. orbit', xy=(Planet.T_day*1.3, r_geo[0]), xytext=(Planet.T_day*1.3, r_geo[0]))
ax.set_xlabel('Rotational period (hrs)')
ax.set_ylabel('Orbital radius (km), logarithmic')
ax.set_title('Orbital charts for ' + Planet.N, horizontalalignment='center', verticalalignment='top')
ax2 = ax.twiny()
ax2.plot(v,r,'k-')
ax2.set_xlabel('Linear speed (ms-1)')
show()
dan datanya disajikan dengan baik, tetapi saya memiliki masalah bahwa judul gambar tumpang tindih dengan label sumbu pada sumbu x sekunder sehingga hampir tidak dapat dibaca (saya ingin memposting contoh gambar di sini, tapi saya tidak punya rep yang cukup tinggi).
Saya ingin tahu apakah ada cara mudah untuk hanya menggeser judul secara langsung beberapa puluh piksel, sehingga grafik terlihat lebih cantik.
python
matplotlib
title
figure
Magic_Matt_Man
sumber
sumber
Jawaban:
Saya tidak yakin apakah ini fitur baru di versi matplotlib nanti, tetapi setidaknya untuk 1.3.1, ini hanyalah:
Ini juga berfungsi untuk
plt.suptitle()
, tetapi tidak (belum) untukplt.xlabel()
, dll.sumber
labelpad
, lihat di sini .title
telah mengambilx
dany
argumen untuk waktu yang sangat lama (selama saya bisa ingat, bagaimanapun juga).Lupakan menggunakan
plt.title
dan menempatkan teks secara langsung denganplt.text
. Contoh berlebihan yang diberikan di bawah ini:sumber
tight_layout
masih tidak terlihat cocok dengan penempatan non-standar. Mungkin Anda bisa membuat laporan bug?title = plt.title(...)
kemudian Anda dapat menentukan untuk membingkai plot dengan ketat di sekitar judul menggunakan opsibbox_extra_artists
:figure.savefig(filename, bbox_extra_artists=(title), bbox_inches='tight')
Jika Anda meletakkan
'\n'
tepat setelah string judul Anda, plot diambil tepat di bawah judul. Itu mungkin solusi yang cepat juga.sumber
Saya mengalami masalah dengan label-x yang tumpang tindih dengan judul subplot; ini bekerja untuk saya:
sebelum
setelah
referensi:
sumber
Gunakan saja
plt.tight_layout()
sebelumnyaplt.show()
. Ini bekerja dengan baik.sumber
Anda dapat menggunakan kertas untuk kasus ini:
sumber