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

การดึงเดือนและวันจาก Datetime Object ใน Python

ใช้ DateFormatter จาก matplotlib.dates เพื่อจัดรูปแบบแกน X ให้แสดงเฉพาะเดือนและวัน

ขั้นตอน

  1. ตั้งค่าขนาด Figure
  2. สร้าง DataFrame ที่มีคอลัมน์ datetime
  3. สร้าง Figure และ Subplots
  4. Plot ข้อมูล
  5. ตั้งค่า Formatter ด้วย DateFormatter('M:%m\nD:%d')
  6. แสดงผล

ตัวอย่างโค้ด


import numpy as np
import pandas as pd
from matplotlib import pyplot as plt, dates

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

# สร้างข้อมูล datetime 10 ช่วง
df = pd.DataFrame(dict(
    time=list(pd.date_range("2021-01-01 12:00:00", periods=10)),
    speed=np.linspace(1, 10, 10)
))

fig, ax = plt.subplots()
ax.plot(df.time, df.speed)

# จัดรูปแบบ: M:เดือน (2หลัก) บรรทัดใหม่ D:วัน (2หลัก)
ax.xaxis.set_major_formatter(dates.DateFormatter('M:%m\nD:%d'))

plt.show()

รูปแบบ Date Format ที่ใช้บ่อย

Codeความหมายตัวอย่าง
%Yปี 4 หลัก2021
%yปี 2 หลัก21
%mเดือน 2 หลัก01
%bชื่อเดือนย่อJan
%Bชื่อเดือนเต็มJanuary
%dวัน 2 หลัก01
%H:%Mเวลา ชั่วโมง:นาที12:00

ตัวอย่างรูปแบบอื่นๆ


# แสดง "Jan 01"
ax.xaxis.set_major_formatter(dates.DateFormatter('%b %d'))

# แสดง "01/01/2021"
ax.xaxis.set_major_formatter(dates.DateFormatter('%m/%d/%Y'))

# แสดง "Mon, Jan 01"
ax.xaxis.set_major_formatter(dates.DateFormatter('%a, %b %d'))

ผลลัพธ์

กราฟเส้นแสดงความเร็วตามเวลา โดยแกน X แสดงรูปแบบ "M:01" (เดือน) และ "D:01" (วัน) แยกบรรทัด