Để vẽ hai chuỗi thời gian (time series) có khoảng cách lấy mẫu khác nhau trên cùng một biểu đồ bằng Matplotlib, bạn có thể thực hiện theo các bước sau:
Các bước thực hiện
- Thiết lập kích thước hình vẽ và điều chỉnh khoảng cách giữa các subplot.
- Tạo dữ liệu x1, y1 và x2, y2 cho hai chuỗi thời gian.
- Tạo figure và tập hợp subplot.
- Vẽ dữ liệu chứa ngày/giờ với plot_date() cho cả hai cặp (x1, y1) và (x2, y2).
- Đặt định dạng chính (major formatter) cho nhãn tick trục X.
- Xoay nhãn tick trục X 45 độ bằng tick_params().
- Sử dụng phương thức show() để hiển thị hình vẽ.
Ví dụ minh họa
import matplotlib.pyplot as plt
from matplotlib.dates import date2num, DateFormatter
import datetime as dt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
x1 = [date2num(dt.datetime(2021, 1, 15, 1, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 9, 1, 1))]
y1 = [6, 2]
x2 = [date2num(dt.datetime(2021, 1, 15, 2, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 4, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 6, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 8, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 10, 1, 1))]
y2 = [3, 6, 5, 4, 1]
fig, ax = plt.subplots()
ax.plot_date(x1, y1, 'o--')
ax.plot_date(x2, y2, 'o:')
ax.xaxis.set_major_formatter(DateFormatter('%H:%M:%S'))
ax.tick_params(rotation=45)
plt.show()
Kết quả đầu ra
Biểu đồ hiển thị hai chuỗi thời gian với kiểu đường khác nhau (nét đứt và chấm), trục X hiển thị giờ:phút:giây.