首页 > 解决方案 > 将 y 轴 datetime.time 值格式化为“%H:%M:%S.%f”

问题描述

我正在尝试将 Y 轴 datetime.time 值格式化为 %H:%M:%S.%f

这段代码:

fig, axes = plt.subplots(nrows=1, ncols=1, figsize=(20, 5), dpi=150)
axes.xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%Y'))

#axes.yaxis.set_major_formatter(mdates.DateFormatter('%H:%M:%S.%f'))

axes.plot_date(test_df["date"],test_df["time"],ydate=True)

plt.gcf().autofmt_xdate()

输出1

当我取消注释axes.yaxis.set_major_formatter时,图表在 Y 轴上显示零:

输出2

知道有什么问题吗?

标签: pythondatetimematplotlib

解决方案


根据要求,我发布了我在其输出中使用的 df 和代码。

df = pd.DataFrame({'time': ['7:30', '8:30', '7:30','10:30','11:30'], 'date': ['2018-10-01', '2018-10-02', '2018-10-03', '2018-10-04','2018-10-05']})

import matplotlib.dates as mdates
df['time'] = pd.to_datetime(df['time'], format='%H:%M') 
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d')
fig, axes = plt.subplots(nrows=1, ncols=1)
axes.xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%Y'))
axes.yaxis.set_major_formatter(mdates.DateFormatter('%H:%M:%S'))
axes.plot_date(df["date"],df["time"],ydate=True)
plt.gcf().autofmt_xdate()
plt.show()

在此处输入图像描述


推荐阅读