IDL入门教程二(下)(简单图形显示I)

2019-04-14 21:15

从IDL5版本开始,Contour命令一般都使用单元跟踪法来绘制等值线图。所以,Follow关键字已经过时了。但该关键字仍然被使用,是因为它对自动标注其它每条等值线的有益作用。选择等值线数目

缺省情况下,IDL选择6条匀称的等值线间隔(即有5条等值线)绘制等值线图。但是,可以用几种不同的方法改变缺省值。例如,可以用Nlevels关键字告诉IDL需要绘制多少条等值线。IDL将计算出等间隔的等值线间隔数。例如,要绘制具有12条等间隔的等值线图,可键入:

IDL>Contour, peak, lon, lat, Xstyle=1, Ystyle=1, /Follow, $ Nlevels=12

输出结果应与图18相似。可选择高达29条的等值线。 图18:这是将等值线级别设置为12的等值线图。注意,每隔一条等值线都会标注一条,

这是使用Fellow关键字的一种副作用。

不幸的是,尽管IDL文档称IDL将采用给定的等间隔的等值线间隔数,但事实上不是这样。如果注意观察所创建的等值线图,会注意到IDL只计算出少于12条的间隔线。显然,NLevels关键字的值在IDL中只能作为等值线选择算法中的一个“建议”。

因此,大多数IDL程序员都是自己计算等值线数目。例如,能精确规定哪条等值线应该画,并用Levels关键字传给Contour命令,而不是用NLevels关键字,如下所示:

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=12

IDL>step=(Max(peak)-Min(peak))/nlevels IDL>vals=Indgen(nlevels)*step+Min(peak)

IDL>Contour, peak, lon, lat, XStyle=1, YStyle=1, /Follow, $ Levels=vals

如果喜欢,可以C_Labels关键字精确的指定哪一根等值线应该标注。这个关键字是一个其元素与等值线数目相等的矢量(如果元素个数与等值线数目不匹配,那么元素就不能象其它关键字那样循环使用)。如果某元素的值是1(或更精确,只要是正数),相应的等值线就给予标注;如果某元素的值是0,相应的等值线就不予标注。如果某条等值线没有元素值与之对应时,那么这条等值线就不标注。例如,要标注第一,第三,第六和第七条等值线,可键入:

IDL>Contour, peak, lon, lat, XStyle=1, YStyle=1, /Follow, $ Levels=vals, C_Labels=[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, lat, Xstyle=1, Ystyle=1, /Follow, Xtitle=’Longitude’, Ytitle=’Latitude’, $

Charsize=1.5, Title=’Study Area 13F89’, Nlevels=10

也可以用C_Annotation关键字在等值线上标注释。可以用字符串标记每一条等值线: IDL> contour, peak, Xstyle=1, Ystyle=1, /Follow, $ Xtitle=’Longitude’, Ytitle=’Latitude’, Charsize=1.5, Title=’Study Area 13F89’,$

C_annotation=[‘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 关键字指定一个线型索引矢量,假如等值线数比索引号多,那么这些索引号将被循环使用或被重复使用。键入 : IDL> contour, peak, lon, lat, XStyle=1, Ystyle=1, /Follow, $ Nlevels=9, C_LineStyle=[0, 0, 2]

输出结果应与图20相似.

图20:可以修改等值线图的许多方面。这是隔二条等值线有一条虚线的等值线图。

可以改变等值线的宽度。例如,要使等值线具有双倍的宽度,可键入: IDL> Contour, peak, lon, lat, Xstyle=1, Ystyle=1, $ Nlevels=12, C_Thick=2, /Follow

通过指定一个线宽矢量,可以间隔修改等值线的宽度:

IDL> Contour, peak, lon, lat, Xstyle=1, Ystyle=1, $ Nlevels=12, C_Thick=[1, 2], /Follow

通过修改等值线图,可以很容易地看到等值线图的下坡方向。键入: IDL> Contour, peak, lon, lat, Xstyle=1, Ystyle=1, $ / Follow, Nlevels=12, /Downhill

输出结果应与图21相似。

图21:用Downhill来显示等值线图的下坡方向。

给等值线图赋色

给等值线图着色的方法有许多种。(颜色将在第83页的“IDL的颜色运用”中详细讨论。现在,只须按如下键入TvLCT命令即可,以后将学到这个命令意味着什么。实质上,装载了三个颜色矢量,每个矢量的三个分量分别代表颜色的三个组成部分红,绿,蓝。这三种颜色矢量为碳灰,黄,绿色。)假如需要一张以碳灰颜色为背景的黄色等值线图,可键入:

IDL> TvLCT, [70, 255], [70, 255], [70, 0], 1

IDL> Contour, peak, lon, lat, XStyle=1, YStyle=1, $ NLevels=10, Color=2, Background=1, /Follow

也可以用C_Color关键字给等值线本身单独添上颜色。如果需要将上图的等值线变为绿色 ,键入:

IDL> TvLCT, 0, 255, 0, 3

IDL> Contour, peak, lon, lat, Xstyle=1, Ystyle=1, /Follow, $ Nlevels=10, Color=2, Background=1, C_Colors=3

关键字C_Color也可以被表达为色彩表索引号的矢量,并以循环的方式绘制等值线。也可以使用Tek_Color命令为等值线创建或者装入颜色,如下:

IDL> Tek_Color

IDL> TvLCT, [70, 255], [70, 255], [70, 0], 1 IDL>Contour, peak, lon, lat, XStyle=1, YStyle=1, $

Nlevels=10, Color=2, Background=1, $


IDL入门教程二(下)(简单图形显示I).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中班美术教案:五彩鸟(共4篇)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: