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)

感谢焦老板和冯师兄。

上一篇下一篇

猜你喜欢

热点阅读