点击(此处)折叠或打开
- #coding=utf-8
- from pylab import *
- from datetime import datetime, timedelta #必须在pylab的import后面,覆盖pylab的datetime,否则会被覆盖
- import matplotlib.dates as mdate
- import pyExcelerator
- import cPickle
- from config import *
- mpl.rcParams['font.sans-serif'] = ['SimHei']
- ss = ['b-','y-','r--','y--','g-','k+-','g--','r-','k-','r+-','k:','g:','b--','g+-','r*-','k*-']
- zero = datetime(1899,12,30)
- f=open('pages','rb')
- pages = cPickle.load(f)
- for km in kms:
- for dtu in km.dtus:
- for position in dtu.ps:
- style = 0
- for tm in position.t_modules:
- for sensor in tm.sensors:
- try: datas = pages[(dtu.n,tm.n,sensor.p)]
- except KeyError: print (dtu.n,tm.n,sensor.p),u'缺少数据'
- datas.sort()
- xs = map(lambda i:zero+timedelta(days=i[0]),datas)
- ys = map(lambda i:i[1],datas)
- ax = gca()
- ax.plot_date(xs, ys, ss[style],linewidth=0.5,label=u'%sm深' %sensor.deep)
- style += 1
- ax.xaxis.set_major_formatter(mdate.DateFormatter('%y-%m-%d')) #x轴上的label格式为"年-月-日",其中年取后两位
- xlabels = ax.get_xticklabels()
- for xl in xlabels: xl.set_rotation(15) #把x轴上的label旋转15度,以免太密集时有重叠
- xlabel(u'日期(年-月-日)')
- ylabel(u'温度(摄氏度)')
- title(km.s+position.s)
- legend(loc=3,prop={'size':10})
- #show()
- savefig('D:/root/pics/'+km.s+position.s+'.png')
- clf()