การปรับความถี่และรูปแบบ Datetime Ticks
ใช้ matplotlib.dates MonthLocator และ DateFormatter ควบคุม tick locations และ labels
ขั้นตอนหลัก
- ตั้งค่าขนาดรูปและ padding
- สร้าง DataFrame พร้อม datetime index
- พล็อต DataFrame
- ตั้งค่า X-axis major locator ด้วย mdates.MonthLocator(interval=1)
- ตั้งค่า X-axis major formatter ด้วย mdates.DateFormatter('%d-%m-%Y')
- ใช้ autofmt_xdate() หมุนและจัดตำแหน่ง labels
- แสดงผลด้วย show()
ตัวอย่างโค้ด
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
index = pd.date_range(start="2020-07-01", end="2021-01-01", freq="D")
index = [pd.to_datetime(date, format='%Y-%m-%d').date() for date in index]
data = np.random.randint(1, 100, size=len(index))
df = pd.DataFrame(data=data, index=index, columns=['data'])
ax = df.plot()
ax.xaxis.set_major_locator(mdates.MonthLocator(interval=1))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%Y'))
plt.gcf().autofmt_xdate()
plt.show()
คำอธิบาย
- MonthLocator(interval=1): วาง tick ทุก 1 เดือน
- DateFormatter('%d-%m-%Y'): รูปแบบวันที่ วัน-เดือน-ปี
- autofmt_xdate(): หมุน labels ให้อ่านง่าย