Matlab 一张图绘制在一个figure里,多张图绘制在一个figure里,和多张图分别绘制在一个figure里(多重子图)讲解及代码

matlab的绘图可以采用直角坐标系、对数坐标系和极坐标等形式。数据点也可用向量或矩阵形式给出,类型可以是实型或复型。

一张图绘制在一个figure里:

以实例和代码讲解:在不同图形窗口下分别绘制出y=sin(x),y=sin(2x),y=sin(3x),y=sin(4x),在[0,2*pi]上的图形

x=(0:0.01:2*pi);%x从0开始取值,步长为0.01,一直取到2pi
y1=sin(x);      %x与y的函数关系
figure(1);      %创建figure1
plot(x,y1);     %绘制x与y的函数关系,并将结果绘制在figure1上
y2=sin(2*x);
figure(2);
plot(x,y2);
y3=sin(3*x);
figure(3);
plot(x,y3);
y4=sin(4*x);
figure(4);
plot(x,y4)

或:

x=(0:0.01:2*pi);
y1=sin(x); 
y2=sin(2*x);
y3=sin(3*x);
y4=sin(4*x);
figure(1);   
plot(x,y1);
figure(2);
plot(x,y2);
figure(3);
plot(x,y3);
y4=sin(4*x);
figure(4);
plot(x,y4)

多张图一起绘制在一个figure里

函数命令plot(x1,y1,x2,y2…)
例:将y=sin(x),y=sin(2x),y=sin(3x),y=sin(4x),在[0,2*pi]上的图形绘制在同一坐标系下:

x=(0:0.01:2*pi);
y1=sin(x); 
y2=sin(2*x);
y3=sin(3*x);
y4=sin(4*x);
plot(x,y1,x,y2,x,y3,x,y4)

或:

x=(0:0.01:2*pi);
plot(x,sin(x),x,sin(2*x),x,sin(3*x),x,sin(4*x))

多图分别绘制在一个figure里(多重子图的绘制)

函数命令:subplot
调用格式:subplot(m,n,p) %(m行,n列,第p张图)也就是说生成共 m行,n列张图,该子图为该m行n列的矩阵的第p张。

如:在同一坐标窗口,不同坐标系下分别绘制出y=sin(x),y=cos(x),y=tan(x),y=cot(x)在[0,2*pi]上的图形。

x=(0:0.01:2*pi);%x从0开始取值,步长为0.01,一直取到2pi
y1=sin(x);      %x与y的函数关系
subplot(2,2,1); %创建一个22列的多重子图,并取第1plot(x,y1);
y2=cos(x);
subplot(2,2,2);
plot(x,y2);
y3=tan(x);
subplot(2,2,3);
plot(x,y3);
y4=cot(x);
subplot(2,2,4);
plot(x,y4)

或:

x=(0:0.01:2*pi);
y1=sin(x);
y2=cos(x);
y3=tan(x);
y4=cot(x);
subplot(2,2,1);
plot(x,y1);
subplot(2,2,2);
plot(x,y2);
subplot(2,2,3);
plot(x,y3);
subplot(2,2,4);
plot(x,y4)

如下:(修改完线宽和颜色之后的)
Matlab 一张图绘制在一个figure里,多张图绘制在一个figure里,和多张图分别绘制在一个figure里(多重子图)讲解及代码_第1张图片

两段不同的代码放在一张图里

hold on指令
两端不同的代码出了两幅图,想要放在一张图里,只需要在输出一张图之后,用上hold on指令,然后再输出第二张图即可。
比如:

x=(0:0.01:2*pi);
y1=sin(x);            
plot(x,y1);  
hold on;   
y2=sin(2*x);
plot(x,y2);
hold on;
y3=sin(3*x);
plot(x,y3);
hold on;
y4=sin(4*x);
plot(x,y4)
set(gca, 'LooseInset', [0,0,0,0]) %去除掉坐标轴旁边的空隙

Matlab 一张图绘制在一个figure里,多张图绘制在一个figure里,和多张图分别绘制在一个figure里(多重子图)讲解及代码_第2张图片

你可能感兴趣的:(#,MATLAB绘图,MATLAB完整学习过程,matlab,开发语言,矩阵)