用 timedelta 系列绘制直方图

ploting histogram with timedelta series

我有一些系列数据,是timedelta数据类型。我想将这些 timedelta 绘制成条形图,其中 y 轴应该只以小时而不是其他格式标记。以前,当我尝试在 matplotlib 中绘制线图时,它显示了一些无法理解的数字。以下是我的pandas的timedelta系列的样本:

date
2020-04-11   0 days 02:00:00
2020-04-12   0 days 03:00:00
2020-04-13   0 days 02:00:00
2020-04-14   0 days 03:00:00
2020-04-15   0 days 01:00:00
2020-04-16   0 days 03:00:00
Freq: D, dtype: timedelta64[ns]

当我试图在 matplotlib 中绘制它时,它会导致带有 y 轴值的图对我来说看起来很奇怪。

请帮我画出图,其中 y 轴刻度标签应采用 01:0002:00 格式。

热切等待一些帮助。

一种可能的方法是以秒为单位转换增量并定义一个FuncFormatter。 这是我的测试系列和我的最终情节:

2020-04-11   02:00:00
2020-04-12   03:00:00
2020-04-13   05:00:00
dtype: timedelta64[ns]
def delta(x, pos):
    out = str(datetime.timedelta(seconds=x)  )
    return out
            
fig = plt.figure()
ax = fig.gca()
form = matplotlib.ticker.FuncFormatter(delta)
ax.yaxis.set_major_formatter(form)
ax.plot(s.index, s/np.timedelta64(1,'s'))
ax.set_yticks(s/np.timedelta64(1,'s'))
ax.set_xticks(s.index)
plt.show()