美文网首页
python填色循环出图

python填色循环出图

作者: Aerosols | 来源:发表于2019-04-11 10:45 被阅读0次

雷达填色图

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)

感谢焦老板和冯师兄。

相关文章

网友评论

      本文标题:python填色循环出图

      本文链接:https://www.haomeiwen.com/subject/fogziqtx.html