【发布时间】:2015-11-20 16:03:24
【问题描述】:
我在定义要绘制的日期范围时遇到了一些麻烦。我有一个包含数据的大文件;每行的第一个条目是时间戳(每 15 分钟一次),格式如下:
2014-06-05 17:30:00
为了能够在我的图中选择日期范围,我将字符串日期值转换为日期和时间值:
import pylab # Plotting functions
import matplotlib.dates # get date plotting functions
import datetime # get date functions
(skipping the list of column headers and the dictionary variables)
meteodata = data file with one col. TIMESTAMP
#Create arrays filled with zeros and proper length
YY = scipy.zeros(len(meteodata['TIMESTAMP']))
MM = scipy.zeros(len(meteodata['TIMESTAMP']))
DD = scipy.zeros(len(meteodata['TIMESTAMP']))
HH = scipy.zeros(len(meteodata['TIMESTAMP']))
mm = scipy.zeros(len(meteodata['TIMESTAMP']))
ss = scipy.zeros(len(meteodata['TIMESTAMP']))
numdatetime = scipy.zeros(len(meteodata['TIMESTAMP']))
# Create emty array
dateval = []
#Convert string date values to date and time values
for i in range (0,len(meteodata['TIMESTAMP']),1):
datestring = meteodata['TIMESTAMP'][i]
YY[i] = int(datestring[1:5])
MM[i] = int(datestring[6:8])
DD[i] = int(datestring[9:11])
HH[i] = int(datestring[12:14])
mm[i] = int(datestring[15:17])
ss[i] = int(datestring[18:20])
#create a datetime object holding dates and times
dt = datetime.datetime(int(YY[i]),int(MM[i]),int(DD[i]),int(HH[i]),
int(mm[i]),int(ss[i]))
dateval.append(dt)
#create a numerical date value
numdatetime[i]=matplotlib.dates.date2num(dt)
# get doy of year numbers
doy = scipy.zeros(len(meteodata['TIMESTAMP']))
for i in range (0,len(meteodata['TIMESTAMP']),1):
doy[i] = int(datetime.date.fromordinal(int(numdatetime[i])).strftime("%j"))
所以我已经完成了所有日期和时间的工作,但是如何访问我的情节中的某些天、月或年?例如,我想绘制 XXX 和 YYY 与 a) 2015 年 7 月(按月份和年份)b)1.7.2015 到 20.7.2015(按预定义的日期范围)和 c)每小时(尽管有新的数据输入)每 15 分钟带有时间戳)- 我必须在哪里以及如何修改我的代码?
pylab.ylabel(r'${\rm XXX and YYY}$', fontsize=8)
pylab.xlabel(r'${\rm Date}$', fontsize=12)
# Plot XXX and YYY versus time
pylab.plot_date(howtimegoeshere, XXX, '+b', label= 'XXX', linewidth=0.5, markersize=4)
pylab.plot_date(howtimegoeshere, YYY, '-r', label= 'YYY', linewidth=0.5, markersize=2)
如何更改“howtimegoeshere”?作为一个 python 新手,这些时间命令对我来说仍然很困惑:-/ 感谢您的各种建议!
问题已解决:see here
【问题讨论】:
标签: python python-2.7 datetime matplotlib plot