第4讲 IDL可视化 曲线绘制 二维图形绘制 动画制作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
点的类型(PSym)
0 用线绘制 1 加号 2 星号 3 4 5 6 7 8 9 10 点 菱形 三角形 正方形 交叉号 用户定义 未定义 柱状图
X = Findgen(200)*0.01* !PI Y = Sin(X) Plot, X, Y, LineStyle = 2 ,Thick = 4, Color='FF0000'XL
18 18
phi = Findgen(32) * (!PI * 2 / 32.) phi = [ phi, phi[0] ] UserSym, Cos(phi), Sin(phi), /Fill Plot, data, /NoData OPlot, data, Color=FSC_Color('firebrick'), Oplot, data, color=FSC_Color('forest green'), $ PSym=8, Symsize=1.5
ห้องสมุดไป่ตู้
例如:创建一个索引号为20的图形窗口
WINDOW, 20
7
RETAIN=0 | 1 | 2:设置备份存储模式 /FREE:用于创建一个索引号在32和127之间,而且还没有被使用的图 形窗口。具体的索引号由系统对还没有使用的索引号,从小到大自动 选取。 例如:IDL>WINDOW, /FREE,默认创建32号图形窗口。
5
IDL图形输出默认背景是黑色,前景色是白色 示例
PRO ReverseDisplay Device, Decomposed=1 !P.Background='FFFFFF'XL !P.Color='000000'XL END
如果要返回正常执行,将上述!P.Background和 !P.Color的值互换就可以了
TITLE=标题变量:标题变量用于给出窗口标题的字符串。
例如:创建标题为:My Window的窗口的命令为: IDL>WINDOW, TITLE = 'My Window‘
XPOS=变量1, YPOS=变量2:变量1和2给出窗口在X和Y方向的具体位 置 XSIZE=变量3,YSIZE=变量4:变量3和4给出窗口在X和Y方向的具体大 小
例如:创建一个窗口,并把其索引号存储到变量 ThisWindowIndex中。 IDL>WINDOW, /FREE IDL>ThisWindowIndex = !D.Window
9
窗口的激活是指使非当前窗口变为当前窗口。激 活窗口可用WSET命令。 格式:WSET , 窗口索引 功能:把窗口索引变量指定的窗口设置为当前窗 口。 说明:在省略选项时,WSET命令把索引号为0的 窗口变为当前窗口。如果索引号为0的窗口不存在, 则自动创建索引号为0的窗口,并设置为当前窗口 例如:把索引号为16的窗口变为当前窗口,可以 键入命令: IDL>WSET, 16
17
创建自己的图形符号
Filled Circle phi = Findgen(32) * (!PI * 2 / 32.) phi = [ phi, phi[0] ] UserSym, Cos(phi), Sin(phi), /Fill Plot, data, PSym=8, Symsize=1.25 Filled Triangles
UserSym, [ -1, 1, -1, -1 ], [1, 0, -1, 1 ], /Fill ; Filled right-facing triangle. UserSym, [ 1, -1, 1, 1 ], [1, 0, -1, 1 ], /Fill ; Filled left-facing triangle. UserSym, [ -1, 1, -1, -1 ], [1, 0, -1, 1 ] ; Open right-facing triangle.
例: 创建窗口绘制正弦曲线,并把窗口从左边移动到右边
PRO MoveWindow FOR i = 1,400 DO BEGIN WINDOW, TITLE = 'My Window', XPOS=i, YPOS=100, XSIZE=300, YSIZE=300 & PLOT, SIN(FINDGEN(100)/10) WAIT, 0.01 & WDELETE ENDFOR END
3
SET_PLOT, Device [, /COPY] [, /INTERPOLATE] 示例
在图形设备间切换 set_plot, 'win‘ 设置字体
set_font=‘字体变量’ 示例
Device, set_font='times new roman‘ 设置字体大小和行间距
10
格式:WSHOW , 窗口索引变量[, 0 | 1]] [, /ICONIC] 功能:显示窗口索引变量指定的窗口,并把该窗 口放在所有窗口的最前面。 0 | 1:0指隐藏窗口,1指显示窗口 /ICONIC:把窗口最小化。
例如:把索引号为16的窗口显示最前面: IDL>WSHOW , 16 例如:把索引号为16的窗口最小化: IDL>WSHOW , 16, /ICONIC 例如:把索引号为16的窗口隐藏起来: IDL>WSHOW , 16, 0
13
窗口的移动和缩放可以使用WINDOW、WSET、WSHOW、 WDELETE和ERASE的配合使用来实现。 窗口移动的方法:
1. 2. 3.
先创建一个窗口,然后在该窗口内输出内容; 使用WAIT命令或空循环语句使该窗口显示一段时间后将其删除; 在下一个位置重复第一步和第二步,直到结束。
set_character_size = [字体变量1, 行间距变量2] 示例
Device, set_character_size=[10, 12]
4
获取/设置图形设备属性 DEVICE, 关键字
RETAIN=0 | 1 | 2
示例:
份,2由IDL系统备份 DECOMPOSED=0 | 1 设置显示模式为伪彩真彩模式 GET_DECOMPOSED=变量:获取当前设备的显示模式 GET_SCREEN_SIZE=变量: 获取当前设备的分辨率 GET_VISUAL_DEPTH=变量:获取当前设备的颜色深度 GET_VISUAL_NAME=变量: 获取当前设备显示模式名称
设置备份存储模式,0不备份,1由操作系统备
mydevice = !D.NAME
& SET_PLOT, 'PS' DEVICE, FILENAME='myfile.ps', /LANDSCAPE PLOT, FINDGEN(10) & DEVICE, /CLOSE SET_PLOT, mydevice
-PSym 用线条连接相 应的符号
16
点的类型(PSym)
1 Plus sign (+) 2 Asterisk (*) 3 Period (.) 4 Diamond 5 Triangle 6 Square 7X 8 User-defined.
Plot, data, PSym=2
Plot, data, PSym=-2
6
数据可视化需要一个显示窗口,如果没有建立, 则系统建立默认窗口 建立窗口
Window , 窗口索引 [, /Free][, Retain=0 | 1 | 2] [, Title=
标题] [, XPos=变量1][, YPos=变量2][, XSize=变量3][, YSize=变量4]
14
利用Plot 语句可以绘制基本曲线图,用于显示一组数据 (独立数据)相对另外一组数据的关系。其使用格式为: Plot, [X,] Y [, 关键词] X和Y是数组或向量,其中Y是必须的,X和关键词可以省 略。常用的关键词用于约束线型(LineStyle)、前景色 (Color)、背景色(BackGround)、图形符号(Psym)
李英冰 武汉大学测绘学院 http://ybli.whu.edu.cn
1
1. 2. 3. 4. 5. 6.
图形系统与窗口系统 曲线绘制 二维图形绘制 三维图形绘制 动画制作 智能工具
2
1.1图形系统 直接图形系统是直接利用用户设定的默认 图形设备来进行数据显示的图形系统。
设备代码 Win PS Printer X 设备描述 微软 Windows PostScript格式文件 打印机 X Windows(Unix)
11
删除窗口可以使用WDELETE命令。其用法为: 格式:WDELETE [, 窗口索引变量 [, ...]] 功能:删除窗口索引变量指定的窗口,并释放窗口所占有 的内存空间。 说明:在省略所有选项时,WDELETE用于删除当前窗口。 例如:删除索引号依次为10,12,14和16的窗口: IDL>WDELETE, 10, 12, 14, 16 例如:删除打开的所有窗口: IDL>WHILE !D.Window NE -1 DO WDELETE, !D.Window
12
PRO BrownianRotation xSize = 300 & ySize =300 Window, Title = 'BrownianRotation Window',XPos = 100, YPos = 100, XSize = xSize, YSize = ySize VisualWindow = !D.WINDOW Plot,[0], /NoData, XRange = [-1,1], YRange = [-1,1] Window, /Free, /Pixmap, XSize = xSize, YSize = ySize PixelWindow = !D.WINDOW ;复制可见窗口到位图映射窗口 Device, Copy = [0,0, xSize, ySize, 0, 0,VisualWindow] Seed =-1 & x = Randomn(Seed, 50)* 0.1 & y = Randomn(Seed, 50)*0.1 WSet, VisualWindow For i=1 , 250 Do Begin ;复制位图映射窗口到可见窗口 Device, Copy = [0,0,xSize, ySize,0,0,PixelWindow] Plots, x, y, PSYM = 3 x = x+0.02 * Randomn(Seed,50)*0.1 y = y+0.02 * Randomn(Seed,50)*0.1 EndFor End
例如:创建标题为:My Window,位置在(100,200),大小为400×500的 窗口的命令为:
WINDOW, TITLE = 'My Window', XPOS=100, YPOS=200, XSIZE=400, YSIZE=500
8
活动窗口(即当前窗口)是指当前处于活动状态的窗口。 窗口被创建后,自动处于激活状态,而且设置为当前窗口。 若同时打开了多个窗口,则只有一个是当前窗口,其它窗 口为非当前窗口 当前窗口用于显示图形命令的输出结果。 当前窗口的索引号总是存储在!D.Window系统变量中,因 此在创建一个窗口时,可以通过系统变量!D.Window存储 窗口的索引号,以便以后删除该窗口或使其成为活动窗口。 如果没有创建和打开图形窗口,系统变量!D.Window的值 为﹣1。
程序代码 X = [1,2,3,4,5,6,7,8,9] Y = 2*sin(X) Plot, X, Y
运行结果
15
线的类型(LineStyle)
0 实线 1 点 2 虚线 3 点虚线 4 点点虚线 5 长虚线
示例
线的颜色(Color)
‘0000FF’XL 红色 ‘FF0000XL 蓝色 ‘FFFFFF’XL 白色 ‘000000XL 黑色 ‘00FF00XL 绿色 ‘00FFFF’XL 黄色 ‘FF00FF’XL 紫色 ‘FFFF00XL 青色 ‘00BBFF’XL 金色
19
要为IDL图形添加一个标题,可以使用Title关键词,用 SubTitle为绘制区添加一个副标题,用XTitle设定X轴的标题, 用YTitle设定Y轴标题。 CharSize= value用于设置注释和标注字体的大小, {X|Y|Z}CharSize=value用于设置X轴、Y轴和Z轴注释和标注字 体的大小。CharThick= integer用于设置注释或字体的粗细。 Font=integer用于设置字体系统图