Để thực hiện thao tác ngày matplotlib sao cho đánh dấu năm hiển thị 12 tháng một lần, 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 d, y, s, years, months, monthsFmt và yearsFmt sử dụng ngày của Pandas, Numpy và matplotlib.
- Sử dụng "% B" trong DateFormatter để hiển thị tên đầy đủ của tháng.
- Ue "% Y" trong DateFormatter để hiển thị năm.
- Tạo một hình mới hoặc kích hoạt một hình hiện có.
- Thêm 'cái rìu' vào hình như một phần của sắp xếp ô phụ.
- Vẽ đồ thị các điểm dữ liệu "dts" và "s" bằng cách sử dụng plot () phương pháp.
- Đặt bộ định dạng và định vị trục chính hoặc trục chính. Đặt minor_locator là tháng để đánh dấu năm sẽ được hiển thị 12 tháng một lần.
- Để hiển thị hình này, hãy sử dụng show () phương pháp.
Ví dụ
import numpy as np from matplotlib import pyplot as plt, dates as mdates import pandas as pd plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True d = pd.date_range("2020-01-01", "2021-06-01", freq="7D") y = np.cumsum(np.random.normal(size=len(d))) s = pd.Series(y, index=d) years = mdates.YearLocator() months = mdates.MonthLocator() monthsFmt = mdates.DateFormatter('%B') yearsFmt = mdates.DateFormatter('\n%Y') dts = s.index.to_pydatetime() fig = plt.figure() ax = fig.add_subplot(111) ax.plot(dts, s) ax.xaxis.set_minor_locator(months) ax.xaxis.set_minor_formatter(monthsFmt) plt.setp(ax.xaxis.get_minorticklabels(), rotation=90) ax.xaxis.set_major_locator(years) ax.xaxis.set_major_formatter(yearsFmt) plt.show()
Đầu ra
Nó sẽ tạo ra kết quả sau