2022年IDL入门教程二 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年IDL入门教程二 .pdf》由会员分享,可在线阅读,更多相关《2022年IDL入门教程二 .pdf(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第二章简单的图形显示本章概述科学分析最基本的能力就是以简单的线画图、等值线图和曲面图来显示所研究的数据。在这一章中,将知道用这些方式来显示数据是多么容易。也将学会用系统变量和关键字来定位和标注简单的图形显示。将学会如下几点:1.如何用 Plot 命令将数据显示为线画图。2.如何用 Surface 和 Shade_Surf 命令将数据显示为曲面图。3.如何用 Contour 命令将数据显示为等值线图。4.如何在显示窗口上定位显示图形。5.如何用公共关键字来标注和自定义图形显示。IDL 中简单的图形显示 IDL中一个简单的图形显示可认为是栅格图形的一个实例。也就是说,可用Plot, Contour
2、 或者 Surface 命令通过一种算法来点亮显示窗口内相应的像素点而形成栅格图形。这种栅格图形没有永久性。换言之,一旦IDL 显示图形和点亮相应的像素点后,IDL 就不知道自己做了些什么。这意味着,在用户重置图形窗口大小时,IDL 无法进行相应的响应。总之,在这种模式下图形显示不能被刷新,除非再次输入图形命令。但是,栅格图形命令在IDL 中被广泛应用,因为它们简单快捷。而且,将看到,如果仔细地用栅格图形命令编写IDL 程序时, 可以克服许多与栅格图形命令相关的限制。本章将介绍一些关于如何用栅格图形命令写出可调节尺寸的IDL 图形窗口或进行直接硬拷贝输出的必备概念。本章的图形命令都是Resea
3、rch Systems公司所说的直接图形。另外一种被Research Systems 公司称为对象图形的图形方式在IDL5.0 中被引入。 对象图形使用时相对难一点,但它在 IDL 编程方面更强大更灵活。对象图形不是为了在命令行使用而开发的, 而是用在IDL 的程序中, 特别是用于带有界面的程序中(带有图形用户界面的程序) 。本书对对象图形不做介绍。创建线画图生成线画图最简单的方法是绘出一个矢量。可以用LoadData 命令打开时序数据集。LoadData 命令是本书所带的一个IDL 程序(详细细节参考第5 页的“本书中所用的IDL 程序和数据文件” ) 。它用来装载本书的编程例子中所需的数据
4、。键入如下语句以查看所能使用的数据集: IDLcurve=LoadData() 如果输入 LoadData 命令时忘掉了括号,需要在它正常工作前重新编译LoadData 程序。原因是, IDL 在命令行会认为它是一个变量并进行相应地处理。重新编译后,“loaddata ”这个函数名在IDL 的函数名列表中。键入:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - IDL.Compile LoadData 时序数据是在LoadDat
5、a 数据列表上的第一个数据集。点击它,数据就被装入到curve变量中。另外一种选择第一个数据集的方法是,按如下方法使用LoadData: IDLcurve=LoadData(1) 要查看 curve 变量如何被定义,键入: IDLHelp, curve CURVE FLOAT =Array101 将发现 curve 是一个具有101 个元素的浮点矢量(或一维数组)。要绘出该矢量,可键入: IDLPlot, curve IDL 试图用少量的信息尽可能地绘出漂亮的线画图。在这种情况下,x 轴或水平轴被标识为从 0 到 100, 这与矢量中的元素个数相对应。而 y 轴或垂直轴则是用数据坐标来标识(它
6、是取决于数据的坐标轴) 。但大多数情况下,线画图用于显示一组数据(独立数据)相对另外一组数据(非独立数据)的关系。例如,上面的曲线可能代表在某段时间内采集数据的信号。可能需要绘制某个时刻的信号值。 在这种情况下, 需要一条与该曲线矢量具有相同元素个数的矢量(这样可以获得一一对应的相关性) ,并将该矢量转换为实验中所用的时间单位。例如,可以创建一个时间矢量,并绘出它与上述曲线矢量的关系图: IDLtime=FIndGen(101)*(6.0/100) IDLPlot, time, curve FIndGen 命令创建一个元素值为0 到 100 的共 101 个元素的矢量。乘法因子按比例缩图 1:
7、独立数据(时间)与非独立数据(曲线)关系图。小每个元素的大小,最后的结果是一个元素值为0 到 6 之间的共 101 个元素的矢量。 图形输出结果应与图1 相似。注意,在此图中的坐标轴上没有相应的标题。在图上设置标题是很容易的,只要用XTitle和 YTitle关键字既可实现。例如,为此曲线图加标题,可键入:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - IDLPlot, time, curve, XTitle=Time Axi
8、s, $ YTitle=Signal Strength 甚至可以用Title关键字对整个图形设置标题,键入: IDLPlot,time,curve,XTitle=Time Axis, $ YTitle=Signal Strengh,Title=Experiment 35M 输出结果应与图2 一样。图 2:简单的带坐标轴标题和图形标题的线画图注意图形显示应该为在黑色背景下的白线图,而上图显示为在白色背景下的黑线。这些插图包含在用IDL 生成的 PostScript文件中。一般情况下Postscript文件把图形颜色和背景颜色反过来。 (参考 189 页的 “问题:PostScript设备对背景颜
9、色和图形颜色的不同处理”。 )注意,图形标题稍微大于坐标轴的标题。事实上,是1.25 倍的关系。可以用CharSize关键字改变所有图形注记的大小。例如,可以将坐标轴标题的字符放大50% : IDLPlot, time, curve, XTitle=Time Axis, $ YTitle=Signal Strength, Title=Experiment 35M, $ CharSize=1.5 如果希望所有的图形显示的字符比正常情况下大,可以通过绘图系统变量上设置CharSize 的大小,如下: IDL!P.CharSize=1.5 现在,所有后续的图形显示都将用较大的字符,除非用CharSi
10、ze 关键字在图形输出命令中特别地控制。甚至可以用 XYZCharSize关键字单独改变每个轴的标识字符的大小。例如,如果想使Y轴的注记比X轴的大两倍,则可键入: IDLPlot, time, curve, XTitle=Time Axis, XCharSize=1.0, $ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - YTitle=Signal Strength, YCharSize=2.0 记住, XYZCharsiz
11、e关键字使用当前字符的大小作为基础计算出各自的大小。当前字符的大小一般储存在!P.CharSize系统变量中。 这意味着, 如果设置XCharSize 关键字为2,当!P.CharSize系统变量也被设置为2 时,字符将比平常大四倍。定制线画图上面是简单的线画图,除了数据本身外,没有多少其它信息。然而,有许多方法可用来定制和标注线画图。 Plot函数可以被50 多种不同的关键字修饰。下面的事情也许想做一做:1.改变线型或粗细。2.使用符号,符号之间可以有线条和没有线条存在。3.创建自己的绘图符号。4.给线图加入颜色提示重要特性。5.改变刻度标记的长度或刻度标记之间的间隔。6.使用对数来标度图形
12、坐标轴。7.改变绘图范围来绘出感兴趣的数据段。8.删除坐标轴或改变绘图方式。改变线条的线型和粗细例如,想用不同的线型画出数据。如画一条线型为长虚线的线条,可以这样实现: IDLPlot, time, curve, LineStyle=5 对于线画图来说,可通过LineStyle关键字选用表3 中列出的索引号确定不同的线型。例如,想使用虚线画出曲线,可以把LineStyle关键字的值设置为2: IDLPlot, time, curve, LineStyle=2 索引号线型0 实线1 点线2 虚线3 划点线4 划点点线5 长虚线表 3:可以通过赋予LineStyle这个关键字不同索引号来改变线型线
13、画图中线的粗细同样能够被改变。例如,如果想使用比正常值粗3 倍的虚线来显示图形,可键入: IDLPlot, time, LineStyle=2, Thick=3 用符号代替线条显示数据假如想用符号代替线条显示数据,就象 LineStyle关键字一样, 也存在类似的索引号供选择,以确定不同的线画图符号。表4 给出了能通过PSym (绘图符号)关键字来选择的索名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 - - - - - - - - - 引号。例如,可以通过设置
14、PSym为 2,用星号来绘图,如下: IDLplot, time, curve, Psym=2 输出的图形应与图3 中的图形相似。图 3:用符号而不是线条来显示线画图。索引号绘图符号0 无符号,通过线条连接点1 加号2 星号3 点4 菱形5 三角形6 方形7 X 8 用户自定义符号(用UserSym过程来定义)9 未用10 直方图-PSym 负值表示用线条连接相应的符号表 4:这些符号索引号可以通过PSym关键字来引用以便在绘图中使用不同的符号。注意绘图符号为负值时表示用线条来连接相应的符号。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
15、- - - 名师精心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - 用线条和符号来显示数据赋予 PSym关键字一个负值就可以用线条将图形符号连接起来。例如,可用实线与三角形符号绘出数据,键入: IDLPlot, time, curve, PSym=-5 为创建一个更大的符号,可用 SymSize 关键字。 下面的语句画出的符号为正常的两倍。符号值为 4 时符号的大小为正常值的4 倍,依此类推。 IDLPlot, time, curve, PSym=-5, SymSize=2.0 创建自己的图形符号如果富有创造力,甚至可以创建自己的图形符号。Use
16、rSym命令就用于此目的。在创建了一个特殊的图形符号之后,可通过设置PSym关键字为 8 来选择它。以下是一个创建五角星符号的例子。 x,y矢量定义五角星的顶点,它们的值为偏离原点(0,0)的位置。可以用 UserSym命令通过设置关键字Fill创建一个填充的图形符号: IDLx=0.0, 0.5, -0.8, 0.8, -0.5, 0.0 IDLY=1.0, -0.8, 0.3, 0.3, -0.8, 1.0 IDLTvLCT, 255, 255, 0, 150 IDLUserSym, x, y, Color=150, /Fill IDLPlot, time, curve, PSym=-8,
17、 SymSize=2.0 输出结果应与图4 相似。图 4:用 UserSym程序创建的符号来绘制的图。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - 用不同的颜色绘制线画图可以用不同的颜色绘制线画图(颜色将在第83 页的“ IDL 的颜色运用”中详细讨论。现在, 只须按如下键入TvLCT命令即可,以后将学到这个命令意味着什么。实质上,装载了三个颜色矢量, 每个矢量的三个分量分别代表颜色的三个组成部分红,绿,蓝。这三种颜色矢量为
18、碳灰,黄,绿色。)例如将颜色索引号1、2 和 3 分别设置为碳灰,黄,绿色,键入: IDLTvLCT, 70,255,0, 70,255,255, 70,0,0, 1 在碳灰背景下绘黄色图,键入: IDLPlot, time, curve, Color=2, Background=1 如果只是想使线条成为不同的颜色, 首先必须将NoData 关键字打开来绘图, 然后用OPlot 命令(下面要讨论的)覆盖该图。例如, 在碳灰色背景上绘制黄色外框, 数据用绿色显示, 键入 : IDLPlot, time, curve, Color=2, Background=1, /NoData IDLOPlot
19、, time, curve, Color=3 限定线画图的范围并非所有的数据都必须在一个线画图中绘出,可以用关键字限定绘图的数据量。例如,可仅绘出位于X轴上 2 至 4 之间的数据,键入: IDLPlot, time, curve, XRange=2, 4 或者仅绘出Y值在 10 至 20 之间, X值在 2 至 4 之间的部分数据图形,键入: IDLPlot, time, curve, YRange=10, 20, XRange=2, 4 也可以通过给定关键字数据范围来反转数据的方向。例如, 可将 Y轴的 0 点设置为图形的顶端,如下 : IDLPlot, time, curve, YRan
20、ge=30, 0 输出结果应与图5 相似。如果所选择的轴的范围不适合IDL 关于坐标轴美观标记的规定,IDL 将忽略所要求的范围。试一试如下的命令: IDLPlot, time, curve, XRange=2.45, 5.64 X轴上显示的范围将是从2 至 6,这并不是对IDL 所要求的精度。为确保轴上显示的范围正如所要求的那样,可将XStyle 关键字设置为1,如下 : IDLPlot, time, curve, XRange=2.45, 5.64, XStyle=1 下一节将学到更多关于XYZStyle关键字的知识。名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
21、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - 图 5: 将 Y轴 0 点设置为图形顶端的图形改变线画图的风格可以方便地改变线画图的许多特性,包括它们的外观形式。例如,可能不在意线画图的方框。如果是这样,可以用XYZStyle这些关键字改变线画图的特性。表5 给出了可通过这些关键字来改变线画图风格的值。例如,为除去方框线,只留下X轴或 Y轴,可键入 : IDLPlot, time, curve, XStyle=8, YStyle=8 值对坐标轴的影响1 精确的坐标轴范围2 扩展坐标轴范围4 不显示
22、整个坐标轴8 不显示外框(只画坐标轴)16 屏蔽 Y轴起始值为0 的设置(只有Y轴有此属性)表 5:XYZStyle关键字参数表,用于设置坐标轴的属性。注意:这些值可以累加从而设置坐标轴的多个而非单个属性。可以完全隐藏一个轴。例如,仅用Y轴显示图形,可键入: IDLPlot, time, curve, XStyle=4, YStyle=8 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - 输出结果应与图6 相似 : 图 6: 关
23、闭 X轴和方框只剩Y轴的线画图可以用 Y轴和 Y方向的网格线来显示同一幅图: IDLPlot, time, curve, XStyle=4, YTickLen=1, YGridStyle=1 XYZStyle关键字可以一次设置坐标轴的多个特性。可以通过累加适当的值来实现。例如,可以从表5 中看出,强制使用精确的坐标轴范围的参数值为1,而用来删除方框线的参数值为8。为实现上述两项功能,即让X轴显示精确的范围又隐藏方框线,可将两个参数值相加 : IDLplot, time, curve, xstyle=8+1, xrange=2, 5 在线画图上创建网格线,通常可用TickLen 关键字来完成。如
24、下: IDLPlot, time, curve, TickLen=1 将XYZTickLen关键字设置为一个负值可以创建向外的刻度标记。例如,为创建向外的刻度标记 , 可键入 : IDLPlot, time, curve, TickLen=-0.03 在某个轴上创建向外的刻度标记,可将XYZTickLen关键字设置为一个负值。例如,只在 X轴上创建向外的刻度标记,键入: IDLPlot, time, curve, XTickLen=-0.03 可以用 XYZTicks和XYZMinor关键字,在一个轴上选择主要的和次要的刻度标记的个数。例如,在X轴上创建两个主要的刻度间隔,每个主要的刻度间隔内
25、设置10 个次要的刻度标记,键入: IDLPlot, time, curve, XTicks=2, XMinor=10, XStyle=1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - 在线画图上绘出多种数据集没有必要限制自己仅仅用一组数据绘制线画图。IDL 程序允许在同一套坐标轴内显示任意多套数据。 OPlot 命令就用于此目的。键入以下命令,输出结果应与图7 相似 : IDLPlot, curve IDLOPlot, c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年IDL入门教程二 2022 IDL 入门教程
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内