第二个参数为图形所在的数组,第三个参数为各个图形的排列方式(在下一节有详细的介绍),第四个数组是为最终图形设置的 resources。 13.2 在页面上定位图形
gsn_panel的第三个参数是一个指定图形如何在页面上定位的数组。这个数组简单的表示是:表示希望显示的行和列的个数。
当你设置了特殊的resource gsnPanelRowSpec=True时,你可以对图形的定位进行更好的控制:这时数组的每个数表述对应行中图形的个数。例:(/1,3,2/)
当你创建一个镶嵌的图形时,下面的resources会经常用到,它们是为gsn_panel设置的,不能在画单独的图形时使用。
txString: 公共的标题 gsnPanelLabelBar : 公共的label bar gsnPanelBottom : 最后一个图形的底部距窗口的距离比,它的值要大于0.0,小于1.0 gsnPanelTop : 第一个图形的顶部距窗口的距离比,它的值要大于0.0,小于1.0 0.0 1.0 gsnPanelFigureStrings :将指定的字符串替换到每个图形的左上角。
13.4 用不同的大小镶嵌图形
你可以手动的设置一个frame去包含不同尺寸的图形,这样需要自己指定它在页面上的位置和尺寸。参考下面的例子。
;创建第一个图形 res = True res@gsnFrame = False res@vpXF = 0.2 res@vpYF = 0.83 res@vpWidthF = 0.6 res@vpHeightF = 0.465 plot1 = gsn_csm_contour_map_polar(wks,d,res) ;创建第二个图形 sres = True sres@gsnFrame = False sres@vpXF = 0.15 sres@vpYF = 0.3 sres@vpWidthF = 0.7 sres@vpHeightF = 0.18 plot2 = gsn_csm_xy(wks,x,y,sres) frame(wks) 十四、字体的高度
在NCL中有很多标签和标题。它们都可以被它们的resources控制。例如:底部的X坐标的刻度标签的文字高度可以通过 tmXBFontHeightF来设置。labelbar的标签的文字高度可以通过lbLabelFontHeightF来控制。附录A包含了一系列常用的文字高度 resources。 十五、标题
NCL中有三种主要的标题和三种附加的标题。主要的标题可以通过resources: tiMainString(主标题)、tiXAxisString(x坐标标题)和tiYAxisString(y坐标标题)。 5.6节讨论了附加的标题resources: gsnLeftString, gsnRightString和 gsnCenterString. 十六、说明(legend) 默认的情况下,一个x-y图形时没有说明的,要显示说明,你必须设置 pmLegendDisplayMode = \ 关于说明(legend)的更多信息参见附录A 十七、颜色条(Label Bars)
在gsn_csm高水平图形接口中,当用户设置 resources “cnFillOn=True时,一个颜色条会被自动的创建。颜色条默认是水平的,在图形的下面。标签显示在各个颜色的边缘。附录A包含了一系列的 resources可以用来修改默认的行为。也可以通过gsn图形接口自定义一个颜色条。参考以下链接: http://www.ncl.ucar.edu/Applications/labelbar.sh tml 十八、功能码(Function codes) 十九、原型(Primitives) 19.1 多边形
多变形是至少包含三个点的封闭图形。最后一个点应该和第一个点式重合的。多边形可以添加到一个图形上,在图形坐标中用 gsn_ploygon命令,在NDC坐标中用gsn_polygon_ndc命令。这两个命令都不会使多边形添加为图形的一部分(它会在’另一页’上显示)。如果你要他们在一个图形上显示,需要’ ) 使用gsn_add_polygon命令。例:
wks = gsn_open_wks(\False plot = gsn_csm_map_ce(wks,res)
y = (/30.,30.,0.0,0.,30./) x = (/-90.,-45.,-45.,-90.,-90./) resp = True resp@gsFillColor = \gsn_polygon(wks,plot,x,y,resp) d = gsn_add_polygon(wks,plot,x,y,resp) draw(plot) frame(wks) 19.2 多线段(Polylines)
有三个接口可以向图形画出多线段:gsn_ployline(图形坐标)、gsn_ployline_ndc(页面/NDC坐标)和 gsn_add_polyline. 例:
wks = gsn_open_wks(\res = True res@gsnDraw = False res@gsnFrame = False plot = gsn_csm_map_ce(wks,res) y = (/30.,30.,0.0,0.,30./) x = (/-90.,-45.,-45.,-90.,-90./) resp = True resp@gsLineThicknessF = 2.0 resp@gsLineColor = \
d = new(4,graphic) do i=0,3 d(i)= gsn_add_polyline(wks,plot,x(i:i+1),y(i:i+1),resp) end do draw(plot) frame(wks)
19.3 多个标记(Ploymarkers) 有十七种标记可以添加:
有三个接口可以使用:gsn_ploymarker(图形坐标)、 gsn_ploymarker_ndc(页面/NDC坐标)和 gsn_add_ploymarker. 你可以使用NhlNewMarker函数创建你自己的标记。详见: http://www.ncl.ucar.edu/Document/Functions/Builtin/NhlNewMarker.shtml
二十、添加文本
NCL有三个添加文本的接口:gsn_text(图形坐标)、gsn_text_ndc(页面坐标)和gsn_add_text。只有最后一个函数会将文本和图形结合在一起。例:
add_T = \here\x = 0.5 ; middle of x y = 0.85 ; towards top of page txres = True txres@txFontHeightF = 0.03 gsn_text_ndc(wks,plot,add_T,x,y,txres) draw(plot)
二十一、X-Y坐标
下面的例子使用了接口gsn_csm_xy创建一个X-Y图形:
f = addfile(\“x11\True res@tiMainString = \如果你要在一副图形上画多条线,你需要将每条线的数据放在一个数组里,并将这个数组作为 gsn_csm_xy的第三个参数即可。有许多resources可以设置x-y图形的显示风格:例如: gsnXYBarChart可以将x-y图形变为柱状图。设置 xyMarkLineMode=“Marker 可以将直线图变为散点图。更多resources的用法见附录A 二十二、明确的设置刻度标记的标签
可以通过以下方式更改默认的刻度标记标签。
custom_labs = (/\res@tmXBValues = x_values res@tmXBLabels = custom_labs res@tmLabelAutoStride = True plot = gsn_csm_xy(wks,x,y,res) tmXBValues属性表示刻度实际的值。tmXBLabels属性表示刻度处显示的标签。
附录A:常用的resources –坐标轴(Axis)
http://www.ncl.ucar.edu/Document/Graphics/Resources/tr.shtml
名字 trYReverse trXReverse trYMinF trXMinF trYMaxF trXMaxF trYLog trXLog 意义颠倒X轴或Y轴设置x或y轴坐 x y 标的最小值设置x或y轴坐标的最大值打开/关闭坐标轴的标签默认值 False 0.0 1.0 False 可用值举例 True 3 900 True 等高线(Contour)
http://www.ncl.ucar.edu/Document/Graphics/Resources/cn.shtml
名字 cnFillOn cnLinesOn cnFillMode cnLevelSelectionMode cnMinLevelValF cnMaxLevelValF cnLevelSpacingF 意义打开/关闭填充颜色 False 选项显示/隐藏等高线设置填充模式控制等高线的分级设置等高线的最高级别和最低级别设置等高线相邻级别的间隔 True “AreaFill “automaticLevels Dynamic Dynamic 默认值可用值举例 True False “RasterFill “ExplicitLevels “ManualLevels 5 35 2 cnLevels
当cnLevelSelectionMode Dynamic = “ExplicitLevels时用来设置等高线的级别设置等高线的宽度设置填充图案显示/隐藏等高线信息标签 1.0 “SolidFill True
(/3,5,7,9,10/)
cnLineThicknessF cnFillPatterns cnInfoLabelOn
2.0 (/1,3,-1/) -1表示透明 False 颜色条Labelbars
http://www.ncl.ucar.edu/Document/Graphics/Resources/lb.shtml
名字 gsnSpreadColors 意义是否从整个 colormap中平均取值设置在colormap 中取值的起始下标 False 默认值可用值举例 True
gsnSpreadColorSt art 2 46
gsnSpreadColorEn 设置在colormap d 中取值的结束下标 lbLabelBarOn lbOrientation lbLabelAutoStride
Ncolors-1 89
显示/隐藏颜色条对gsn_csm接口默 False 认为True 设置颜色条的方向自动的选择颜色条的合适的标签跨度对gsn_csm接口默“vertical 认为水平的 False True 名字 lbTitleOn lbTitleString lbLabelAlignment pmLabelBarOrthogonalPosF
意义显示/隐藏颜色条标题设置颜色条的标题设置颜色标签显示的位置 False Null
默认值
可用值举例 True “m/s “BoxCenters -0.03
“ExternalEdges
相对的移动颜色 N/A 条,若为水平的,则上下移动相对的移动颜色 N/A 条,若为垂直的,
则左右移动设置颜色条的宽度设置颜色条的高度用户在gsn_csm接口中设置用户在gsn_csm接口中设置
pmLabelBarParallalPosF
-0.01
pmLabelBarWidthF pmLabelBarHeightF GSN
http://www.ncl.ucar.edu/Document/Graphics/Resources/gsn.shtml
名字 gsnAddCyclic 意义 turn on/off the addition of a cyclic point to the longitude coordinate Values 为图形添加一个字符串画出图形默认值对有一维坐标变量的数据是 True 可用值举例 False
gsnCenterString gsnDraw gsnMaximize
N/A True
“string here False True
将图形最大化, False 必要时会旋转图形图形左下角的标题在gsn_csm接口中位数据的 long_name属性
gsnLeftString
“string here
名字 gsnFrame gsnPanelFigureStrings
意义推进frame 在镶嵌图中为每一个图形添加左上角的标签在镶嵌图中显示 /隐藏公共的颜色条设置右上角的标签使向量/标量接口gsn_csm在标量场上画向量图是否从整个 colormap中平均取值设置在colormap 中取值的起始下标 True N/A
默认值
可用值举例 False (/a,b,c/)
gsnPanelLabelBar
False True
gsnRightString gsnScalarContour
在gsn_csm接口中默认为units的值 units False
“sting here True
gsnSpreadColors
False True
gsnSpreadColorStart 2 46
名字 gsnSpreadColorEnd gsnXYBarChart gsnXRefLine gsnXRefLineColor gsnYRefLine gsnYRefLineColor
意义设置在colormap中取值的结束下标
默认值 Ncolors-1 89
可用值举例
将x-y坐标中的线段 False 变为柱状图向图形中添加一条垂直的参考线改变X参考线的颜色向图形中添加一条水平的参考线改变Y参考线的颜色 None 前景色 None 前景色
True 1.0 “green 1.0 “blue 说明(Legends)
http://www.ncl.ucar.edu/Document/Graphics/Resources/lg.shtml
名字 pmLegendWidthF 意义默认值可用值举例 0.6 0.3 “Profiles “vertical False (/a,b/) -0.03 设置说明的宽度 Dynamic
pmLegendHeightF 设置说明的高度 Dynamic lgTitleOn lgOrientation lgPerimOn xyExplicitLegendL abels pmLegendOrthgo nalPosF pmLegendParallel PosF 显示说明的标题 N/A 设置说明的布局“horizontal 显示/隐藏说明的边框 True
更改默认的说明 N/A 标签相对的移动说明,N/A 若为水平的,则上下移动相对的移动说明,N/A 若为垂直的,则左右移动 0.2
XY曲线(XY curves)
http://www.ncl.ucar.edu/Document/Graphics/Resources/xy.shtml
名字 xyDashPatterns xyLineThicknesses xyLineColors xyMarkLineModes 意义设置线的类型设
置线的宽度设置线的颜色 solid 1.0 前景色默认值可用值举例 (/0,2/) (/solid,dash/) (/2.0,3.0,4.0/) (/red,blue/) “Lines “Markers “MarkLines 5 “green 0.03
设置线是否包“Lines 含:标记,线,或者两者都有设置标记的类型设置标记的颜色设置标记的尺寸 asterisk 前景色 0.01
xyMarkers xyMarkerColor xyMarkerSizeF 地图(maps)
http://www.ncl.ucar.edu/Document/Graphics/Resources/mp.shtml
名字 mpLimitMode mpMinLatF mpMaxLafF mpMinLonF mpMaxLonF mpFillOn mpCenterLonF 意义定义如何定位要显示的区域为地图的放缩设置最小的维度值为地图的放缩设置最大的维度值为地图的放缩设置最小的经度值为地图的放缩设置最大的经度值是否填充地图设置投影的中心经度默认值根据不同的投影有不同的默认值 dynamic dynamic dynamic dynamic 对gsn_csm接口默认为True 0 可用值举例“LatLon “Corners 30. 60. -70. 89. False 180. 名字 意义
默认值“LowRes 可用值举例“MediumRes “HighRes(必须先下载) “brown “SkyBule “blue False “Geosphysica lAndUSStates “National 2.0 “red
mpDataBaseVersion 设置地图数据库的分辨率 mpLandFillColor mpOceanFillColor 设置陆地区域的颜色设置海洋区域的颜色
对gsn_csm接口默认的是gray “transparent “transparent True “Geophysical
mpInlandWaterFillC 设置内陆湖的颜色 olor mpOutlineOn mpOutlineBoundar ySets mpGeophysicalLine ThicknessF mpGeophysicalLinC olor 显示/隐藏地图的边框设置多种欧洲大陆的轮廓线设置地图轮廓线的宽度设置地图轮廓线的颜色 1.0 foreground
名字 mpUSStateLineColor 意义设置美国州边境的颜色 默认值 foreground 可用值举例“blue
多边形、多线段、ploymarkers
http://www.ncl.ucar.edu/Document/Graphics/Resources/gs.shtml
名字 gsFillColor gsEdgeColor gsEdgesOn gsLineColor gsLineThicknessF gsMarkerIndex gsMarkerColor gsMarkerSizeF 意义为多边形设置填充颜色为多边形的边设置颜色显示/隐藏多边形的边设置线段的颜色设置线段的宽度设置标记的类型设置标记的颜色设置标记的尺寸默认值 transparent none False foreground 1.0 asterisk(0) foreground 0.007 可用值举例“red “black True “orange 2.5 5 “purple 0.014