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

วิธีเปลี่ยนความถี่ Datetime Tick Labels ใน Matplotlib

การปรับความถี่และรูปแบบ 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 ให้อ่านง่าย