资源描述:
《idl入门教程二(下)(简单图形显示i)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、从IDL5版本开始,Contour命令一般都使用单元跟踪法来绘制等值线图。所以,Follow关键字已经过时了。但该关键字仍然被使用,是因为它对自动标注其它每条等值线的有益作用。选择等值线数目缺省情况下,IDL选择6条匀称的等值线间隔(即有5条等值线)绘制等值线图。但是,可以用几种不同的方法改变缺省值。例如,可以用Nlevels关键字告诉IDL需要绘制多少条等值线。IDL将计算出等间隔的等值线间隔数。例如,要绘制具有12条等间隔的等值线图,可键入:IDL>Contour,peak,lon,lat,Xstyle=1,Ystyle=1,/Follow,$Nlevels
2、=12 输出结果应与图18相似。可选择高达29条的等值线。图18:这是将等值线级别设置为12的等值线图。注意,每隔一条等值线都会标注一条,这是使用Fellow关键字的一种副作用。不幸的是,尽管IDL文档称IDL将采用给定的等间隔的等值线间隔数,但事实上不是这样。如果注意观察所创建的等值线图,会注意到IDL只计算出少于12条的间隔线。显然,NLevels关键字的值在IDL中只能作为等值线选择算法中的一个“建议”。因此,大多数IDL程序员都是自己计算等值线数目。例如,能精确规定哪条等值线应该画,并用Levels关键字传给Contour命令,而不是用NLevels关键
3、字,如下所示:IDL>vals=[200,300,600,750,800,900,1200,1500]IDL>Contour,peak,lon,lat,XStyle=1,YStyle=1,/Follow,$Levels=vals要选择12个间距相等的等值线间隔,可编写如下代码:IDL>nlevels=12IDL>step=(Max(peak)-Min(peak))/nlevelsIDL>vals=Indgen(nlevels)*step+Min(peak)IDL>Contour,peak,lon,lat,XStyle=1,YStyle=1,/Follow,$Le
4、vels=vals如果喜欢,可以C_Labels关键字精确的指定哪一根等值线应该标注。这个关键字是一个其元素与等值线数目相等的矢量(如果元素个数与等值线数目不匹配,那么元素就不能象其它关键字那样循环使用)。如果某元素的值是1(或更精确,只要是正数),相应的等值线就给予标注;如果某元素的值是0,相应的等值线就不予标注。如果某条等值线没有元素值与之对应时,那么这条等值线就不标注。例如,要标注第一,第三,第六和第七条等值线,可键入:IDL>Contour,peak,lon,lat,XStyle=1,YStyle=1,/Follow,$Levels=vals,C_Lab
5、els=[1,0,1,0,0,1,1,0]要标注所有的等值线,可以使用Replicate命令来将1复制所需要的次数。键入:IDL>Contour,peak,lon,lat,XStyle=1,YStyle=1,/Follow,$Levels=vals,C_Labels=Replicate(1,nlevels)修改等值线图 等值线图可用与Plot命令和Surface命令中相同的关键字进行修改。但是仍然还有许多仅适用于Contour命令的关键字。它们中的大部分经常用于修改等值线本身。例如,用坐标轴标题注释等值线图,可键入:IDL>contour,peak,lon,l
6、at,Xstyle=1,Ystyle=1,/Follow,Xtitle=’Longitude’,Ytitle=’Latitude’,$Charsize=1.5,Title=’StudyArea13F89’,Nlevels=10也可以用C_Annotation关键字在等值线上标注释。可以用字符串标记每一条等值线:IDL>contour,peak,Xstyle=1,Ystyle=1,/Follow,$Xtitle=’Longitude’,Ytitle=’Latitude’,Charsize=1.5,Title=’StudyArea13F89’,$C_annotati
7、on=[‘Low’,’Middle’,’High’],Levels=[200,500,800]输出结果应与图19中的图例相似。图19:等值线可以用自己提供的文本标识改变等值线图的外观 修改等值线图的外观有许多方法。这里有一些例子。能改变的特性之一是等值线的线型(见表3列出的可选用的线型值)。例如,为了使等值线成为虚线的线型,键入:IDL>Contour,peak,lon,lat,Xstyle=1,Ystyle=1,$/Follow,C_LineStyle=2假如需要隔二条等值线有一条虚线,可以用C_LineStyle关键字指定一个线型索引矢量,假如等值线数比索
8、引号多,那么这些索引号将