我在线图中有一些时间序列数据,我想编辑xtick,以便它们显示完整的日期,或者至少显示每个数据点的小时。数据由一个dateTime列索引,如下所示:
Hourly_diff
dateTimeUtc
2022-09-01 00:00:00+00:00 18.0
2022-09-01 01:00:00+00:00 -20.0
2022-09-01 02:00:00+00:00 56.0
...
2022-10-01 17:00:00+00:00 69.0
2022-10-01 18:00:00+00:00 -465.0
2022-10-01 19:00:00+00:00 -617.0
2022-10-01 20:00:00+00:00 173.0
2022-10-01 21:00:00+00:00 378.0
然后我再画出来。
fig, ax = plt.subplots(figsize=(15, 7))
fig.suptitle('Error 1')
ax.set_xlabel('Hour')
plt.xticks(rotation = 45)
ax.set_ylabel('Error', rotation = 0)
ax.grid(alpha=0.25)
legs = day_1.columns[:]
ax.set_xticks(day_1.index)
for column in day_1:
ax.plot(day_1.index, day_1[column])
ax.legend(legs,loc = 'upper right')
fig.tight_layout()
plt.show()
但是,我只得到索引的前4个字符。我希望显示完整的日期。或者...
有没有可能只把小时标为一个xtick标签,而不把它们都打出来,去掉其余的日期?
我尝试提取小时数,然后在set_xtick参数中调用它,如下所示。
hours = data_index.hour
ax.set_xtick(hours)
但是尽管图出现了,x轴是完全空白的,我没有得到一个错误。
2条答案
按热度按时间utugiqy61#
如果使用datetime作为自变量(x轴),则可以使用plot_date函数,如下所示:
watbbzwu2#
我通过创建自己的时间范围并绘制误差来解决这个问题,如下所示。