Matlab教程2_ 绘图 _ 二维(2)

(作者:lcc)

二维曲线绘图的基本操作

n  plot指令的基本调用格式

(1)plot(x)

n  x为向量时,以该元素的下标为横坐标、元素值为纵坐标绘出曲线

n  x为实数二维数组时,则按列绘制每列元素值相对其下标的曲线,曲线数等于x数组的列数。

n  x为复数二维数组时,则按列分别以数组的实部和虚部为横、纵坐标绘制多条曲线

(2)plot(x, y)

n  x、y为同维数组时,绘制以x、y元素为横纵坐标的曲线

n  x为向量,y为二维数组、且其列数或行数等于x的元素数时,绘制多条不同颜色的曲线

n  x为二维数组,y为向量时,情况与上相同,只是y仍为纵坐标。

(3)plot(x1, y1, x2, y2, …)

n  绘制以x1为横坐标、y1为纵坐标的曲线1,以x2为横坐标、y2为纵坐标的曲线2,等等。

n  其中x为横坐标,y为纵坐标,绘制y=f(x)函数曲线。

 

例3.1使用直角坐标系在[0,2π]区间内,绘制曲线

x = 0:pi/100:2*pi;

y = 2*exp(-0.5*x).*sin(2*pi*x);

plot(x,y)

 Matlab教程2_ 绘图 _ 二维(2)

例3.2 使用参数方程绘制曲线绘制曲线

t = -pi:pi/100:pi;

x = t.*cos(3*t);

y = t.*sin(t).^2;

plot(x,y)

 Matlab教程2_ 绘图 _ 二维(2)

例3.3  绘制复杂曲线

用图形表示连续调制波形及其包络线。

t=(0:pi/100:pi)’;    %长度为101的时间采样列向量

y1=sin(t)*[1,-1];    %包络线函数值,是(101x2)的矩阵

y2=sin(t).*sin(9*t); %长度为101的调制波列向量

t3=pi*(0:9)/9;                                                

y3=sin(t3).*sin(9*t3);

plot(t,y1,'r:',t,y2,'b',t3,y3,'bo')      

axis([0,pi,-1,1])    %控制轴的范围

 Matlab教程2_ 绘图 _ 二维(2)

多次叠绘、双纵坐标和多子图

n  多次叠绘

n  多次调用plot命令在一幅图上绘制多条曲线,需要hold指令的配合。

n  hold on   保持当前坐标轴和图形,并可以接受下一次绘制。

n  hold off   取消当前坐标轴和图形保持,这种状态下,调用plot绘制完全新的图形,不保留以前的坐标格式、曲线。 

 

例 3.5  重绘曲线

重绘波形及其包络线。

t=(0:pi/100:pi)'; %长度为101的时间采样列向量

y1=sin(t)*[1,-1]; %包络线函数值,是(101x2)的矩阵

y2=sin(t).*sin(9*t); %长度为101的调制波列向量

t3=pi*(0:9)/9;             

y3=sin(t3).*sin(9*t3);

plot(t,y1,'r:’)

hold on

plot(t,y2,'b‘)

plot(t3,y3,'bo')    

axis([0,pi,-1,1])    %控制轴的范围

hold off

 Matlab教程2_ 绘图 _ 二维(2)

例3.6 利用hold绘制离散信号的波形。

t=2*pi*(0:20)/20;

y=cos(t).*exp(-0.4*t);

stem(t,y,'g');

hold on;

stairs(t,y,'r');

hold off 

 Matlab教程2_ 绘图 _ 二维(2)

双纵坐标:plotyy指令

n  plotyy指令调用格式:

 plotyy(x1, y1, x2, y2)

 x1-y1曲线y轴在左, x2-y2曲线y轴在右。

例3.7:

x = 0:0.01:20;

y1 = 200*exp(-0.05*x).*sin(x);

y2 = 0.8*exp(-0.5*x).*sin(10*x);

plotyy(x,y1,x,y2);

 Matlab教程2_ 绘图 _ 二维(2)

多子图

n  MATLAB允许在同一图形窗口布置几幅独立的子图。具体指令:

n  subplot(m, n, k)   

使(mxn)幅子图中第k个子图成为当前图

n  subplot(‘postion’, [left, bottom, width, height]) 

在指定的位置上开辟子图,并成为当前图

说明:

Ø  subplot(m, n, k)的含义:图形窗口包含(mxn)个子图,k为要指定的当前子图的编号。其编号原则: 左上方为第1子图,然后向右向下依次排序。该指令按缺省值分割子图区域。

Ø  subplot(‘postion’, [left, bottom, width, height])用于手工指定子图位置,指定位置的四元组采用归一化的标称单位,即认为整个图形窗口绘图区域的高、宽的取值范围都是[0, 1],而左下角为(0,0)坐标。

Ø  产生的子图彼此独立。所有的绘图指令均可以在子图中使用。

 

例3.8 演示subplot指令对图形窗的分割

t=(pi*(0:1000)/1000)';

y1=sin(t);y2=sin(10*t);y12=sin(t).*sin(10*t);

subplot(2,2,1),plot(t,y1);axis([0,pi,-1,1])

subplot(2,2,2),plot(t,y2);axis([0,pi,-1,1])

subplot('position',[0.2,0.05,0.6,0.45])

plot(t,y12,'b-',t,[y1,-y1],'r:');

 Matlab教程2_ 绘图 _ 二维(2)

绘制图形的辅助操作

曲线线形控制符

符号

-

:

-.

--

含义

实线

虚线

点划线

双划线

曲线颜色控制符

符号

b

g

r

c

m

y

k

w

含义

绿

品红

曲线的色彩、线型和 数据点形


Ø  曲线的线形控制符、颜色控制符、数据点形控制符可以组合使用

Ø  其先后次序不影响绘图结果

Ø  也可以单独使用。

 

例3.9  绘制图形的辅助操作

Specify Line properties

t=(0:15)*2*pi/15;

y=sin(t);

subplot(3,2,1), plot(t, y); title('Lins style is default')

subplot(3,2,2), plot(t, y, 'o'); title('Lins style is o')

subplot(3,2,3), plot(t, y, 'k:'); title('Lins style is k:')

subplot(3,2,4), plot(t, y, 'k:*'); title('Lins style is k:*')

subplot(3,2,5), plot(t, y, 'm-d'); title('Lins style is m-d')

subplot(3,2,6), plot(t, y, 'r-p'); title('Lins style is r-p')

Matlab教程2_ 绘图 _ 二维(2)

坐标、刻度和分格线控制

Matlab教程2_ 绘图 _ 二维(2)

例 3.10 坐标控制

绘制椭圆,长轴为3.25,短轴为1.15

t=0:2*pi/99:2*pi;

x=1.15*cos(t); y=3.25*sin(t);    % y为长轴,x为短轴

subplot(2,2,1); plot(x, y);

axis off

title('axis off');

subplot(2,2,2); plot(x,y);

axis image;

title('axis image');

subplot(2,2,3); plot(x,y);

axis equal;

title('axis Equal');

subplot(2,2,4); plot(x,y);

axis square;

title('axis Square');

Matlab教程2_ 绘图 _ 二维(2)

刻度、分格线和坐标框

n  分格线与grid指令

n  grid on      画出分格线

n  grid off     不画分格线

n  MATLAB的缺省设置是不画分格线;分格线的疏密取决于坐标刻度(改变坐标刻度,可改变分格线的疏密)。

n  坐标框

n  box on       控制加边框线

n  box off      控制不加边框线

n  刻度设置

n  指令及格式:

set(gca, ‘xtick’, xs, ‘ytick’, ys)

n  xs、ys可以使任何合法的实数向量,用于分别设置x、y轴的刻度。

 

例3.11绘制y=1-exp(-0.3*t).*cos(0.7*t)

t=6*pi*(0:100)/100;

y=1-exp(-0.3*t).*cos(0.7*t);

tt=t(find(abs(y-1)>0.05));

ts=max(tt);                         

plot(t,y,'r-');

grid on;           

axis([0,6*pi,0.6,max(y)]);                                             

title('y=1-exp(-\alpha*t)*cos(\omega*t)');                     

hold on;

plot(ts,0.95,'bo');

hold off;          

set(gca,'xtick',[2*pi,4*pi,6*pi],'ytick',[0.95,1,1.05,max(y)]);

grid on;

Matlab教程2_ 绘图 _ 二维(2)

你可能感兴趣的:(matlab,绘图)