NCL基于顺序结构的绘图程序和基于对象的绘图程序对比

Example 1

This example uses GSNfunctions to draw an XY plot with some text strings:

load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"

begin
;
; Create workstation.
;
  wks = gsn_open_wks("x11","test")

;
; Create a data object.
;
  npts = 500
  x    = fspan(0,npts-1,npts)
  y    = 500.+ 0.9 * x * sin(0.031415926535898*x)

;
; Set up resource list. Turn off the automatic frame advance so we can
; draw some text before the frame is advanced.
;
; We are also turning off the automatic draw, although this is
; not really necessary. This may sometimes be necessary if you need
; to control the draw order of various plot objects.
;
  res          = True
  res@gsnFrame = False
  res@gsnDraw  = False

;
; Create XY plot. Plot will not be drawn nor will the frame be
; advanced (yet).
;
  xy = gsn_xy(wks,x,y,res)

;
; Set up text resource list.
;
  txres               = True
  txres@txFont        = 22
  txres@txFontHeightF = 0.03

;
; Draw a couple of text strings.
;
  gsn_text_ndc(wks,"This is a string at the top",0.5,0.9,txres)
  gsn_text_ndc(wks,"This is a string at the bottom",0.5,0.1,txres)

;
; Now draw the plot and advance the frame.
;
  draw(xy)
  frame(wks)
end

Example 2

This example is the same as example 1, except it's done using theobject-orientedinterface to NCL's graphics:

begin
;
; Create workstation.
;
  wks = create "poly" xWorkstationClass defaultapp end create

;
; Create a data object.
;
  npts = 500
  x    = fspan(0,npts-1,npts)
  y    = 500.+ 0.9 * x * sin(0.031415926535898*x)

  dataid = create "data" coordArraysClass noparent
    "caYArray" : y
  end create

  xy = create "xy" xyPlotClass wks
    "xyCoordData" : dataid
  end create

  text1 = create "text1" textItemClass wks
    "txString"      : "This is a string at the top" 
    "txPosYF"       : 0.5
    "txPosYF"       : 0.9
    "txFontHeightF" : 0.03
  end create

  text2 = create "text1" textItemClass wks
    "txString"      : "This is a string at the bottom"
    "txFont"        : 22
    "txPosXF"       : 0.5
    "txPosYF"       : 0.1
    "txFontHeightF" : 0.03
  end create

  draw((/xy,text1,text2/))
  frame(wks)
end


你可能感兴趣的:(NCL基于顺序结构的绘图程序和基于对象的绘图程序对比)