前面介绍了,用axes函数可以在同一图形窗口中创建多个坐标系。这里介绍另一种方法创建多个坐标系,即使用subplot函数创建。二者不同的是,用subplot函数创建的坐标系有等间隔矩阵排列的特点。
该函数的语法格式为:
subplot(m,n,p) 将当前图形窗口划分为m×n网格,并在p指定的位置创建坐标。MATLAB按行号对子图位置进行编号。第一个子图是第一行的第一列,第二个子图是第一行的第二列,依此类推。如果指定的位置已存在坐标,则此命令会将该坐标设为当前坐标。
subplot(m,n,p,'replace') 删除位置p处的现有坐标区并创建新坐标。
subplot(m,n,p,'align') 创建新坐标,以便对齐图框。此选项为默认行为。
subplot(m,n,p,ax) 将现有坐标ax转换为同一图形窗口中的子图。
subplot('Position',pos) 在pos指定的自定义位置创建坐标。使用此选项可定位未与网格位置对齐的子图。指定pos作为[left bottom width height]形式的四元素向量。如果新坐标与现有坐标重叠,新坐标区将替换现有坐标。
subplot(___,Name,Value) 使用一个或多个名称-值对组参数修改坐标属性。
ax=subplot(___) 返回创建的Axes对象。以后可以使用ax修改坐标。
subplot(ax) 将ax指定的坐标设为父图形窗口的当前坐标。如果父图形窗口尚不是当前图形窗口,此选项不会使父图窗成为当前图形窗口。
下面用subplot函数绘子图。先分别绘正弦曲线和余弦曲线,放在上方,然后在下方合并绘制正弦曲线和余弦曲线。
code.matlab
>> subplot(2,2,1);
>> x=linspace(-pi,pi);
>> y1=sin(x);
>> plot(x,y1,'r');
>> title('子图1: 正弦曲线')
>> subplot(2,2,2);
>> y2=cos(x);
>> plot(x,y2,'b');
>> title('子图2: 余弦曲线')
>> subplot(2,2,[3,4]);
>> plot(x,y1,'r',x,y2,'b');
>> title('子图3和4: 正弦余弦曲线')
生成图2-31。
\[\]
图2-31 子图绘制