python - matplotlib:将小时字符串转换为 float

标签 python matplotlib

我正在尝试使用 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')

有什么想法吗?

谢谢!

最佳答案

错误信息

ValueError: could not convert string to float: '23:00:00'

暗示输入之一——可能是 df3['YYYY-MO-DD HH-MI-SS_SSS'] -- 当 ax.plot 时包含字符串期待 float 。

ax.plot但是,也可以接受类似日期时间的对象而不是 float 。所以转换 df3['YYYY-MO-DD HH-MI-SS_SSS'] 就足够了类似日期时间的对象。

使用 pandas,您可以使用 parse_dates 来做到这一点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])
<小时/>

例如,

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

np.random.seed(2016)
date_col = 'YYYY-MO-DD HH-MI-SS_SSS'

df = pd.DataFrame( {date_col: [
    '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'],
                'foo': np.random.random(24)})
df[date_col] = pd.to_datetime(df[date_col])

fig, ax = plt.subplots()
ax.plot(df[date_col], df['foo'], 'b-', linewidth=2, label='foo')
plt.show()

enter image description here

关于python - matplotlib:将小时字符串转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36947316/

相关文章:

python - 垫秀 : colormap the values in numpy array to binary

python - c pickle : UnpicklingError: invalid load key, 'A'

python - 重写 from x import y 语句以使用 import_module

python - 为什么单引号( ' ) and double quote( ")在 python 的 json 模块中得到不同的结果?

python - 在Django home中添加动态生成的matplotlib图片

python-3.x - networkx:为每个节点设置不同的 alpha?

python - Matplotlib:如何在不增加图形大小的情况下增加保存的面积

python - BeautifulSoup - 无法访问网页

python - 在 Pandas dataframe.to_csv 中设置缓冲区 0

python - 遍历大量文件并保存数据图的最快/最有效的方法是什么?