f=addfile("out.nc","r");读取文件 dot=f->cspath(:,:,{0:180});读入变量 dot:=dot(lat|:,lon|:,year|:);调整变量维度顺序(EOF函数对维度顺序有要求) x=ispan(1979,2017,1);时间 eof=eofunc_Wrap(dot,3,False) pc=eofunc_ts_Wrap(dot,eof,False) pc=dim_standardize_n(eof_ts,1,1) copy_VarMeta(dot(:,:,0),eof1);将维度信息重新赋值给新数组 copy_VarMeta(dot(:,:,0),eof2) wks=gsn_open_wks("pdf","tmp") res = True res@gsnMaximize = False res@gsnDraw = False res@gsnFrame = False res@gsnDraw=False res@gsnFrame=False respc=res;实际上是设置PC图形的基础绘图参数 res@mpMaxLatF=90;设置经纬度边界 res@mpMinLatF=0 res@mpMaxLonF=160 res@mpMinLonF=0 res@mpFillOn =False;地图设置 res@mpOutlineOn = True res@mpDataBaseVersion = "MediumRes" res@mpDataSetName = "/data/home/Earth..4" res@cnFillPalette = "MPL_bwr" res@cnFillOn = True res@cnFillDrawOrder = "PreDraw" res@cnLinesOn = False res@cnLineLabelsOn = False res@gsnLeftString="" res@pmTickMarkDisplayMode = "Always" res@cnLevelSelectionMode="ExplicitLevels" res@cnLevels =(/-0.05,-0.04,-0.03,-0.02,-0.01,0,0.01,0.02,0.03,0.04,0.05/) res1=res res2=res res1@gsnRightString = "41.84%" res1@gsnLeftString = "EOF1" res1@lbLabelBarOn=False res2@gsnRightString = "14.59%" res2@gsnLeftString = "EOF2" res2@lbLabelBarOn=True map1 = gsn_csm_contour_map(wks,eof1,res1) ;绘图 map2 = gsn_csm_contour_map(wks,eof2,res2) respc@gsnYRefLine=0 respc@trYMinF=-3 respc@trYMaxF=3 res9 = respc respc@tmYLLabelDeltaF=-1 respc@trXMinF=1979 respc@trXMaxF=2017 respc@tiYAxisOn=False respc@tmXTOn =False respc@tmYROn = False respc@vpHeightF=0.39 respc@vpWidthF=0.6 respc@gsnLeftStringOrthogonalPosF = 0.04 respc1 = respc respc1@gsnLeftString = "PC1" respc2 = respc respc2@gsnLeftString = "PC2" pc1= gsn_csm_xy(wks,x,eoft1,respc1) pc2= gsn_csm_xy(wks,x,eoft2,respc2) pc1_9 = runave_n_Wrap(eoft1, 9, 0, 0);9年滑动平均 pc2_9 = runave_n_Wrap(eoft2, 9, 0, 0) res9@xyLineColor = "red" res9@xyLineThicknesses = 4 plotpc9_1 = gsn_csm_xy(wks, x, pc1_9, res9) plotpc9_2 = gsn_csm_xy(wks, x, pc2_9, res9) overlay(pc1, plotpc9_1);叠加 overlay(pc2, plotpc9_2) resp=True resp@gsnPanelRowSpec=True resp@gsnPanelFigureStrings=(/"a","b","c","d"/) resp@gsnPanelFigureStringsFontHeightF=0.01 resp@amJust="TopLeft" gsn_panel(wks,(/map1,pc1,map2,pc2/),(/2,2/),resp)