我正在尝试绘制以下数据:
01/01/2012 01:00
01/01/2012 02:00
01/01/2012 03:00
01/01/2012 04:00
01/01/2012 05:00
01/01/2012 06:00
01/01/2012 07:00
01/01/2012 08:00
01/01/2012 09:00
01/01/2012 10:00
01/01/2012 11:00
01/01/2012 12:00
01/01/2012 13:00
01/01/2012 14:00
01/01/2012 15:00
01/01/2012 16:00
01/01/2012 17:00
01/01/2012 18:00
01/01/2012 19:00
01/01/2012 20:00
01/01/2012 21:00
01/01/2012 22:00
01/01/2012 23:00
02/01/2012 00:00
04/01/2012 23:00
................
05/01/2012 00:00
05/01/2012 01:00
................
针对以下格式的 wind_speed 数据:
[ 3.30049159 2.25226244 1.44078451 ... 12.8397099 9.75722427
7.98525797]
我的代码是:
T = T[1:]
print( datetime.datetime.strptime(T, "%m/%d/%Y %H:%M:%S").strftime("%Y%m%d %I:%M:%S") #pharsing the time
TIMESTAMP = [str (i) for i in T]
plt.plot_date(TIMESTAMP, wind_speed)
plt.show()
但是,我收到错误消息“TypeError:strptime() 参数 1 必须是 str”,而不是列表。我是 Python 的新手,希望能就如何将列表转换为字符串或如何解决此问题的其他方法提供帮助。谢谢!
原文由 Asif.Khan 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如其他答案所暗示的那样,您需要一种不同的方式,可能是
map
。您也可以使用pd.to_datetime()
并将整个列表传递给它。然后使用与 x 轴相同的值和 y 轴的 wind_speed。它将创建一个 DatetimeIndex,您可以根据需要再次对其进行格式化,例如:
在一行中:
在有两个时间戳和 wind_speed 列表之后,使用可能会使用类似的东西: