Python 時間序列作圖及注釋


 一、時間序列作圖

 對時間序列作圖時,如果橫坐標刻度為日期數據的話,利用Matplotlib.pyplot作出的圖並不理想(不連續)。例如,對如下格式數據進行畫圖:

   

   

     

     可以看出,上圖效果並不理想。將橫軸刻度改為數字。

     

二、對時間序列進行注釋

      若要對上圖的其中一些數據進行注釋,因為橫軸刻度為數字,不是日期,因此在注釋上存在一些難度。下面的數據為上圖數據的一部分。

       

   兩者間只有日期索引是相同的,因此想辦法將上圖中數據的日期索引改為數字索引,注意兩者的數字索引應一致,才能根據數字索引找到對應的數據。關鍵在於將數據的索引轉為list格式。這樣日期和數字索引就對應上了。

       

    這樣,通過日期就能找到對應的數字數字索引。

    

 

    好了,就講到這里吧,下面放上一段注釋及畫圖的代碼:

import datetime
timedelta1 = datetime.timedelta(days=2)
timedelta2 = datetime.timedelta(minutes=10)
for i in range(0,len(df['open_dt'])):
    plt.figure(i)
    plt.figure(figsize=(15,6))
    ax = plt.subplot(111)
    jiacha = data['jiacha'][(pd.to_datetime(df['open_dt'][i]) - timedelta1)\
    :(pd.to_datetime(df['close_dt'][i])+timedelta1)]
    ix = list(jiacha.index)
    jiacha1 = np.array(jiacha)
    jiacha1 = pd.Series(jiacha1)
    plt.plot(jiacha1)
    plt.annotate('open',xy=(ix.index(pd.to_datetime(df['open_dt'][i])),df['open_zly'][i]-df['open_dy'][i]),
                 xytext=(ix.index(pd.to_datetime(df['open_dt'][i])),df['open_zly'][i]-df['open_dy'][i]+10),
                  arrowprops = dict(facecolor='red',shrink=0.1))
    plt.annotate('close',xy= (ix.index(pd.to_datetime(df['close_dt'][i])),df['close_zly'][i]-df['close_dy'][i]),
                 xytext=(ix.index(pd.to_datetime(df['close_dt'][i])),df['close_zly'][i]-df['close_dy'][i]+10),
                 arrowprops = dict(facecolor='black',shrink=0.1))
    plt.show() 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM