MATLAB subplot():绘制子图(附带实例)
在一个图窗中,利用 subplot() 函数可以同时绘制多个子图,该函数的调用格式如下:
【实例 1】创建一个包含三个子图的图窗。在图窗的上半部分创建两个子图,在图窗的下半部分创建第三个子图。在编辑器中编写以下程序并运行。

图 1 创建的包含三个子图的图窗
【实例 2】用函数画一个子图。在编辑器中编写以下程序并运行。

图 2 绘制的子图
subplot(m,n,p) % 在当前图窗中创建 m×n 幅子图 % 子图按从左到右、从上到下的顺序编号 % 若 p 为向量,则以向量表示的位置建立当前子图的坐标平面 subplot(m,n,p,'replace') % 删除位置 p 处的现有坐标区并创建新坐标区 subplot(m,n,p,'align') % 创建新坐标区,以便对齐子图框,为默认行为 subplot(m,n,p,ax) % 将现有坐标区 ax 转换为同一图窗中的子图 subplot(h) % 指定当前子图坐标平面的句柄 h,h 为按 m、n、p 排列的整数 % 例如 h=232,表示第 2 个子图坐标平面的句柄 subplot('Position', pos) % 在 pos 指定的位置创建新坐标区 h=subplot(...) % 创建当前子图坐标平面时,同时返回其句柄其中,pos 为 [left bottom width height] 形式的四元素向量,它把当前图窗看作 [0 0 1 1] 的平面,所以 left、bottom、width、height 分别在 (0,0)、(1,0) 的范围内取值,分别表示所创建当前子图坐标平面距离图窗左边、底边的长度,以及所建子图坐标平面的宽度和高度。
注意,函数 subplot() 只用来创建子图坐标平面,在该坐标平面内绘制子图,仍然需要使用 plot() 函数或其他绘图函数。
【实例 1】创建一个包含三个子图的图窗。在图窗的上半部分创建两个子图,在图窗的下半部分创建第三个子图。在编辑器中编写以下程序并运行。
subplot(2,2,1); x=linspace(-3.8,3.8); y_cos=cos(x); plot(x,y_cos); title('Subplot 1: Cosine') subplot(2,2,2); y_poly=1-x.^2./2+x.^4./24; plot(x,y_poly,'g'); title('Subplot 2: Polynomial') subplot(2,2,[3,4]); plot(x,y_cos,'b',x,y_poly,'g'); title('Subplot 3&4: Cosine & Polynomial')运行程序后,输出如下图所示的图形:

图 1 创建的包含三个子图的图窗
【实例 2】用函数画一个子图。在编辑器中编写以下程序并运行。
x=linspace(0,2*pi,100); % x 轴从 0~2π 取 100 点 subplot(2,2,1) plot(x,sin(x)) % 在视窗的第一行第一列画 sin(x) xlabel('x') % x 轴加注解 x ylabel('y') % y 轴加注解 y title('sin(x)') % 加标题 sin(x) subplot(2,2,2) plot(x,cos(x)) xlabel('x'); ylabel('y'); title('cos(x)') subplot(2,2,3) plot(x,exp(x)) xlabel('x'); ylabel('y'); title('exp(x)') subplot(2,2,4) plot(x,exp(-x)) xlabel('x'); ylabel('y'); title('exp(-x)')运行程序后,输出如下图所示的图形。

图 2 绘制的子图