Saya telah menggunakan interpolasi spline untuk memperlancar deret waktu dan juga ingin menambahkan garis horizontal ke plot. Tapi sepertinya ada masalah yang ada di luar jangkauan saya. Setiap bantuan akan sangat membantu. Inilah yang saya miliki:
annual = np.arange(1,21,1)
l = np.array(value_list) # a list with 20 values
spl = UnivariateSpline(annual,l)
xs = np.linspace(1,21,200)
plt.plot(xs,spl(xs),'b')
plt.plot([0,len(xs)],[40,40],'r--',lw=2)
pylab.ylim([0,200])
plt.show()
Masalahnya tampaknya dengan penggunaan saya [0,len(xs)]
untuk merencanakan garis horizontal.
python
matplotlib
Saya menjadi
sumber
sumber
Anda sedang mencari
axhline
(garis sumbu horizontal). Misalnya, berikut ini akan memberi Anda garis horizontal diy = 0.5
:sumber
axhline
.Jika Anda ingin menggambar garis horizontal pada sumbu, Anda juga dapat mencoba
ax.hlines()
metode. Anda perlu menentukany
posisi danxmin
danxmax
dalam koordinat data (yaitu, kisaran data aktual Anda di sumbu x). Cuplikan kode contoh adalah:Cuplikan di atas akan memplot garis horizontal pada sumbu di
y=0.2
. Garis horizontal dimulai padax=4
dan berakhir padax=20
. Gambar yang dihasilkan adalah:sumber
axhline
ketika Anda membutuhkan rentang x spesifik dari garis yang ingin Anda gambar. Apa perbedaan antara 'axhline' dan 'hlines'?axhline
,xmin
danxmax
dalam hal sumbu berkoordinasi sehingga mereka berada dalam kisaran [0, 1]. Anda dapat melihat di sini untuk perbedaan antara sistem koordinat yang berbeda.xmin
danxmax
perbedaan adalah satu-satunya perbedaan antaraaxhline
danhlines
, bukankah yang terakhir mendominasi yang pertama?Gunakan
matplotlib.pyplot.hlines
:y
dapat dilewatkan sebagai satu lokasi:y=40
y
dapat dilewati sebagai beberapa lokasi:y=[39, 40, 41]
fig, ax = plt.subplots()
, maka gantiplt.hlines
atauplt.axhline
denganax.hlines
atauax.axhline
, masing-masing.matplotlib.pyplot.axhline
hanya dapat memplot satu lokasi (mis.y=40
)sumber
Selain jawaban yang paling upvoted di sini, satu juga dapat rantai
axhline
setelah meneleponplot
padapandas
'sDataFrame
.sumber
Cara yang baik dan mudah bagi orang-orang yang selalu lupa perintah
axhline
adalah sebagai berikutDalam kasus Anda
xs = x
dany = 40
. Jika len (x) besar, maka ini menjadi tidak efisien dan Anda harus benar-benar menggunakannyaaxhline
.sumber
Anda dapat menggunakan
plt.grid
untuk menggambar garis horizontal.sumber