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()

给出了以下图表:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值