Как сделать края графика гладкими на языке команд NCAR ( NCL)?
Как сделать края графика, созданного gsn_csm_contour_map, гладкими вместо использования этих синих квадратов?
Я пробовал другой режим заполнения, ни один из них не помог. Есть ли активная функция контура в ncl? Можно ли создать контур между нулевым и ненулевым значением?
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
;======================================================================
; The main code
;======================================================================
begin
;---Read desired data
sfile = addfile(f,"r")
var = sfile->var1
;---For zooming in on map
minlat = foo
maxlat = bar
minlon = foo1
maxlon = bar1
;---Get dimentions
dims = dimsizes(var)
nlev = dims(0)
time = var&time
date_str_i = getDate(time)
;---Set some resources
res = True
res@cnFillOn = True
;res@cnFillMode = "RasterFill"
;res@cnRasterSmoothingOn =True
res@cnLinesOn = False
res@cnLineLabelsOn = True
res@cnLevelSelectionMode = "ManualLevels"
res@cnMinLevelValF = -100
res@cnMaxLevelValF = 3000
res@cnLevelSpacingF = 200 ; 300 ; 50 ; 150
res@mpMinLatF = minlat
res@mpMaxLatF = maxlat
res@mpMinLonF = minlon
res@mpMaxLonF = maxlon
res@mpDataBaseVersion = "HighRes"
res@cnSmoothingOn = True
res@cnSmoothingDistanceF = 0.005
res@cnSmoothingTensionF = 0.001
res@mpCenterLonF = (minlon+maxlon)*0.5
res@mpCenterLatF = (minlat+maxlat)*0.5
res@pmTickMarkDisplayMode = "Always"
res@lbLabelFontHeightF = 0.01
res@gsnAddCyclic = False ; this is regional data
;---Loop across each level and plot to a different PNG file every time
do n=4,nlev-1
wks_type = "png"
wks_type@wkWidth = 2000
wks_type@wkHeight = 2000
wks = gsn_open_wks(wks_type,fname(0)+sprinti("%03i",n)) ;
res@gsnRightString = "Time:" + date_str_i(n)
res@gsnStringFontHeightF = 0.010
plot = gsn_csm_contour_map_ce(wks,var(n,:,:),res)
delete(wks)
end do
end
Но я сомневаюсь, что это связано с кодом.
1 ответ
Вы должны использовать:
res@cnFillMode = "AreaFill"
res@cnFillOn = True