This is my entire code; it plots a bar chart in the spreadsheet I'm working. Cell "T1" is in sheet named "Visuals"
I've added in your suggestions. Hopefully this helps...
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
import datetime
import matplotlib.dates as mdates
import numpy as np
import matplotlib.ticker as plticker
from dateutil.relativedelta import relativedelta
import calendar
import openpyxl
from openpyxl import load_workbook
yourWb = load_workbook(filename='Python Testing.xlsm')
yourWs = yourWb['Visuals']
today = datetime.datetime.today().date()
string_date = yourWs['T1']
long_string_date = "March 2025"
df["Date Captured"] = pd.to_datetime(df["Date Captured"])
df["Check-In"] = pd.to_datetime(df["Check-In"])
df_filtered = df[(df["Date Captured"].dt.date == today) & (df["Mon Year"] == string_date)]
grouped = df_filtered.groupby("Check-In")["Current price"].min().reset_index()
fig, ax = plt.subplots()
p1 = ax.bar(grouped["Check-In"], grouped["Current price"], color='g')
ax.bar_label(p1, label_type="edge")
ax.bar_label(p1)
# Formatting the x-axis
ax.xaxis.set_major_formatter(mdates.DateFormatter("%a %d")) # Format as "Jan 2025"
loc = plticker.MultipleLocator(base=1.0) # this locator puts ticks at regular intervals
ax.xaxis.set_major_locator(loc)
plt.xlabel("Check-In Date")
plt.ylabel("Price (£)")
plt.title(long_string_date)
plt.xticks(rotation=90) # Rotate labels
plt.ylim(50, 200)
plt.show()