在Matplotlib中将年份添加到xaxis

2024-05-23 19:36:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我用x轴上的小时绘制了以下曲线图:

enter image description here

我想把x轴上的文字改成年而不是小时。所以我需要年来对应特定的时间。我读过,这可能是通过使用plt.xticks(x, my_xticks)和索引我的x数组来完成的,但对我来说不起作用。如果有人能给我一些建议,我将不胜感激。非常感谢你。在

下面是我的代码示例:

fig_1,ax1 = plt.subplots()
x1 = np.arange(0,129392) #hourly data
x2 = np.linspace(0,129392,5390) #daily data
y_norm = 150.*np.ones([129392,1])
ax1.plot(x1,Data_OBS_h,'k',marker='o',linestyle=' ',label='PM10-1h',linewidth=1.5)
ax1.plot(x2,Data_OBS,'r',linestyle='-',label='PM10-24h',linewidth=1.5)
ax1.plot(x1,y_norm,'b',linestyle='-',label='standard',linewidth=1.5)

Tags: normdataplotnppltlabelx1x2
2条回答

处理日期

x1和{}替换为:

import datetime

delta_h = datetime.timedelta(hours=1)
start = datetime.datetime(2001, 1, 1)
x1 = [start + x * delta_h for x in range(129392)]
x2 = [start + x * delta_h for x in range(0, 129392, 24)]

时差工作

如果没有实际的开始日期,但只有从时间零点开始的时间差,则此选项非常有用:

^{pr2}$

将x轴更改为datetime对象,然后简单地调用

plt.plot(x,y)
plt.gcf().autofmt_xdate()

还有一些手动的(但不幸的)方法,如果不起作用,我将编辑这些方法。在

相关问题 更多 >