首页 > 解决方案 > 使用一致的小时标记在 python 中绘制时间序列

问题描述

所以我的数据看起来可以在下面的链接中找到。我正在尝试用每小时标记绘制时间序列。基本上在小时的顶部绘制主要标记,例如 20:00,21:00,22:00,23:00 和半小时的次要标记,例如 20:30,21:30,22:30,23 :30。

https://drive.google.com/open?id=1g2UhLBhddWSxuH6bnFT3kMO90ZDEQT5F6fF_GTNPk_w

日期列 Date 转换为日期时间,而时间列保持不变。

我的数据在 CSV 文件中,我目前将其读入数据框并使用下面的命令绘制它们。

df.plot(kind='line', x= "Time_split",y= "Total_S4_Sig1")
plt.gcf().autofmt_xdate()
plt.show()

这并不能完全实现我想要做的事情。

提前感谢您的时间。我真的很感谢你的帮助。

尊敬的钦坦·塔克拉尔

标签: pythonpandasdataframematplotlib

解决方案


您可以将Dateand合并到一个时间戳列中,并使用andTime_split进行绘图:HourLocatorMinuteLocator

from matplotlib import dates as mdates

df['time'] = pd.to_datetime(df['Date']) + pd.to_timedelta(df['Time_split'])

ax=df.plot(x='time', y='Total_S4_Sig1')
ax.xaxis.set_major_locator(mdates.HourLocator())
ax.xaxis.set_minor_locator(mdates.MinuteLocator(30))

推荐阅读