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

如何修改Matplotlib中X轴刻度间隔及指定显示时间区间?

解决方案

你之前用plt.xticks没生效的核心原因是:从FRED获取的失业数据索引是datetime时间类型,不是单纯的年份数值,直接传入年份列表自然无法匹配时间轴刻度。下面分两部分解决你的问题:


1. 仅显示2014-2019年的时间区间

最直接的方式是先对数据做时间切片,再绘图:

# 筛选2014到2019年的数据(支持月度/日度等细分频率)
filtered_data = Unemp_data.loc['2014':'2019']
# 绘制图表
filtered_data.plot(figsize=(15,6), title="unemployment rate", lw=1.5)

2. 将X轴刻度调整为5年间隔

需要借助matplotlib.dates模块的工具类来处理时间轴刻度,具体代码如下:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# 绘制原图并获取坐标轴对象
ax = Unemp_data.plot(figsize=(15,6), title="unemployment rate", lw=1.5)

# 设置X轴主刻度为每5年一个
ax.xaxis.set_major_locator(mdates.YearLocator(5))
# 设置刻度显示格式为纯年份(如2000、2005)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))

# 旋转X轴标签避免重叠,优化布局
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

如果要同时实现区间筛选和刻度调整,把两种逻辑结合即可:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates

filtered_data = Unemp_data.loc['2014':'2019']
ax = filtered_data.plot(figsize=(15,6), title="unemployment rate", lw=1.5)

ax.xaxis.set_major_locator(mdates.YearLocator(5))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))

plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 00:52:09