【发布时间】:2021-12-29 02:48:04
【问题描述】:
我有一本带有日期(年、月、日)和时间戳(小时、分钟、秒)的字典,如下所示:
dict = {datetime.date(2021, 11, 1): [datetime.time(7, 43, 23)],
datetime.date(2021, 11, 8): [datetime.time(6, 4, 45),
datetime.time(6, 3, 36),
datetime.time(5, 56, 26)],
datetime.date(2021, 11, 12): [datetime.time(8, 5, 11),
datetime.time(5, 44, 45),
datetime.time(5, 24, 14),
datetime.time(4, 56, 5)]}
我想用它做一个散点图。 首先我写了这段代码:
from matplotlib import pyplot as plt
for key, value in dict.items():
x = [key]*len(value)
y = value
plt.scatter(x, y)
plt.tight_layout()
plt.show()
此代码产生错误:
TypeError: float() argument must be a string or a number, not 'datetime.time'
然后我尝试使用 matplotlib.dates 转换日期时间,将我的代码更改为:
from matplotlib import pyplot as plt
import matplotlib.dates as mdates
for key, value in dict.items():
x = [mdates.date2num(key)]*len(value)
y = [mdates.date2num(y) for y in value]
plt.scatter(x, y)
plt.tight_layout()
plt.show()
这段代码产生了另一个错误:
ValueError: Could not convert object to NumPy datetime
起初,问题看起来很简单。 但是,现在我不明白如何使用 matplotlib 来处理它。
我的问题:
- 如何使用 matplotlib 工具处理日期时间对象?
- 在 matplotlib 中处理 datetime 对象时如何正确设置刻度和刻度?
【问题讨论】:
标签: python datetime matplotlib