3.3 二维图形的标注与修饰
在MATLAB中,提供了一些图形函数,专门对所画出的图形进行进一步的修饰,以使其更加美观、更便于应用。图形绘制以后,需要对图形进行标注、说明等修饰性地处理,以增加图的可读性,使之反映出更多的信息。下面将分别进行介绍这些函数。
1.xlabel、ylabel函数与title函数
在MATLAB中,xlabel、ylabel函数用于给x、y轴贴上标签;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指定的颜色填充由x与y定义的多边形,其中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'):表示在图形中指定的位置(x,y)上显示字符串string。
text(x,y,string,option),主要功能是在图形指定坐标位置(x,y)处,写出由string所给出的字符串。坐标(x,y)的单位是由选项参数option决定的。如果不给出该选项参数,则(x,y)坐标的单位与图中的单位是一致的;如果选项参数取为'sc',则(x,y)坐标表示规范化的窗口相对坐标,其变化范围为0~1,即该窗口绘图范围的左下角坐标为(0,0),右上角坐标为(1,1)。
gtext('string'):表示当光标位于一个图形窗口内时,等待用户单击鼠标或按下键盘。若按下鼠标或键盘,则在光标的位置放置给定的文字string。
【例3-16】 利用text函数将文本字符串放置在图形中的任意位置。
程序命令如下:
运行结果如图3-17所示。
【例3-17】 使用gtext函数可以将一个字符串放到图形中,位置由鼠标来确定。
程序命令如下:
运行结果如图3-18所示。
图3-17 在图形中添加文本标注
图3-18 使用函数gtext示例效果图