MATLAB如何创建坐标轴对象:axes函数的使用
坐标轴对象是图形窗口的子对象,每个图形窗口中可以定义多个坐标轴对象,在没有指明坐标轴时,所有的图形图像都是在当前坐标轴中输出。坐标轴对象确定了图形窗口的坐标系统,所有绘图函数都会使用当前坐标轴对象或创建一个新的坐标轴对象,确定其绘图数据点在图形中的位置。
建立坐标轴对象使用axes函数,其调用格式如下。
·Axes:使用默认的属性值来建立一个新的axes对象。
·Axes(…,'PropertyName',PropertyValue):使用指定的属性名称的属性值来建立一个新的axes对象。
·Axes(h):打开一个句柄为h的新的axes窗口。
·h=axes(…):返回坐标轴的句柄属性值向量。
MATLAB为每个坐标轴对象提供了很多属性。除公共属性外,其他常用属性如下。
·Box属性:该属性取值是on或off(默认),决定坐标轴是否带边框。
·Units属性:确定坐标轴窗口使用的长度单位,取值分别为pixel、normalized(默认) inches、centimeters和points。
·Position属性:该属性的取值是一个由4个元素构成的向量,其形式为[n1,n2,n3,n4]。这个向量决定坐标轴矩形区域在图形窗口中的位置,矩形的左下角相对于图形窗口左下角的坐标为(n1,n2),矩形的宽和高分别为n3和n4。它们的单位由Units属性决定。
·GridLineStyle属性:取值可以是'-' 、': ' (默认)、'-.'、'--'或'none',定义了网格线的类型。
·Title属性:该属性的取值是坐标轴标题文字对象的句柄,可以通过该属性对坐标轴标题文字对象进行操作。
·XLabel、YLabel、ZLabel属性:取值分别是x、y、z轴说明文字的句柄,操作与title相同。
·XLim、YLim、ZLim属性:取值都是两个元素的向量,分别定义了三个坐标轴的上下限,默认值为[0,1]。
·XScale、YScale、ZScale属性:取值都是linear?(默认)或log,其定义了个坐标刻度的类型。
·View属性:该属性的取值是两个元素的数值向量,定义视点方向。
当使用高级绘图指令subplot来绘制多个子图时,通过等分的方法为每个子图产生轴对象。此时,可以产生多个子图的轴位框,每个轴位框的大小可以改变,但各个轴位框不能重叠,否则,后绘制的轴位框会把前面创建的轴位框删除。利用axes函数可以在不影响图形窗口上其他坐标轴的前提下建立一个新的坐标轴,从而实现图形窗口的任意分割。
例题 利用坐标轴对象实现图形窗口的任意分割。
在命令窗口输入:
x=0:pi/10:2*pi
y=sin(x);
axes('position',[0.1,0.2,0.2,0.3]);
plot(x,y);
grid on
set(gca,'gridlinestyle', ':');
axes('position',[0.4,0.6,0.5,0.4]);
t=0:pi/100:20*pi;
plot3(sin(t),cos(t),t)
grid
axes('position',[0.45, 0.1,0.3,0.4]);
x=linspace(-2, 2, 20);
y=linspace(-2, 2, 20);
[xx,yy]=meshgrid(x, y);
zz=xx.*exp(-xx.^2-yy.^2);
mesh(xx, yy, zz);
则显示结果如图14-8所示。
图14-8 坐标轴分割图形窗口效果图