MATLAB GUI程序设计
上QQ阅读APP看书,第一时间看更新

3.3 二维图形的标注与修饰

在MATLAB中,提供了一些图形函数,专门对所画出的图形进行进一步的修饰,以使其更加美观、更便于应用。图形绘制以后,需要对图形进行标注、说明等修饰性地处理,以增加图的可读性,使之反映出更多的信息。下面将分别进行介绍这些函数。

1.xlabel、ylabel函数与title函数

在MATLAB中,xlabel、ylabel函数用于给xy轴贴上标签;title函数用于给当前轴加上标题。每个axes图形对象可以有一个标题。标题定位于axes的上方正中央。这些函数的用法如下:

xlabel('string'):表示给当前轴对象中的x轴贴标签。

ylabel('string'):表示给当前轴对象中的y轴贴标签。

title('string'):表示在当前坐标轴上方正中央放置字符串string作为标题。

title(...,'PropertyName',PropertyTalue,...):可以在添加或设置标题的同时,设置标题的属性,例如字体、颜色、加粗等。

【例3-8】 xlabel、ylabel函数与title函数使用示例。

程序命令如下:

运行结果如图3-9所示。

图3-9 坐标轴标注函数xlabel和ylabel使用示例

2.axis函数

在MATLAB中,axis函数用于根据需要适当调整坐标轴,该函数调用格式有以下几种:

(1)axis([xmin xmax ymin ymax]):此函数将所画的x轴的大小范围限定在{xmin,xmax}之间,y轴的大小范围限定在{ymin,ymax}之间。

(2)axis(str):将坐标轴的状态设定为字符串参数str所指定的状态。参数str是由一对单引号所包起来的字符串,它表明了将坐标轴调整为哪一种状态。各种常用字符串的含义如表3-2所示。

(3)variable=axis:变量variable保存的是一个向量值,显然这个向量值能够以axis(variable)的形式应用于设定坐标轴的大小范围。

(4)[s1,s2,s3]=axis('state'):将当前所使用的坐标轴的状态存储到向量[s1,s2,s3]中。s1说明是否自动设定坐标轴的范围,取值为'auto'或'manual';s2说明是否关闭坐标轴,取值为'on'或'off';s3说明所使用的坐标轴的种类,取值为'xy'或'ij'。表3-2揭示了axis函数的用法。

表3-2 axis函数的用法

【例3-9】 利用axis函数调整y=cosx的坐标轴范围。

程序命令如下:

运行结果如图3-10所示。

【例3-10】 利用axis函数绘制一个圆。

程序命令如下:

运行结果如图3-11所示。

图3-10 利用函数axis调整y=cosx的坐标轴范围

图3-11 利用函数axis绘制一个圆

3.grid函数与legend函数

grid函数用于给二维或三维图形的坐标面添加网格线。legend函数用于在图形上添加图例。该命令会在有多种图形对象类型(线条图、条形图、饼形图等)的窗口中显示一个图例。对于每一线条,图例会在用户给定的文字标签旁显示线条的线型、标记符号和颜色等。这些函数的用法如下:

grid on:表示在当前的坐标轴添加网格线;

grid off:表示从当前的坐标轴中去掉网格线;

grid:表示转换分隔线的显示与否的状态;

legend('string1','string2',...,pos):表示用指定的文字string在当前坐标轴中对所给数据的每一部分显示一个图例,在指定的位置pos放置这些图例;

legend('off'):清除图例;

legend('hide'):隐藏图例;

legend('show'):显示图例。

【例3-11】 利用grid函数给正弦函数图形的坐标面添加网格线。

程序命令如下:

运行结果如图3-12所示。

【例3-12】 利用grid命令去掉单位圆图形的网格线。

程序命令如下:

运行结果如图3-13所示。

图3-12 给正弦函数图形的坐标面添加网格线

图3-13 去掉单位圆图形的网格线效果图

【例3-13】 使用legend函数在图形中添加图例。

程序命令如下:

运行结果如图3-14所示。

【例3-14】 图形标定函数legend使用示例。

程序命令如下:

运行结果如图3-15所示。

图3-14 图形中添加图例效果图

图3-15 图形标定函数legend使用示例

4.fill函数与hold函数

在MATLAB中,fill函数用于对一个封闭的图形进行填充处理。hold函数用于对当前的绘图叠加。这些函数的调用方法如下:

fill(x,y,d):用d指定颜色来填充建立一个多边形。其中d为颜色映像索引向量或矩阵或颜色字符('r'、'g'、'b'、'c'、'm'、'y'、'w'、'k')。若d是列向量,则length(d)必须等于size(x,2)与size(y,2);若d为行向量,则length(d)必须等于size(x,1)与size(y,1)。

fill(x,y,ColorSpec):用ColorSpec指定的颜色填充由xy定义的多边形,其中ColorSpec可以为颜色字符:'r'、'g'、'b'、'c'、'm'、'y'、'w'、'k'。

fill(x1,y1,c1,x2,y2,c2):一次定义多个要填充的二维区域。

fill(…,'PropertyName',PropertyTalue):允许用户定义组成fill多边形的patch图形对象某个属性名称的属性值。

h=fill(…):返回patch图形对象句柄值的向量,并且每一个patch对象对应一个句柄值。

hold:可以切换当前的绘图叠加模式。

hold on或hold off:表示明确规定当前绘图窗口叠加绘图模式的开关状态。

hold all:不但实现hold on的功能,使得当前绘图窗口的叠加绘图模式打开,而且使新的绘图指令依然循环初始设置的颜色循环序和线型循环序。

【例3-15】 利用fill函数绘制一个七角形。

程序命令如下:

运行结果如图3-16所示。

图3-16 利用fill函数绘制一个七角形

5.text函数与gtext函数

text函数用于在当前轴中创建text对象,text函数是创建text图形句柄的低级函数,可用该函数在图形中指定的位置上显示字符串。gtext函数用于在当前二维图形中用鼠标放置文字,当光标进入图形窗口时,会变成一个大十字,表明系统正等待用户的动作。这些函数的用法如下:

text(x,y,'string'):表示在图形中指定的位置(xy)上显示字符串string。

text(x,y,string,option),主要功能是在图形指定坐标位置(xy)处,写出由string所给出的字符串。坐标(xy)的单位是由选项参数option决定的。如果不给出该选项参数,则(xy)坐标的单位与图中的单位是一致的;如果选项参数取为'sc',则(xy)坐标表示规范化的窗口相对坐标,其变化范围为0~1,即该窗口绘图范围的左下角坐标为(0,0),右上角坐标为(1,1)。

gtext('string'):表示当光标位于一个图形窗口内时,等待用户单击鼠标或按下键盘。若按下鼠标或键盘,则在光标的位置放置给定的文字string。

【例3-16】 利用text函数将文本字符串放置在图形中的任意位置。

程序命令如下:

运行结果如图3-17所示。

【例3-17】 使用gtext函数可以将一个字符串放到图形中,位置由鼠标来确定。

程序命令如下:

运行结果如图3-18所示。

图3-17 在图形中添加文本标注

图3-18 使用函数gtext示例效果图