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

Matplotlib - Thao tác ngày để hiển thị đánh dấu năm 12 tháng một lần

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

Matplotlib - Thao tác ngày để hiển thị đánh dấu năm 12 tháng một lần Matplotlib - Thao tác ngày để hiển thị đánh dấu năm 12 tháng một lần