我尝试使用matplotlib将以下csv数据绘制为x轴:
Time
00:00:00
01:00:00
02:00:00
03:00:00
04:00:00
05:00:00
06:00:00
07:00:00
08:00:00
09:00:00
10:00:00
11:00:00
12:00:00
13:00:00
14:00:00
15:00:00
16:00:00
17:00:00
18:00:00
19:00:00
20:00:00
21:00:00
22:00:00
23:00:00
但我一直收到错误:
ValueError: could not convert string to float: '23:00:00'
如何在matplotlib中将这些值转换为小时格式?
这是我的代码:
fig = plt.figure(figsize=(15,7))
ax = fig.add_subplot(1,1,1) # row-col-num
# --- line plot data on the Axes
ax.plot(df3['YYYY-MO-DD HH-MI-SS_SSS'], df3['ATMOSPHERIC PRESSURE (hPa) mean'], 'b-', linewidth=2,
label=r'office Phone1')
有什么想法吗?
谢谢!
答案 0 :(得分:2)
错误消息
ValueError: could not convert string to float: '23:00:00'
暗示其中一个输入 - 可能是df3['YYYY-MO-DD HH-MI-SS_SSS']
- 包含ax.plot
期待浮点数时的字符串。
ax.plot
可以接受类似日期时间的对象而不是浮点数。因此将df3['YYYY-MO-DD HH-MI-SS_SSS']
转换为类似日期时间的对象就足够了。
使用pandas,您可以使用parse_dates
的{{1}}参数执行此操作(假设pd.read_csv
定义为df3
),或者您可以将该列转换为日期时间 - 喜欢事后的事物:
pd.read_csv
例如,
date_col = 'YYYY-MO-DD HH-MI-SS_SSS'
df3[date_col] = pd.to_datetime(df3[date_col])