python绘制时间_在matplotlib中绘制时间与日期

所以回溯告诉你问题所在。它试图将日期解析为时间,这是您解析以下行中的数据的结果:data= np.loadtxt(‘daily_count.csv’, delimiter=’,’,

dtype={‘names’: (‘date’, ‘time’),’formats’: (‘S10’, ‘S10’)} )

x = [DT.datetime.strptime(key,”%m-%d-%y”) for (key, value) in data ]

y = [DT.datetime.strptime(key,”%h:%m”) for (key, value) in data]

有多种解决方案,但问题的根源在于,当您使用loadtxt并定义名称和数据类型时,它会返回元组列表,即

^{pr2}$

所以当你在上面循环时,你实际上一直在访问日期:>>> print [key for (key, value) in data]

[’04-02-15′, ’04-03-15′, ’04-04-15′, ’04-05-15′, ’04-06-15′, ’04-07-15′]

所以您试图将’04-02-15’转换为’%h:%m’格式,这当然行不通。在

为了达到这一点,您可以使用zip函数取消对已解析数据的合并。例如print map(list, zip(*data))

[’04-02-15′, ’04-03-15′, ’04-04-15′, ’04-05-15′, ’04-06-15′, ’04-07-15′]

[’11:15′, ’09:35′, ’09:10′, ’18:05′, ’10:30′, ’09:20′]

此外,您还需要检查通过日期的格式,例如”%h:%m”将无法工作,因为%h不存在,%m表示月份。你可以在文档上找到一个很好的摘要,或者在这里:http://strftime.org/。在

或者说正题:import numpy as np

from pylab import *

import matplotlib.pyplot as plt

import datetime as DT

data= np.loadtxt(‘daily_count.csv’, delimiter=’,’,

dtype={‘names’: (‘date’, ‘time’),’formats’: (‘S10’, ‘S10’)} )

dates, times = map(list, zip(*data))

print dates, times

x = [DT.datetime.strptime(date,”%m-%d-%y”) for date in dates]

y = [DT.datetime.strptime(time,”%H:%M”) for time in times]

fig = plt.figure()

ax = fig.add_subplot(111)

ax.grid()

plt.plot(x,y)

plt.xlabel(‘Date’)

plt.ylabel(‘Time’)

plt.title(‘Peak Time’)

plt.show()

给出了以下图表:

Original: https://blog.csdn.net/weixin_34019786/article/details/112927290
Author: 婧在机器学习中
Title: python绘制时间_在matplotlib中绘制时间与日期

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/768800/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球