当前位置:首页 > MATLAB 高级二维维绘图讲解
图2-7 坐标轴调整之前的图形 图2-8 坐标轴调整之后的图形
2.2.1.2 调整坐标轴的状态
MATLAB在绘图功能中可以根据视图需求,适当调整坐标轴状态,该函数的调用格式是:
axis(str)
此函数的功能是将坐标轴的状态设定为字符串参数str所指定的状态。
参数str是由一对单引号(` `)所包起来的字符串(也可以省略这对单引号),它表明了将坐标轴调整为哪一种状态。各种常用字符串的含义如表2-3所示。
表2-3 Axis各种常用字符串
命令形式 axis([xmin xmax ymin ymax]) axis auto或者axis(`auto`) axis xy或者axis(`xy`) axis ij 或者axis(`ij`) axis square或者axis(`square`) axis eaual或者axis(`equal`) axis off或者axis(`off`) axis on或者axis(`on`) 命令功能 按照用户给出的X轴和Y轴的最大、最小值选择坐标系 自动设置坐标系:xmin=min(x):xmax=max(x); ymin=min(y);ymax=max(y); 使用笛卡尔坐标系 使用matrix坐标系。即:坐标原点在左上方,x坐标从左向右增大,y坐标从上向下增大 将当前图形设置为正方形图形 将x,y坐标轴的单位刻度设置为相等 关闭网络线、xy坐标的用label命令所加的注释,但保留用图形中text命令和gtext命令所添加的文本说明 打开网络线、xy坐标的用label命令所加的注释 axis normal或者axis (`normal`) 关闭axis equal和axis square命令 只要不产生矛盾的含义,一些不同的参数str可以同时起作用,即在语句axis(str)的参数中,可以使用多个修饰字符串,如axis(`auto`,`on`,`ij`)。
例2-7 坐标轴设置函数axis使用实例。利用axis函数为y=sinx绘制笛卡尔坐标系。 解:在命令窗口输入下面的代码
>>x=0:pi/100:2*pi; >>y=sin(x);
>>line([0,2*pi],[0,0]) >>hold on; >>plot(x,y)
>>axis([0 2*pi -1 1]) >>axis(`xy`)
或 axis xy
输入以上命令设置后,运行程序,可以得出图2-9所示的结果图形。
图2-9 笛卡尔坐标系下的正弦曲线 图2-10屏幕坐标系下的正弦曲线
笛卡尔坐标系的图形,其坐标系的X轴是从左到右,Y轴是由下向上。而有时我们需要绘制Y轴是由上向下的图形,即符合屏幕坐标系的图形,这时可由下述命令来设置坐标轴的方向:
>>axis(`ij`) 或 axis ij
此时所绘制出的正弦曲线图形如图2-10所示。 例2-8 图形调整函数axis使用实例。利用函数axis绘制一个半径r=1的单位圆。 解:在命令窗口直接输入以下程序代码,
>>alpha=0:0.01:2*pi; >>x=sin(alpha); >>y=cos(alpha); >>plot(x,y)
>>axis([-1.5 1.5 -1.5 1.5]) >>grid on
>>axis square
执行以上程序后,可以得到如图2-11所示的图形。
仔细观察图2-11可知,这个单位圆有点像一个椭圆,这主要是由于计算机屏幕上X方向和Y方向的单位长度不一致造成的。但下述命令将可以消除这种不一致,从而可以绘制出一个真正的单位圆(如图2-12所示)。
axis(`square`) 或 axis square
图2-11 未进行刻度调整的单位圆 图2-12 用axis(`square`)调整刻度后的单位圆
下述的命令也可以消除这种不一致,从而可以绘制出一个标准的单位圆(如图2-11所示)。
axis(`equal`) 或 axis equal
注意,axis(`square`)的含义是将X坐标轴长度与Y坐标轴长度调整为正方形,而axis(`equal`)的含义是将X坐标轴和Y坐标轴的单位刻度大小调整一样长短。
若用下述命令却可以将图形恢复显示为刻度调整前的形式(图2-11)。
axis(`normal`) 或 axis normal
用下述命令可以关闭或打开图形的坐标轴。
axis(`off`) 或 axis off axis(`on`) 或 axis on
图2-14所示为用axis(`off`)命令将图2-13所示图形去掉坐标轴后的单位圆。
图2-13 用axis(`equal`)调整刻度后的单位圆 图2-14用axis(`off`)去掉坐标轴后的单位圆
2.2.1.3 保存坐标轴的范围
MATLAB中有一种可以将坐标轴的范围值[xmin xmax ymin ymax]存储到向量variable中的功能,该功能实现的格式是:
variable=axis
变量variable保存的是一个向量值,显然这个向量值能够以axis(variable)的形式应用于设定坐标轴的大小范围。
例2-9 对于由例2-8程序所绘制出的图2-11,检查其坐标轴的范围。 解:在命令窗口输入下面的代码,可以实现检查坐标轴的范围
>>AxisRange=axis AxisRange=
-1.5000 1.5000 -0.6363 0.6363
2.2.1.4 保存坐标轴的状态
MATLAB中可以将当前所使用的坐标轴的状态存储到向量中,这种功能的格式是 [s1,s2.s3]=axis(`state`),该功能是将当前所使用的坐标轴的状态存储到向量[s1,s2,s3]中。
在使用该功能时,需要说明以下几点:
(1)s1说明是否自动设定坐标轴的范围,取值为`auto`或`manual`; (2)s2说明是否关闭坐标轴,取值为`on`或`off`;
(3)s3说明所使用的坐标轴的种类,取值为`xy`或`ij`。 例2-10 对于例2-8程序所绘制的图2-11,检查其坐标轴的当前状态。 解:在命令窗口输入以下的代码:
>> [s1,s2,s3]=axis(`state`) s1= manual s2= on
s3= xy
2.2.2画出或取消网格线
在MATLAB二维图形中,有无网格线对于图形的显示效果有很大的影响,我们利用grid函数就可以轻松实现对二维图形中网格线的显示进行控制。grid函数使用的基本格式为:
(1)grid on
功能是在所画出的图形中添加网格线。 (2)grid off
功能是将已有的网格线的图形去掉其网格线。 例2-11 网格线控制函数grid使用实例。利用grid命令去掉单位圆图形的网格线。 解:在命令窗口直接输入以下程序代码,
>>alpha=0:0.01:2*pi; >>x=sin(alpha); >>y=cos(alpha); >>plot(x,y)
>>axis([-1.5 1.5 -1.5 1.5]) >>grid on
>>axis square
运行程序后,可以得到如图2-16所示的图形:
图2-15 带有网格线的图形 图2-16 不带有网格线的图形
2.2.3设置坐标轴的名称
添加并设置坐标轴标签的函数是xlabel和ylabel,格式为: (1)xlabel('string')
设置横轴标签为字符串值。
(2)xlabel(...,'PropertyName',PropertyValue,...)
在设置横轴标签值的同时设置其相关属性,比如文字颜色、旋转角度、字体、加粗等。 通过插入菜单的X Label、Y Label项可以设置图形的横轴和纵轴的标签,默认情况下,横轴标签被安排在横轴下方中间位置并且水平排列,纵轴标签被安排在纵轴左方位置并且垂直排列。
坐标轴标签和标题类似,虽然有属于文本,但又不同于普通的文本标注,当用户平移、
共分享92篇相关文档