import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
df = pd.read_excel('sample_data.xlsx')
df['Date_TrailClean'] = pd.to_datetime(df['Date_TrailClean'])
# Sort x-axis
df = df.sort_values('Date_TrailClean')
x = df['Date_TrailClean']
y = df['AdjTotItems']
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(x, y, color='blue', marker='o', label='Adjusted Total Items')
ax.xaxis.set_major_locator(mdates.MonthLocator(bymonth=(1, 7)))
ax.xaxis.set_minor_locator(mdates.MonthLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%b %Y')) # e.g., Jan 2025, Jul 2025
plt.xticks(rotation=45)
ax.set_xlabel('Date')
ax.set_ylabel(r'Adjusted Total Items')
ax.set_title('Adjusted Total Items Over Time')
ax.grid(True)
plt.tight_layout()
plt.show()
As others pointed out, sorting the x-axis data gives you above plot.