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

Python绘制图表时以日期为索引对x轴进行排序的问题咨询

问题解决:matplotlib绘制控制图X轴日期不排序

核心原因

你遇到的问题来自两个常见的隐式逻辑坑:

  1. 从SQL Server通过pyodbc拉取数据时,日期类型常被默认转为字符串返回,pandas不会自动识别为datetime格式,设置为索引后也是字符串索引,排序逻辑为字典序而非时间序
  2. SQL查询返回的结果集默认不一定按日期列正序排列,就算索引是datetime类型,顺序和原结果集一致也会导致X轴乱序

解决代码(仅需修改设置索引部分,完全兼容现有逻辑)

将你原代码中设置索引的行:

df_ED_lastMonth.set_index('departure_ED_ADU', inplace=True)

替换为以下3行即可,无需额外遍历日期数组、也无需修改其他业务逻辑:

# 显式将日期列转换为pandas datetime格式
df_ED_lastMonth['departure_ED_ADU'] = pd.to_datetime(df_ED_lastMonth['departure_ED_ADU'])
# 设置为索引
df_ED_lastMonth.set_index('departure_ED_ADU', inplace=True)
# 按时间索引升序排序
df_ED_lastMonth.sort_index(inplace=True)

可选优化(X轴日期显示更规整)

如果需要调整X轴日期显示格式,可以放开你原有注释的mdates相关配置,在plt.xticks(rotation=45)后添加以下代码:

ax.xaxis.set_major_locator(mdates.DayLocator(interval=1))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:06:04