簡體   English   中英

Python-繪制時間序列數據並使用線連接兩個點

[英]Python - Plot time series data and connect two points using line

雖然看起來並不那么困難,但對於我的一生,我無法弄清楚。 任何幫助將不勝感激。 這是我的情況:

我有一個數據框df1,其中包含日期和價格。 我可以使用此數據通過matplotlib.pyplot繪制圖形。 目前很好。

我有另一個數據框df2,它再次包含日期和價格信息,但僅包含6行。 現在,我需要獲取df2的前兩行,並將其視為兩個點(x軸為Date,y軸為Price),然后將它們連接到上面繪制的圖形上。 與接下來的兩行相同,依此類推。 (df2中將有更多行,但我希望您能得到滿意的結果)。

我試過在兩個df上一個又一個地調用plot()-結果是,當調用df2.plot()時,使用df1.plot()繪制的圖形被擦除,並繪制了df2線。

以下是我需要的結果看起來如何。 在此處輸入圖片說明

df = pd.read_csv(r'https://vincentarelbundock.github.io/Rdatasets/csv/fpp2/goog200.csv', index_col=0)
df2 = df.loc[[57, 98, 169]]

plt.plot(df['time'], df['value'])
plt.plot(df2['time'], df2['value'])
plt.show()

在此處輸入圖片說明


按評論編輯

(在對OP的評論中提供user23564的鏈接答案的信用)

df = pd.read_csv(r'https://vincentarelbundock.github.io/Rdatasets/csv/fpp2/goog200.csv', index_col=0)
df2 = df.loc[[57, 98, 169, 200]].reset_index()

plt.plot(df['time'], df['value'])
for i in range(0, len(df2), 2):
    plt.plot(df2.loc[i:i+1, 'time'], df2.loc[i:i+1, 'value'], c='grey')
plt.show()

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM