Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Vẽ hai chuỗi thời gian khác khoảng cách trên cùng một biểu đồ Matplotlib

Để 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.