带有pylab的时间戳轴

时间:2015-08-26 14:38:54

标签: python python-2.7 datetime matplotlib plot

我有一些麻烦来定义我想要绘制的日期范围。我有一个包含数据的大文件;每行中的第一个条目是时间戳(每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)2015年7月1日至2015年7月20日(因此按预定日期范围)和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'?作为一个蟒蛇新手,那些时间命令仍然让我很困惑: - /感谢各种建议!

问题已解决see here

0 个答案:

没有答案