Matplotlib 繪製時間序列

Suraj Joshi 2023年1月30日 2020年11月24日
  1. 在 Matplotlib 中通過將文字轉換為 datetime.datetime 格式來繪製時間序列資料
  2. 在 Matplotlib 中使用 matplotlib.pyplot.plot_date() 方法繪製時間序列資料
Matplotlib 繪製時間序列

要在 Python 中繪製時間序列資料,我們可以使用 datetime.datetime 函式將文字格式的日期轉換為 datetime.strptime() 格式。我們也可以使用 matplotlib.pyplot.plot_date() 函式。

在 Matplotlib 中通過將文字轉換為 datetime.datetime 格式來繪製時間序列資料

from datetime import datetime
import matplotlib.pyplot as plt 

dates=["2020-may-20","2020-may-21","2020-may-22","2020-may-23","2020-may-24","2020-may-25","2020-may-26"]
x=[datetime.strptime(date, "%Y-%b-%d").date() for date in dates]
y=[20,30,35,18,24,28,26]

plt.plot(x,y,marker="o")
plt.gcf().set_size_inches(9, 7)
plt.show()

輸出:

在 Matplotlib 中通過將文字轉換為日期時間格式來繪製時間序列資料

它通過首先使用 strptime() 方法將文字中的日期轉換為 datetime 格式,生成 dates 列表中給定時間序列資料的圖。使用 date() 方法對 datetime 物件進行處理,我們忽略 datetime 物件的時間部分。然後我們使用 plot() 方法繪製 datetime 格式的資料。

在 Matplotlib 中使用 matplotlib.pyplot.plot_date() 方法繪製時間序列資料

如果日期是 datetime 格式,我們可以使用 matplotlib.pyplot.plot_date() 方法從資料中生成一個時間序列圖。

from datetime import datetime
import matplotlib.pyplot as plt 

dates=["2020-may-20","2020-may-21","2020-may-22","2020-may-23","2020-may-24","2020-may-25","2020-may-26"]
x=[datetime.strptime(date, "%Y-%b-%d").date() for date in dates]
y=[20,30,35,18,24,28,26]

plt.plot_date(x, y)
plt.gcf().set_size_inches(8, 6)
plt.tight_layout()
plt.show()

輸出:

在 Matplotlib 中使用 plot_date 方法繪製時間序列資料

它將建立一個時間序列資料的散點圖。如果我們想建立一個線圖,我們使用 linestyle ='solid'作為 plot_date() 方法的引數。

from datetime import datetime
import matplotlib.pyplot as plt 

dates=["2020-may-20","2020-may-21","2020-may-22","2020-may-23","2020-may-24","2020-may-25","2020-may-26"]
x=[datetime.strptime(date, "%Y-%b-%d").date() for date in dates]
y=[20,30,35,18,24,28,26]

plt.plot_date(x, y,linestyle ='solid')
plt.gcf().set_size_inches(8, 6)
plt.tight_layout()
plt.show()

輸出:

在 Matplotlib 中使用 plot_date 方法繪製的時間序列資料線圖

它將使用 matplotlib.pyplot.plot_date() 方法生成時間序列資料的線圖。

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn