matplotlib繪製x軸為時間的圖
阿新 • • 發佈:2019-02-12
圖形視覺化中時間軸應該是比較常見的了,不管在R語言中還是Python中,都可以直接plot(x,y)直接繪製出來,但很大概率座標軸文字重疊,因為將時間直接當做字串處理,若還想自定義時間格式,必須先將資料轉換為時間型別,再用相應的方法設定。
其實每個部分都有相應的部落格了,但目前我沒找到一個完整的過程,下面直接貼程式碼:
其中主要的程式碼是import numpy as np import pandas as pd import matplotlib.dates as mdates #處理日期 import matplotlib.pyplot as plt #讀入日期 df = pd.read_csv('AAPL.csv') x = df['Date'] x = pd.to_datetime(x) #轉換為日期,否則下面的日期設定不會生效 y = df['Adj Close'].pct_change() * 100 y[0] = 0 #將第一條缺失值填充為0,作為起點 #plt.gca()函式獲得當前坐標軸,然後才能設定引數或作圖,plt.plot()內部實現了這一步驟 plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m')) #設定x軸主刻度顯示格式(日期) plt.gca().xaxis.set_major_locator(mdates.MonthLocator(interval=2)) #設定x軸主刻度間距 plt.plot(x,y)
pd.to_datetime(x)
這一步完成時間型別轉換,在此前提下才能:
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m')) #設定x軸主刻度顯示格式(日期)
plt.gca().xaxis.set_major_locator(mdates.MonthLocator(interval=2)) #設定x軸主刻度間距
完成刻度設定。
時間處理自帶函式的也有,具體參見:https://blog.csdn.net/ly_ysys629/article/details/73822716
主次刻度設定參見:https://blog.csdn.net/matrix_laboratory/article/details/50699786