y.values
dediğinizde altta yatan NumPy array’ine (veya kopyasına) geçiş yapıyorsunuz, y_predicted
da büyük ihtimalle bir NumPy array’i; bunlar pandas series’i/dataframe’i gibi satır ve sütünları için “label” bilmezler, düz sayılardan (bu örnekte) oluşurlar. plt.plot
'a bunları pasladığınızda x-eksenine 0…N-1 otomatik olarak koyulur.
plt.plot
'un ilk parametresine y
'nin indeksini paslayabilirsiniz:
plt.plot(y.index, y.to_numpy().round(3)...)
plt.plot(y.index, y_predicted...)
(.values
yerine .to_numpy
'ın tercih edilmesi öneriliyor tutarlı tasarım adına).
Bu arada pandas’ın da plotting kabiliyeti var (https://pandas.pydata.org/docs/user_guide/visualization.html) belki tamamen pandas domain’inde kalmak da isteyebilirsiniz; ama y_predicted
'ı da elle çevirmeniz gerekir (gibi duruyor: paylaştığınız kodun o kısmı pek belli değil maalesef; ayriyeten resim yerine tekst tercih edilirse yanıtlamaya çalışanların işi de kolaylaşmakta bu arada):
# oop tarzı plot'lama zemini
fig, ax = plt.subplots(figsize=(14, 7))
# pandas üzerinden çizim (yine matplotlib çağrılır); `ax`'ı pasladık
y.round(3).mul(5980).plot(label="gerçek", ls="-", c="g", ax=ax)
# önce pandas serisine çeviririz sonra tekrar üzerinden plot; `ax` aynı `ax`
y_pred = pd.Series(y_predicted, index=y.index)
y_pred.mul(5980).plot(label="tahmin", ls="--", c="r", ax=ax)
# ayarlamalar
ax.legend(loc="upper left")
ax.grid(which="both")