【发布时间】:2018-04-16 02:40:09
【问题描述】:
我正在阅读某年的时间(持续时间)数据,我想在 x 轴上绘制年份图表,在 y 轴上绘制时间(持续时间)图表。我希望 y 轴具有 HH:MM:SS 格式。我不知道该怎么做。这是我的代码(数据是合成的,实际数据集要大得多)。
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter, date2num
df = pd.DataFrame({'Year':[2010, 2011, 2012],
'Time': ['2:19:15', '2:11:16', '2:20:17']})
df['Time'] = pd.to_timedelta(df['Time'])
fig, ax = plt.subplots()
myFmt = DateFormatter("%H:%M:%S")
ax.yaxis.set_major_formatter(myFmt)
ax.plot(df['Year'], df['Time'].dt.total_seconds())
plt.gcf().autofmt_xdate()
plt.show()
如果我不转换为 total_seconds,则会收到错误消息。似乎总秒值被解释为天。我尝试将 total_seconds 除以 24*60*60,但这给了我一条关于 0 日期的消息。我也无法说服 date2num 为我工作。
我检查过以前的类似问题,但代码不再有效。
有人知道如何在 matplotlib 中绘制 Pandas 时间增量吗?
【问题讨论】:
标签: python pandas matplotlib