Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Matplotlib – การจัดการวันที่เพื่อแสดงขีดปีทุกๆ 12 เดือน


ในการทำให้การจัดการวันที่ของ matplotlib เพื่อให้เครื่องหมายปีปรากฏขึ้นทุก ๆ 12 เดือน เราสามารถทำตามขั้นตอนต่อไปนี้ -

  • กำหนดขนาดรูปและปรับช่องว่างภายในระหว่างและรอบๆ แผนผังย่อย
  • สร้าง d, y, s, ปี, เดือน, monthsFmt และ ปีFmt โดยใช้วันที่ของ Pandas, Numpy และ matplotlib
  • ใช้ "%B" ใน DateFormatter เพื่อแสดงชื่อเดือนเต็ม
  • Ue "%Y" ใน DateFormatter เพื่อแสดงปี
  • สร้างตัวเลขใหม่หรือเปิดใช้งานตัวเลขที่มีอยู่
  • เพิ่ม 'ขวาน' ให้กับร่างเป็นส่วนหนึ่งของการจัดเรียงแผนย่อย
  • พล็อตจุดข้อมูล "dts" และ "s" โดยใช้ plot() วิธีการ
  • ตั้งค่าตัวระบุตำแหน่งและตัวจัดรูปแบบแกนรองหรือหลัก ตั้งค่า minor_locator เป็น เดือน เพื่อให้เครื่องหมายปีแสดงทุก 12 เดือน
  • หากต้องการแสดงรูป ให้ใช้ show() วิธีการ

ตัวอย่าง

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

ผลลัพธ์

มันจะสร้างผลลัพธ์ต่อไปนี้

Matplotlib – การจัดการวันที่เพื่อแสดงขีดปีทุกๆ 12 เดือน Matplotlib – การจัดการวันที่เพื่อแสดงขีดปีทุกๆ 12 เดือน