You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改datetime类型的x轴刻度标签使其仅显示日期天数?

方案1:使用Matplotlib日期格式化器修改显示格式

这种方法不需要改动原有数据,仅修改x轴刻度的展示规则:

  • 首先导入matplotlib.dates模块
  • 在绘图代码中添加x轴格式化配置,使用%d作为格式符即可仅提取日期中的天数,且自动补零为两位格式

修改后的完整代码如下:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates  # 新增导入

PVA_temp = pd.read_excel(r'Downloads/PVAtemp.xlsx')
PVA_temp = PVA_temp.drop(index = 0)
PVA_temp = PVA_temp.drop(labels = 'Unnamed: 2', axis = 1)
PVA_temp = PVA_temp.drop(labels = 'Unnamed: 4', axis = 1)
PVA_temp['Time'] = pd.to_datetime(PVA_temp['Time'])
PVA_temp = PVA_temp.set_index('Time').resample('8H').first()
PVA_temp = PVA_temp.dropna()

fig = plt.figure(1, figsize = (5,5))
plt.plot(PVA_temp.index, PVA_temp['Unnamed: 3'], c = 'blue')
# 新增x轴格式配置
ax = plt.gca()
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d'))  # 仅显示天数,两位补零
plt.minorticks_on()
plt.tick_params(which = 'minor', direction = 'in')
plt.tick_params(which = 'major', direction = 'in')
plt.xticks(rotation=45)
plt.xlabel("Days")
plt.ylabel("Temperature (°C)")
plt.show()

注意:该方案会保留原日期中的实际天数,如果你需要按数据采集顺序从01开始计数,和原日期的日号无关,请用方案2


方案2:预处理x轴为采集天数序列

直接计算每条数据对应的采集天数,以第一条数据为第1天,完全脱离原日期的月年信息:

import pandas as pd
import matplotlib.pyplot as plt

PVA_temp = pd.read_excel(r'Downloads/PVAtemp.xlsx')
PVA_temp = PVA_temp.drop(index = 0)
PVA_temp = PVA_temp.drop(labels = 'Unnamed: 2', axis = 1)
PVA_temp = PVA_temp.drop(labels = 'Unnamed: 4', axis = 1)
PVA_temp['Time'] = pd.to_datetime(PVA_temp['Time'])
PVA_temp = PVA_temp.set_index('Time').resample('8H').first()
PVA_temp = PVA_temp.dropna()
# 新增:计算采集天数,从01开始
PVA_temp['days'] = (PVA_temp.index - PVA_temp.index.min()).days + 1

fig = plt.figure(1, figsize = (5,5))
# x轴改用计算好的天数
plt.plot(PVA_temp['days'], PVA_temp['Unnamed: 3'], c = 'blue')
plt.minorticks_on()
plt.tick_params(which = 'minor', direction = 'in')
plt.tick_params(which = 'major', direction = 'in')
plt.xticks(rotation=45)
plt.xlabel("Days")
plt.ylabel("Temperature (°C)")
plt.show()

如果需要强制显示两位的天数标签(如01而非1),可以额外添加一行格式配置:

ax = plt.gca()
ax.xaxis.set_major_formatter('{x:02.0f}')

内容的提问来源于stack exchange,提问作者Caden Myers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 04:00:04