Để độ rộng cột bar chart phản ánh đúng khoảng cách thời gian thực (ví dụ: số ngày giữa các tháng), tính width động từ chênh lệch datetime.
Các bước
- Thiết lập figure size và autolayout.
- Tạo danh sách datetime x và giá trị y.
- Vẽ bar với width=[(x[j+1]-x[j]).days for j in range(len(x)-1)] + [30] (tháng cuối ước lượng 30 ngày).
- Hiển thị bằng show().
Ví dụ
import numpy as np
import datetime
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = [datetime.datetime(2021, 1, 1, 0, 0), datetime.datetime(2021, 2, 1, 0, 0), datetime.datetime(2021, 3, 1, 0, 0)]
y = np.cos(np.arange(3) * 2)
plt.bar(x, y, width=[(x[j+1]-x[j]).days for j in range(len(x)-1)] + [30])
plt.show()
Kết quả
