python填色循环出图
2019-04-11 本文已影响0人
Aerosols
雷达填色图
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime
import os
import time
import glob
from matplotlib.font_manager import FontProperties
from matplotlib.dates import AutoDateLocator, DateFormatter
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
mpl.rcParams['font.family'] = 'sans-serif'
mpl.rcParams['font.sans-serif'] = 'Times New Roman'#中文除外的设置成New Roman,中文设置成宋体,NSimSun,
font = FontProperties(fname=r"C:\\Windows\\Fonts\\times.ttf")
path=r'E:\学业\大组\小组\2017'
files=glob.glob(os.path.join(path, "depol*.txt"))
for f in files[:5]:
print('f={}'.format(f))
data=pd.read_csv(f,sep='\s+',header=None,index_col=0)
depol=data
hgt=list(np.arange(30,12030,30))
depol.columns=pd.Index(hgt)
xdata = pd.to_datetime(depol.index, format='%Y%m%d%H%M')
ydata = hgt
zdata = depol.values.T
zdata[zdata==-990000]=np.nan
zdata[zdata==-99000]=np.nan
zdata[zdata<0]=0
zdata[zdata>1]=1
fig = plt.figure(figsize=(16,8))
ax=plt.subplot(111)
X,Y = np.meshgrid(xdata,ydata)
minval,maxval=0, 1.1
cs = plt.contourf(X,Y,zdata, np.arange(minval, maxval,0.01),cmap=plt.cm.get_cmap('jet'))
majorloc = mdates.HourLocator(byhour=[12])
majorFormatter = DateFormatter('%m-%d_%H')
ax.xaxis.set_major_locator(majorloc)
ax.xaxis.set_major_formatter(majorFormatter)
ax.xaxis.set_minor_locator(mdates.HourLocator(interval=6))
ylabel=('1','2','3','4','5','6','7','8','9','10','11','12')
plt.yticks(np.linspace(1000,12000,12, endpoint=True),ylabel)
plt.ylabel('Height (km)',fontproperties=font,fontsize=24)
plt.ylim(0, 12000)
cbar = plt.colorbar(cs)
cbar.set_label('Depolarization Ratio',fontproperties=font,fontsize=24)
cbar.set_ticks(np.linspace(0.1, 1, 10))
cbar.ax.tick_params(labelsize=24)
cs.ax.tick_params(labelsize=24)#plt.xticks(fontsize=18)
titleStr='532 nm Aerosols Depolarization Ratio'
plt.title(titleStr,fontproperties=font,fontsize=28)
plt.savefig(f.replace('txt','png'),bbox_inches = 'tight',dpi=600)
感谢焦老板和冯师兄。