我们看到给定日期/时间时间戳的类别值,显示年、月、日和时间。
在这里,我们看到日期/时间 x 轴刻度线显示月、日和小时。
我想要完成的是将日期/时间 x 刻度线重新格式化为仅显示时间,因此从 00:00 开始,总共有 6 个刻度线,因此在整个学习日中,从 04:00 继续、 08:00、12:00、16:00、20:00、00:00。
我尝试使用此代码来重置日期/时间格式:
x_dates = df['Date/Time'].dt.strftime('%H:%M').sort_values().unique()
dataplot.set_xticklabels(labels=x_dates, rotation=45, ha='right')
我不明白为什么时间从 00:30 到 04:30。也就是说我的学习只持续到下午4点30分?我不知道这是否应该是军事时间。我的学习数据持续24小时,所以我不明白为什么这段代码将数据更改为04:30结束。
然后我尝试通过添加以下内容将 x 轴刻度线的数量更改为 6:
dataplot.set_xticks(6)
但这只会导致这个错误:
TypeError: object of type 'int' has no len()
如何修复 x 刻度的日期/时间字符串格式,使其仅显示 24 小时内的时间,而不显示年、月或日,并以 6 刻度标记显示?我正在将seaborn 与Python 一起使用。
您只有 9 个 xticks,因此您在代码中所做的就是用
x_dates
. Seaborn 不知道x_dates
与您制作的绘图有何关系,因此它只采用前 9 个值。如果每个研究只运行一天,解决此问题的最简单方法是创建一个仅包含时间的新列,然后使用该列进行绘图。
df['time'] = df['Date/Time'].dt.strftime('%H:%M')