1 回答

TA貢獻1818條經驗 獲得超7個贊
1)我假設你的軸包含,而不是。然后,在繪圖之前,我會將其轉換如下。xstringdatetime
x=[datetime.strptime(xi, "%d.%m.%y") for xi in x]
2)如果您選擇,則無法將其設置為3月01...因此,將其切換為 .MonthLocatorDayLocator
locator = mdates.DayLocator()
3)這個是可選的,有更清晰的代碼。您不需要 .X
ax.xaxis.set_major_locator(locator)
ax.xaxis.set_major_formatter(fmt)
ax.xaxis.set_tick_params(rotation=30)
示例代碼在這里。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime
x=["01.03.20", "02.03.20", "04.03.20", "05.03.20"]
x=[datetime.strptime(xi, "%d.%m.%y") for xi in x]
y=[10, 10, 15,16]
fig, ax = plt.subplots()
ax.scatter(x, y, s=100, c='C0')
ax.plot(x, y, ls='-', c='C0')
locator = mdates.DayLocator()
fmt = mdates.DateFormatter('%b-%d')
ax.xaxis.set_major_locator(locator)
ax.xaxis.set_major_formatter(fmt)
ax.xaxis.set_tick_params(rotation=30)
ax.set_xlim(x[0],x[3])
plt.show()
示例結果在此處。
添加回答
舉報