1. 程式人生 > >matplotlib繪製x軸為時間的圖

matplotlib繪製x軸為時間的圖

圖形視覺化中時間軸應該是比較常見的了,不管在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