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

Matplotlib绘图异常:X轴起始值错误与Y轴数据对应问题

修复Matplotlib跨月日期学习量图表的轴显示问题

你的问题出在日期列表是跨月的(5-31后接1-4),直接把days作为X轴数据传入plt.plot()时,Matplotlib会按照数值大小排序X轴,导致5之后的刻度直接跳到1,自然Y轴数据也跟着错位了。

下面是修复后的代码,能同时解决X轴显示和Y轴对应错误的问题:

import matplotlib.pyplot as plt

days = [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1, 2, 3, 4]
volumes = [34, 50, 61, 20, 46, 48, 68, 66, 56, 86, 38, 35, 27, 28, 28, 42, 63, 41, 26, 36, 26, 38, 44, 47, 62, 42, 29, 43, 31, 50, 45]

# 用数据的索引作为X轴位置,保证原始顺序不被打乱
x_indices = range(len(days))
plt.plot(x_indices, volumes, marker='o', linestyle='-')

# 将X轴刻度替换为对应的日期,旋转标签避免重叠
plt.xticks(x_indices, days, rotation=55)

plt.xlabel('Days')
plt.ylabel('Study Volume')
plt.title('Study Volume Over Days')

plt.tight_layout()  # 自动调整布局,防止标签被截断
plt.show()

关键修复点:

  • 用range(len(days))生成连续的索引作为X轴的底层位置,这样图表会严格按照你输入的日期顺序绘制,Y轴数据就能和对应日期正确匹配。
  • plt.xticks(x_indices, days)把每个索引位置的刻度标签替换成你定义的日期值,解决X轴显示混乱的问题。
  • plt.tight_layout()会自动调整图表元素的位置,避免旋转后的X轴标签被图表边缘截断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 17:33:13