plot函数
plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:
(1) plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制曲线。
(2)plot(x) 当x 为一m×n矩阵时,则可以按列绘制n条曲线,其中每一列上元素的值为纵坐标,元素在列中的序号为横坐标。
(3)plot(x,y1,x,y2) 以公共的x元素为横坐标值,y1,y2分别为纵坐标绘制两条曲线。
在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MATLAB 软件专门提供了这方面的参数选项。如下表:
线型 |
| 标记符 |
| 颜色 |
|
- | 实线(默认) | + |
| r | 红色 |
-- | 双划线 | o |
| g | 绿色 |
: | 虚线 | * |
| b | 蓝色 |
-. | 点划线 | . |
| c | 青绿色 |
|
| × |
| m | 洋红 |
|
| s | 正方形 | y | 黄色 |
|
| d | 菱形 | k | 黑色 |
|
|
|
| w | 白色 |
设置曲线线型、标识符和颜色三项属性时,控制符的顺序不受限制并可以省略或者部分省略。也就是说’-r*’、'-*r'、'*-r'等形式是等效的,都表示使用红色实线连接各个节点,各节点使用’*’标识。
例1.画出一条正弦曲线和一条余弦曲线。
>> x=0:pi/10:2*pi;
>> y1=sin(x);
>> y2=cos(x);
>> plot(x,y1,'-*r',x,y2,':+b')
另外,MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形。
grid on /off 给当前图形标记添加(取消)网络
xlabel(‘string’) 标记横坐标
ylabel(‘string’) 标记纵坐标
title(‘string’) 给图形添加标题
text(x,y,’string’) 在图形的任意位置增加说明性文本信息
gtext(‘string’) 利用鼠标添加说明性文本信息,前提是已经有图,输入该代码之后打开图就提示你确定输入位置了
axis([xmin xmax ymin ymax]) 设置坐标轴的范围,表明x的范围(xmin,xmax),y的范围(ymin,ymax)
例2.给例1的图形添加横纵坐标标题,坐标轴范围,图形标题。
>> x=0:pi/10:2*pi;
>> y1=sin(x);
>> y2=cos(x);
>> plot(x,y1,'-*r',x,y2,':+b'),xlabel('x坐标'),ylabel('y坐标'),title('sin,cos曲线图'),axis([0.5*pi 1.5*pi -1 1])
在一般默认的情况下,MATLAB 每次使用plot 函数绘图,将重新产生一个图形窗口,但有时希望后续的图形能够和前面所绘制的图形进行比较。一般来说有两种方法:
(1) 采用hold on命令,将新产生的图形曲线叠加到已有的图形上,hold off 关闭此功能;
(2) 采用subplot(m,n,k)函数,将图形窗口分隔成m×n个子图,并选择第k 个子图作为当前图形,然后在同一个视图窗口中画出多个小图形。
例3.利用subplot(m,n,k)命令绘制多子图。
>> x=linspace(0,2*pi,60);
>> y=sin(x);
>> subplot(2,2,1)
>> plot(x,y,':.')
>> subplot(2,2,2)
>> plot(x,y,'--')
>> subplot(2,2,3)
>> plot(x,y,':')
>> subplot(2,2,4)
>> plot(x,y,'-.')
例4.利用hold on命令绘图。
>>x=linspace(0,2*pi,60);
>>y=sin(x);
>>z=cos(x);
>>plot(x,y,'*-b'),xlabel('自变量x'),ylabel('因变量'),title('sin(x),cos(x)曲线对比图'),axis([0 2*pi -2 2]);
>>hold on;
>>plot(x,z,'+:r');
>> legend('sin(x)','cos(x)');
>> hold off;
另外:
1.linspace(x1,x2,N)
功能:用于创建向量,意思是以x1为起点,x2为终点,将区间(x1,x2)分为N-1段。
2.legend()
功能:用于给你的图形添加标注的,legend(‘y1’,’y2’,’y3’),y1,y2,y3的顺序应该严格跟你前面所画图的顺序保持一致。
例5:
>> y1=rand(1,10);
>> y2=rand(1,10);
>> y3=rand(1,10);
>> plot(y1,'r+-');
>> hold on;
>> plot(y2,'b*-');
>> hold on;
>> plot(y3,'yo:');
>> legend('y3','y2','y1');
上图中代码里面替换先后顺序之后,所画出的图就与真实不同,如代码中y1用的是红线,而图中显示是黄线。
另外:
clc 清屏
clear 清除变量