ใช้ DateFormatter จาก matplotlib.dates เพื่อจัดรูปแบบแกน X ให้แสดงเฉพาะเดือนและวัน
ขั้นตอน
- ตั้งค่าขนาด Figure
- สร้าง DataFrame ที่มีคอลัมน์ datetime
- สร้าง Figure และ Subplots
- Plot ข้อมูล
- ตั้งค่า Formatter ด้วย
DateFormatter('M:%m\nD:%d') - แสดงผล
ตัวอย่างโค้ด
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" (วัน) แยกบรรทัด