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

Làm thế nào để vẽ một hình chữ nhật trên trục ngày giờ bằng Matplotlib?

Để vẽ lại một liên kết trên trục ngày giờ bằng matplotlib, chúng ta có thể thực hiện các bước sau -

  • Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô phụ.
  • Tạo một hình mới hoặc kích hoạt một hình hiện có.
  • Thêm '~ .axes.Axes' vào hình như một phần của sắp xếp ô con bằng cách sử dụng add_subplot () phương pháp.
  • Để xác định một hình chữ nhật, hãy tìm các điểm neo bằng cách sử dụng datetime và ngày của matplotlib.
  • Thêm '~ .Patch' đến các trục 'bằng cách sử dụng add_patch () phương pháp.
  • Đặt công cụ định vị và định dạng trục chính.
  • Giới hạn tỷ lệ trục x và y.
  • Để hiển thị hình này, hãy sử dụng show () phương pháp.

Ví dụ

from datetime import datetime, timedelta
from matplotlib.patches import Rectangle

import matplotlib.pyplot as plt
import matplotlib.dates as mdates

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

fig = plt.figure()

ax = fig.add_subplot(111)

startTime = datetime.now()
endTime = startTime + timedelta(seconds=1)
start = mdates.date2num(startTime)
end = mdates.date2num(endTime)

width = end – start
rect = Rectangle((start, 0), width, 1, color='red')
ax.add_patch(rect)

locator = mdates.AutoDateLocator(minticks=3)
formatter = mdates.AutoDateFormatter(locator)

ax.xaxis.set_major_locator(locator)
ax.xaxis.set_major_formatter(formatter)

plt.xlim([start - width, end + width])
plt.ylim([-.5, 1.5])

plt.show()

Đầu ra

Làm thế nào để vẽ một hình chữ nhật trên trục ngày giờ bằng Matplotlib?