Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào tôi có thể vẽ hai chuỗi thời gian có khoảng cách khác nhau trên cùng một biểu đồ trong Python Matplotlib?

Để vẽ hai chuỗi thời gian có khoảng cách khác nhau trên cùng một biểu đồ bằng Matplotlib, chúng ta có thể thực hiện các bước sau

Các bước

  • Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô con.

  • Tạo x1, y1 x2 y2 điểm dữ liệu.

  • Tạo một hình và một tập hợp các ô phụ.

  • Vẽ đồ thị dữ liệu có chứa ngày tháng, với (x1, y1) (x2, y2) điểm dữ liệu.

  • Đặt định dạng chính của nhãn đánh dấu trục X .

  • Xoay xtick nhãn nghiêng 45 độ bằng cách sử dụng tick_params () phương pháp.

  • Để hiển thị hình này, hãy sử dụng Show () phương pháp.

Ví dụ

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()

Đầu ra

Nó sẽ tạo ra kết quả sau -

Làm cách nào tôi có thể vẽ hai chuỗi thời gian có khoảng cách khác nhau trên cùng một biểu đồ trong Python Matplotlib?