Igor Pro实用教程:图表绘制、数据分析与程序设计
上QQ阅读APP看书,第一时间看更新

2.2.3 设置坐标轴

坐标轴的设置包括线型、粗细、刻度线和刻度标签、坐标轴标签等。设置坐标轴有3种方法:通过菜单命令【Graph】|【Set Axis Range】进行设置;在Graph窗口右击选择菜单【Axis Properties】进行设置;双击坐标轴进行设置。这3种方法都可以调出坐标轴设置对话框【Modify Axis】。系统坐标轴和自由坐标轴都可以通过该对话框设定,如图2-38所示。

图2-38 【Modify Axis】对话框【Axis】选项卡

【Modify Axis】对话框一共有7个选项卡,每一个选项卡代表对坐标轴的一类操作。对话框左上角【Axis】下拉列表里包含当前graph中所有坐标轴,从中选择对应坐标轴进行设置。也可以同时选择多个坐标轴,此时设置对所有选择的坐标轴生效。【Live Update】复选框选中时,对坐标轴的任何修改都会实时更新。

1.【Axis】选项卡

(1)【Mode】选项区域:设置坐标轴刻度是线性分布还是对数分布。对数分布常用于坐标数量级跨度特别大的场合。

(2)【Free Position】选项区域:设置自由坐标轴的位置,有3种选择。

· Ditance from Margin:自由坐标轴相对于绘图区域的距离是一个绝对数值,单位是点数(points)。

· Crossing Other Axis:自由坐标轴的位置为与之垂直的坐标轴某一数据点(如0)。

· Fractrion of Plot:自由坐标轴相对于绘图区域的距离为绘图区域大小的百分比。

(3)【Axis】选项区域。

【Axis Standoff】复选框:取消选择将使横纵坐标轴直接在起始点相交,没有偏移,否则坐标轴会有一个小小的偏移,以避免被曲线或者曲线marker遮挡。

【Mirror Axis】下拉列表:设置镜像坐标轴,有4个选项。

· Off:表示没有镜像坐标轴。

· On:表示带有刻度线但没有刻度标签的镜像坐标轴。

· No ticks:表示没有刻度线和标签的镜像坐标轴。

· Label:表示带有刻度线和标签的镜像坐标轴。

【Axis Thick】文本框:设置坐标轴粗细程度,设为0时坐标轴将不显示。

【Draw between】文本框:指定坐标轴在绘图区域的位置,通过百分比来指定,从左到右(从下到上)分别对应0到100%。例如,绘制图2-39效果的方法为(假定自定义坐标轴为NewL、NewB):NewL坐标轴的【Draw between】设置为60% and 100%, NewB坐标轴的【Draw between】设置为50% and 100%。

图2-39 Inset图的绘制

(4)【Font】和【Color】选项区域:设置坐标轴及刻度标签的字体和颜色。

2.【Auto/Man Ticks】选项卡

此选项卡用于设置刻度线的显示样式,有3种方式,这3种方式可以通过左上角下拉列表进行选择。

· Auto Ticks:自动刻度线设定。

· Computed Manual Ticks:半自动刻度线设定。

· User Ticks From Waves:完全自定义刻度线设定。

一般最常用的是自动设定(Auto Ticks),其他的很少用。在Auto Ticks显示样式下通过设置【Approximately】和【Minior Ticks】观察坐标轴刻度显示,选择最佳样式,如图2-40所示。

图2-40 【Auto/Man Ticks】选项卡

(1)【Automatic Ticks】选项区域:选择自动刻度线时,设置主刻度线和副刻度线。

· 【Approximately】:设置主刻度线的数目。注意此数字并不一定和主刻度线数相等,Igor会根据该数目及实际显示效果自动计算一个最佳的刻度线数目。

· 【Minor Tikcs】:设置是否显示副刻度线。

· 【Minimum Sep】:设置副刻度线的最小间隔,以像素作为单位。同样该间隔和实际间隔可能略有差别。

(2)【Computed Manual Ticks】选项区域:半自动设定刻度线。通过指定刻度线的间隔和某一个特征刻度线的位置,重新计算并绘制所有刻度线。

【Maj or tick marks】设置主刻度线。

· 【Canonic tick】文本框:某条主刻度线的位置。一般设置为起始主刻度线,但可以不是起始主刻度线。

· 【Tick Increasement】文本框:主刻度线间隔。可以设置为n × 10m

· 【Digits after dp】文本框:刻度标签数字小数点后面的位数。

【Minior ticks】设置副刻度线。

· 【Number per major tick】文本框:每两个主刻度线之间副刻度线的数目。

· 【Emphasize every】文本框:每几个副刻度线强调一次(如略微变长)。

当需要在坐标轴上显示某些特殊的刻度标签时,可以选择半自动刻度线。如刻度轴表示时间,每一个主刻度表示60s的整数倍,则可以选择半自动刻度线设置,显示效果如图2-41所示。

图2-41 半自动刻度线坐标轴显示效果

      Make/O data
       SetScale/P x 0,1, data
      data=exp(-x/60)
      Display data
      ModifyGraph manTick(bottom)={0,30,0,0}, manMinor(bottom)={3,2}

上面命令中最后一行在选项卡中的对应设置如图2-42所示。

图2-42 半自动坐标轴设定

(3)【User Tick Waves】选项区域:完全自定义刻度线的绘制。前面两种刻度线都是均匀分布的刻度线,如果定义非均匀分布的刻度线可以采用第3种方式。此时需要提供两个wave:一个文本wave,包含刻度线对应的标签名称;一个数值型wave,包含刻度线在坐标轴上的位置,数值取坐标值。完全自定义坐标轴很有用,如在测量晶体随温度变化的流动性时,流动性是Tm/T的函数,其中Tm为结晶温度。下面是一个可能的数据和绘制命令,所绘制出的结晶流动性随温度变化图如图2-43所示。

图2-43 结晶流动性随温度变化

      Make/O InverseTemperature={30,20,14.2857,10,5,3.0303,2.22222,1.25}
      Make/OMobility={0.211521,0.451599,0.612956,0.691259,0.886406,0.893136,0.921083,1}
      DisplayMobility vs InverseTemperature                //绘制曲线,使用默认坐标轴
      ModifyGraph mode=3, marker=8

图2-43中横轴刻度线均匀分布,很难看出特征温度的信息。如果希望温度在20、30、50、100、400摄氏度(实际中这些温度可能对应特殊物理含义)时显示对应的刻度线,则可以使用自定义刻度线的方法。首先创建两个wave

      Make/N=5/T TickLable={"20", "30", "50", "100", "400"}    //刻度线标签
      Make/N=5 TickPosition
      TickPosition=450/str2num(TickLable)

设置坐标轴刻度线由自定义wave绘制

      ModifyGraph userticks(bottom)={TickPosition, TickLable}

上面的命令在坐标轴设置选项卡中对应的设置如图2-44所示,最终效果如图2-45所示。

图2-44 用户自定义刻度设置

图2-45 完全自定义刻度显示效果

使用完全自定义刻度方法,刻度线标签可以指定为任何字符,如可以将TickLable的第一个字符串由“20”改为“20 Degree”,如图2-46所示。

图2-46 自定义刻度标签

        TickLable[0]="20 Degree"

刻度标签对应的文本wave可以是一个一维wave,也可以是一个N×2的二维wave,此时第一列存放刻度线标签内容,第二列存放刻度线的绘制方式,包括主刻度线、副刻度线、强调刻度线等。图2-47所示是一个相关的例子,请读者对照例子自己练习。

3.【Ticks and Grids】选项卡

用于设置刻度线标签的显示方式和显示位置,设置网格线,设置“0位线”,如图2-48所示。

图2-48 【Ticks and Grids】选项卡

(1)【Exponential lables】选项区域:用于设置刻度线标签的显示方式。刻度线标签指显示在刻度线旁边的数字。当标签数字的极大值和极小值落于【Hightrip】和【Low trip】指定的范围时,显示为正常数字,否则按照科学计数法显示。例如刻度标签数字为12000,如果【High trip】设定为100000,则标签显示为“12000”,如果【high trip】设定为1000,则标签显示为1.2,而坐标轴上会显示104作为单位。

可以在【Exponent Prescale】中指定一个值,用来自动调整此单位的大小,如指定【Exponent Prescale】为-1,则标签显示为1200,同时坐标轴上的单位会增加一个数量级。假定坐标轴上的坐标范围为a,而【Exponent prescale】的数字为n,则坐标范围显示为a× 10n,如果此范围最大(或最小值)超过【High trip】和【Low trip】,则显示为科学计数法。这个设置比较复杂,一般按照默认设置就可以了。

(2)【Tick Dimensions】选项区域:

【Location】指定刻度线相对于坐标轴的位置,有4个选项可供选择。

· Inside:表示位于坐标轴内部。

· Crossing:表示和坐标轴交叉。

· Outside:表示位于坐标轴外部。

· None:表示不绘制刻度线。

【Length】和【Thickness】用于设置刻度线的长短和粗细。刻度线的模型如图2-49所示。

图2-49 刻度线模型

(3)【Grid】选项区域:绘制网格线。

(4)【Zero Line】复选框:绘制一条通过坐标轴的0刻度位置的直线。【Style】指定直线的线型,【Zero Line Thick】指定线的宽度。

4.【Tick Options】选项卡

刻度线选项,控制某条刻度线的显示与否。前面的设置都是针对所有刻度线的,这里可以对个别刻度线进行设置,【Tick Options】选项卡如图2-50所示。

图2-50 【Tick Options】选项卡

(1)【Enable/Inhibit Ticks】选项区域:指定要显示刻度的刻度值范围,或是指定哪个刻度不显示。【Inhibit ticks】文本框表示将禁止该值处刻度线的显示。

(2)【Tick Label Tweaks】选项区域:设置刻度标签的显示方式,详细含义如表2-1所示。

表2-1 刻度标签的显示方式选项

5.【Axis Label】选项卡

坐标轴标签说明选项。通常显示于坐标轴旁,用于描述坐标轴的含义及刻度单位等。【Axis Label】选项卡中的文本输入框【Axis Label】可以直接输入要显示的内容,输入内容将实时显示在【Label Preview】窗口中。输入内容包括普通字符和转义字符,转义字符以一个反斜杠开始,如上标转义字符为“\S”。【Axis Label】选项卡如图2-51所示。

图2-51 【Axis Label】选项卡

【Insert】区域里包含了对Axis Label进行设置和输入的所有选项。【Font】设置字体,【Font Size】设置字体大小。【Units】中设置Axis Label是否自动添加幂指数单位,如将10-6A自动写为uA。【Units】有6个选项。

· Units:用m、u、p、f等符号表示10-3、10-6、10-9、10-12,对应转义字符为“\U”。

· Exponential Prefix:用科学计数法表示,如10000表示为104,对应转义字符为“\u”。

· Inverse Exponential Prefix:和Exponential Prefix含义一样,但指数符号是相反的,如0.0001表示为104,对应转义字符为“\u#1”。表示类似于pH值的数据时可用到此选项。

· Scaling:用科学计数法表示,如10000表示为“x104”,对应转义字符为“\E”,与Exponential Prefix不同的是前面出现一个“×”。

· Inverse Scaling:和Scaling含义相同,但指数符号是相反的。

· Manual Override:禁止生成任何坐标轴标签,对应转义字符为“\u#2”。

图2-52给出了选择不同Units时坐标轴标签的区别,这里x轴的范围是从9×10-12到120×10-12,单位A。

图2-52 坐标轴标签Units不同时的区别

【Special】用于输入特殊字符,包括设置字体风格(黑体、斜体、下画线等)、对齐方式、颜色,输入上标、下标、反斜杠、普通字符或者特殊字符、marker,甚至是自定义图片等。这些输入通过转义字符来完成,Igor会根据用户选择自动生成对应的转义字符。直接手动输入转义字符可达到相同的效果。表2-2总结了常用转义字符及其对应的效果。

表2-2 坐标标签中常用的转义字符及其对应效果

注意,特殊字符是依赖于字符集Font的。字符集不同,特殊字符也不同,因此要输入某个特殊的字符,应该选择相应的字符集Font。一般应该选择英文字体,如Time New Roman、Arial等,此时特殊字符能正常显示,但是预览可能会出现乱码,不过不影响使用。

6.【Label Options】选项卡

坐标轴选项,常用到的功能是设置标签是否显示,【Labels】下拉列表框中有下面3个选项。

· On:显示所有标签。

· Axis Only:不显示刻度上的标签(即刻度值)但显示坐标轴上的标签(坐标轴说明文字及单位等)。

· Off:不显示所有标签。

【Axis label rotation】可以旋转标签的显示方向,【Tick label offset】可以改变刻度值与刻度线之间的距离。【Label Position Mode】的通常选择Compatibility,表示可以用鼠标拖动调整标签的位置。【Label Options】选项卡如图2-53所示。

图2-53 【Label Options】选项卡

7.【Axis Range】选项卡

此选项卡用以设置坐标轴坐标范围。设置坐标的范围会改变wave被显示的内容,如改变x坐标的范围,则只有x坐标值位于该范围内的部分才能显示。因此经常利用【Axis Range】选项卡来放大显示曲线的某一部分或者缩小曲线以观察曲线的全貌。【Axis Range】选项卡如图2-54所示。

图2-54 【Axis Range】选项卡

有3种调节坐标轴范围的方法。

(1)设置【Autoscale Settings】。Igor自定义了一些自动调节方法,当通过菜单执行【Graph】|【AutoScale Axis】命令或者是按Ctrl+A键时,Igor将自动设置坐标轴范围。一般经常使用Use data limits和Zero isn't special选项,表示默认坐标轴范围将包含整条曲线。

(2)设置【Manual Range Settings】。通过手动指定坐标范围来指定曲线的显示范围,是坐标轴调节最常用的方法。

(3)通过获取当前Graph中wave的最大值和最小值来指定坐标轴范围。这种方法很少用到。

自动调节的【Reverse axis】复选项是一个很实用的功能,选中后将翻转坐标轴。

也可以在Graph中直接改变坐标轴的范围,方法是按鼠标左键拖动,Igor会显示一个矩形框(Marquee),该矩形框包含了wave的某一部分。在该矩形框中右击,在弹出的菜单里选择【Expand】命令,就会放大显示矩形框内的wave部分,可以利用这种方法对wave局部显示放大,按Ctrl+A键将会复原曲线图的默认显示状态,如图2-55所示。

图2-55 利用Marquee放大wave的局部

Marquee是Igor在绘图时一个非常有意思的技术。它有一个右键快捷菜单,叫作Marquee菜单,用户可以在此菜单中添加自定义菜单项,从而可以实现诸如选择数据某一部分并右击选择处理命令的操作。