-
1 文档
-
2 视频
-
3 PPT
plot是Matlab二维绘图中最简单、最重要、使用最广泛的线性绘图函数。其格式如下:
plot(y)
plot(x,y)
plot(x,y,'参数')
plot(x1,y1, '参数1',x2,y2,'参数2',…)
说明:x,y分别是横坐标、纵坐标向量,x,y长度相同。参数只有y时,作图时横坐标是以1开始的自然数,与y等长。参数选项是一个字符串,决定二维图形的颜色、线型及数据点的图标。plot可以在同一坐标系中画多幅图形,x1,y1确定第一条曲线的坐标值,参数1为第一条曲线的选项参数;x2,y2为第二条曲线的坐标值,参数2为第二条曲线的选项参数;以此类推。
Matlab二维绘图常用的线段颜色、类型和数据点图标参数见表3-1。plot函数中的参数可以是表3-1所示三种类型之一,也可以是线段类型、数据点标识与颜色的组合,例如参数':bx'表示绘制蓝颜色,数据点为“×”并用虚线连接的输出曲线。没有参数时缺省规定一律用“实线”线型,按七种颜色次序进行着色。
表3-1 二维绘图常用的线段颜色、类型和数据点图标
| 线段颜色参数 | 含义 | 线段类型 | 含义 | 数据点标记参数 | 含义 |
| b | 蓝色 | - | 实线 | . | 实点标记 |
| g | 绿色 | : | 点线 | o | 圆圈标记 |
| r | 红色 | -. | 点划线 | x | 叉号型标记 |
| c | 青色 | -- | 虚线 | + | 十字型标记 |
| m | 洋红 | * | 星号 | ||
| y | 黄色 | s | 方形 | ||
| k | 黑色 | d | 钻石 | ||
| w | 白色 | ^ | 向上三角形标记 | ||
| v | 向下三角形标记 | ||||
| < | 向左三角形标记 | ||||
| > | 向右三角形标记 | ||||
| p | 五角星标记 | ||||
| h | 六角星标记 |
[例3-1] 绘制
(
)的二维图形。
>> t=-2*pi:0.05*pi:2*pi;
>> y=sin(t);
>> plot(t,y);
输出图形如图3-1所示,plot(t,y)与plot(y)所做图形的区别只是横坐标值不同。当输入如下语句,输出波形如图3-2所示。
>> plot(t,y,':r<');
图3-1应用plot(t,y)绘制正弦信号波形 图3-2应用plot(t,y,'参数')绘制正弦信号波形
1.坐标轴比例控制
axis函数实现对当前二维图形对象的x轴和y轴进行设置,其格式如下:
axis([xmin xmax ymin ymax])
说明:将图形的x轴范围限定在[xmin xmax]之间,y轴的范围限定在[ymin ymax ]之间。Matlab绘制图形时,按照给定的数据值确定坐标轴参数范围。
2.添加图形的标题
title命令可以实现为当前图形顶部添加标题,其格式如下:
title('字符串')
3. 添加坐标轴标志
xlabel、ylabel函数分别用于添加当前图形的x轴、y轴标注。格式如下:
xlabel('字符串')
ylabel('字符串')
说明:三维图形可以应用zlabel函数添加z轴标注。
4. 文本注释
text函数在二维坐标(x,y)处标注说明文字。格式如下:
text(x,y,'字符串')
5.图例注解
在当前图形中添加图例,可采用legend实现,其格式如下:
legend (字符串1,字符串2,…,参数)
说明:此函数在图中开启一个注解视窗,依据绘图的先后顺序,依次输出字符串对各个图形进行注解说明,参数用来确定注解视窗在图形中的位置。
6.标注中特殊符号的输入或标注文本显示控制
在标注过程中经常会遇到输入特殊符号的问题,如输入π、α、Δ等,Matlab提供了相应的字符转换。如“\pi”将显示输出π,“\alpha”将显示输出α,“\beta”将显示输出
,“\psi”将显示输出
,“\omega”将显示输出
,“\Omega”将显示输出
。
可以对标注文本进行显示控制,包括:\bf:表示黑体字;\it:表示斜体字;\rm:表示标准形式字体;fontname{fontname}:定义标注文字的字体;fontsize{fontsize}:定义标注文字的字号。
例如:为上例图形添加修饰。
>> axis([-7 7 -1.1 1.1]);
>> title('正弦曲线图形');
>> xlabel('x轴(0-2\pi)');
>> ylabel('y轴');
>> text(0,0,'原点','Fontsize',16);
>> legend('\it正弦');
输出图形结果如图3-3所示。

图3-3添加图形修饰的正弦曲线
1. 图形保持/解除
保持/解除当前图形窗口中内容的命令如下:
hold on/off
2.网格控制
在所绘的图形中添加/去掉网格线命令如下:
grid on/ off
3.图形窗口的分割
subplot用于分割图形显示窗口,其格式如下:
subplot(m,n,p)
subplot('position',[leftbottom width height])
说明:将当前窗口分割成m×n个小区域,并指定第p个区域为当前的绘图区域。区域的编号原则是“先上后下,先左后右”,最后一种格式指定作图位置。
4.指定图形窗口
绘图是在默认的figure No.1窗口中绘制,再次绘图后,前次图形将被覆盖,当需要多个图形窗口时,应用figure语句实现。它能产生或指定图形窗口绘图。其格式为:
figure(n)
5.交互式图形命令
从图形上获取数据,可应用ginput命令实现。格式如下:
[x,y]=ginput(n)
说明:参数n是正整数,是通过鼠标从图上获得数据点的个数。x,y存储数据点坐标值。当ginput命令运行后,鼠标光标变成十字交叉形式,移动到待取坐标点,单击鼠标左键即可获得该点坐标,如次重复,直至取n个点。
gtext命令用于实现鼠标在特定处标注说明文字,其格式如下:
gtext ('字符串')
6.图形的填充
fill用于实现图形的填充。格式如下:
fill(x,y,'颜色参数')
说明:在由数据所构成的多边形内,用所指定的颜色填充。如果该多边形不是封闭的,则用初始点和终点的连线将其封闭。
[例3-2]分割窗口输出图形。
clf;clear;
t=-2*pi:0.05*pi:2*pi;
y1=sin(t);
y2=cos(t);
y3=sin(10*t).*sin(t);
subplot(2,2,1),plot(t,y1,'r');hold on ;plot(t,y2);
subplot(2,2,2),plot(t,y2,'b<');grid on;
subplot('position',[0.2,0.05,0.6,0.45]),plot(t,y3);
输出结果如图3-4所示。

图3-4图形窗口的分割例图
1. 绘制火柴杆图
离散序列数据绘图一般使用函数stem,其基本格式为:
stem(x,y)
stem(x,y,'filled')
说明:以向量x的各个元素为x坐标,以y向量的各个对应元素为y坐标,在(x,y)坐标点画一个空心小圆圈,并连接一条线段到x坐标轴,'filled'表示画实心的小圆圈。
2. 双纵坐标绘图命令
当需要绘制横坐标同一比例尺,纵坐标比例尺不同时,应用plotyy实现。格式如下:
plotyy(x1,y1,x2,y2)
plotyy(x1,y1,x2,y2,'function1','function2')
说明:字符串function指定绘图函数生成图形,绘图函数可以是plot、semilogx、semilogy、loglog等,默认为plot。
3. 极坐标图形
极坐标绘图应用polar函数实现,其常用格式如下:
polar(theta,radius)
说明:theta为极角,极角为弧度制,radius为极坐标矢径。
4. 对数坐标图形
Matlab提供的对数、半对数坐标绘图函数;其常用格式如下:
semilogx(x,y)
semilogy(x,y)
loglog(x,y)
说明:semilogx绘制半对数坐标图形,其中横轴取以10为底的对数坐标,纵轴为线性坐标。semilogy其纵轴取以10为底的对数坐标,横轴为线性坐标。loglog绘制坐标轴都取以10为底的对数坐标图形。三个函数对x,y的要求与plot函数相同。
[例3-3] 应用特殊二维图形命令绘图。
clear;
t1=0:0.1:2;
y1=exp(t1);
t2=0:0.01:20;
y21=200*exp(-0.05*t2).*sin(t2);
y22=0.8*exp(-0.5*t2).*sin(10*t2);
theta = 0:0.01:2*pi;
rho = sin(2*theta).*cos(2*theta);
t4=0:0.01:10;
y4=10.*exp(t4);
subplot(2,2,1),stem(t1,y1);
subplot(2,2,2),plotyy(t2,y21,t2,y22);
subplot(2,2,3),polar(theta,rho);
subplot(2,2,4),loglog(t4,y4);grid on
输出结果如图3-5所示。

图3-5应用特殊二维图形命令绘图
5. 饼图
饼图用来表示各元素占总和的百分比,绘饼图函数(pie)基本格式为:
pie(x)
pie(x,explode)
说明:饼图若x为向量,绘制x的每一元素占全部向量元素总和的百分比图形;若x为矩阵,绘制x的每一元素占全部矩阵元素总和的百分比的图形。参数explode是与x同长度的向量,用来决定是否从饼图中分离对应的一部分块,若为零,表示不分离;非零,则分离出来。
[例3-4] 用饼图表示学生成绩分布。
chengji=[15 30 40 10 5];
explode=[1 0 0 0 0];
pie(chengji,explode);
legend('优秀','良好','中等','及格','不及格');
输出结果如图3-6所示。

图3-6饼图
6. 条形图
条形图常用于对统计的数据进行作图。绘条形图函数(bar)其基本格式如下:
bar(x,y)
bar(x,y,width)
说明:x是横坐标向量,省略时默认为是1:m,m是y的向量长度;y是纵坐标,可以是向量或矩阵,当y是向量时,每一元素对应一个竖条,当y是矩阵时,将画出一组竖条。width是竖条宽度,默认0.8,如大于1,则条与条之间将重叠。另外bar3可以完成三维图形绘制。
例如用条形图显示上题学生成绩分布。输出结果如图3-7所示。
chengji=[15 30 40 10 5];
bar(chengji,0.6);

图3-7条形图
7. 直方图
直方图与条形图的形状相似,但直方图显示数据的分布规律,并具有统计功能。绘直方图函数hist基本格式如下:
hist(y,m)
[counts,centers]= hist(y,m)
说明:m是分段的个数,默认等距分10段,输出图形的每个条形线高度是落入每段内元素的计数值。y可是向量或矩阵,如果是矩阵则按列分段。counts是各段上的频率计数值,centers是 x轴上间隔位置向量。例如:
x = randn(1000,3);
hist(x);
[c,d]=hist(x)
输出图形如图3-8所示。

图3-8直方图

