二维图形
二维图形的绘制是MATLAB语言图形处理的基础,也是在绝大多数数值计算中广泛应用的图形方式之一(例如根据计算结果绘制曲线等)。
在进行数值计算的过程中,用户可以方便地通过各种MATLAB函数将计算结果图形化,以实现对结果数据的深层次理解。
基本绘图命令
绘制二维图形最常用的函数就是plot函数,对于不同形式的输入,该函数可以实现不同的功能。其常用的调用格式如下。
- plot(Y):若Y为向量,则绘制的图形以向量索引为横坐标值,以向量元素值为纵坐标值。若Y为矩阵,则绘制Y的列向量对其坐标索引的图形。若Y为一复向量(矩阵),则plot(Y)相当于plot(real(Y),imag(Y))。而在其他形式的函数调用中,元素的虚部将被忽略。
- plot(X,Y):一般来说是绘制向量Y对向量X的图形。如果X为一矩阵,则MATLAB绘出矩阵行向量或列向量对向量Y的图形,条件向量的元素个数能够和矩阵的某个维数相等。若矩阵是个方阵,则默认情况下将绘制矩阵的列向量图形。
- plot(X,Y,s):想绘制不同的线型、标识、颜色等的图形时,可调用此形式。其中s为一字符,可以代表不同线型、点标、颜色。可用的字符及意义见表1。
1.当plot函数仅有一个输入变量时
其常用的调用格式如下。
plot(Y):此时,如果Y为实向量,则以Y的索引坐标作为横坐标,以Y本身各元素作为纵坐标,来绘制图形。
【例如】
y=rand(100,1); % y为随机产生的 1×100 的向量 plot(y)
绘图的结果如图1所示。
如果Y为复向量,则将以该向量实部作为横坐标,虚部作为纵坐标,来绘制二维图形。这里应当注意的是,当输入变量不止一个时,函数将忽略输入变量的虚部,而直接绘制各变量实部的图形。
【例如】
x=rand(100,1); % 输入实部值 z=x+y.*1i; % 定义复向量z,向量y用上一例的结果 plot(z)
绘制的二维图形如图2所示。
2.当plot函数有两个输入变量时
其常用的调用格式如下。
plot(X,Y):此时以第1个变量作为横坐标,以第2个变量作为纵坐标。该方式也是实际应用过程中最为常用的。
【例如】
x=0:0.01 * pi:pi;y=sin(x).* cos(x); plot(x, y)
绘制的二维图形如图3所示。
在使用该方式调用函数plot时,应当注意到当两个输入量同为向量时,向量X、Y必须维数相同,而且必须同是行向量或同是列向量。
当变量X和Y是同阶的矩阵时,将按矩阵的行或列进行操作。特别地,变量Y可以包含多个符合要求的向量,这时将在同一幅图中绘出所有图形。
【例如】
x=0:0.01 * pi:pi; y=[sin(x'),cos(x')]; plot([x',x'],y)
绘制的二维图形如图4所示。若在同一幅图中出现多条曲线,MATLAB会自动把不同曲线绘制成不同的颜色,以进行简单的区分。
3.当plot函数有3个输入变量时
其常用的调用格式如下。
plot(X,Y,s):此时第3个输入变量为图形显示属性的设置选项。MATLAB语言中提供的对曲线的线型、颜色以及标识的图形属性设置选项如表4.1所示。
表1 MATLAB 语言中的图形属性设置选项
选项 |
说明 |
选项 |
说明 |
- |
实线 |
. |
点 |
: |
点线 |
o |
圆 |
-. |
点画线 |
x |
x 符号 |
-- |
虚线 |
+ |
+号 |
y |
黄色 |
* |
星号 |
m |
品红色 |
s |
方形 |
c |
蓝绿色 |
d |
菱形 |
r |
红色 |
v |
下三角 |
g |
绿色 |
^ |
上三角 |
b |
蓝色 |
< |
左三角 |
w |
白色 |
> |
右三角 |
k |
黑色 |
p |
正五边形 |
应用上述符号的不同组合可以为图形设置不同的线型、颜色及标识。在调用时,选项应置于单引号内以表明为图形设置属性,当多于一个选项时,各选项直接相连,不需要任何的分隔符。
【例1】绘制如图5所示的带有显示属性设置的二维图形。
x=1:0.1 * pi:2 * pi; y=sin(x); z=cos(x); plot(x, y,'--k',x,z,'-.rd')
由上例不难看到plot函数也允许多组参量的输入,MATLAB会依据不同的设置在同一幅图中绘出不同的曲线。
特殊的二维图形函数
MATLAB语言提供了一系列特殊的二维图形函数,其中包括特殊坐标系的二维图形函数以及特殊二维图形函数。
1.特殊坐标系的二维图形函数
这里所谓的特殊坐标系是区别于均匀直角单y轴坐标系而言的,具体来说就是对数坐标系、极坐标系及双y轴坐标系等。
MATLAB语言提供了绘制不同形式的对数坐标曲线的功能,具体实现该功能的函数为semilogx、semilogy和loglog,这3个函数的变量输入与plot函数完全类似,只是前两个函数分别以x坐标和y坐标为对数坐标,而loglog函数则是双对数坐标。
【例2】绘制如图6所示的x坐标为对数坐标的二维图形。
x=1:0.1 * pi:2 * pi; y=sin(x); semilogx(x, y,'- * ')
对于极坐标系,MATLAB语言也提供了相应的函数加以处理,即函数polar,该函数的调用格式如下以上各函数均有其自身的不同用法,这里只以示例介绍其中几种函数的简单用法,详细资料可以通过帮助获得。
polar(theta,rho)或polar(theta,rho,s):其中,输入变量theta为弧度表示的角度向量,rho是相应的幅向量,s为图形属性设置选项。
【例3】绘制如图7 所示的极坐标下的二维图形。
x=0:0.01 * pi:4 * pi; y=sin(x/2)+x; polar(x, y,'-')
在进行数值比较的过程中经常会遇到双纵坐标(即双y轴坐标系)显示的要求,为了解决该问题,MATLAB语言提供了双纵坐标绘制二维图形的函数plotyy。
该函数的调用格式主要有以下几种。
- plotyy(X1,Y1,X2,Y2)
- plotyy(X1,Y1,X2,Y2,fun)
- plotyy(X1,Y1,X2,Y2,fun1,fun2)
其中,第2种调用格式是以fun方式绘制图形,fun可以为plot、semilogx、semilogy或loglog等;而第3种调用格式则是以fun1绘制(X1,Y1),以fun2绘制(X2,Y2)。
应当注意的是,在双坐标绘制图形的调用过程中,不能够像前面介绍的plot函数那样对曲线属性进行设置,如果要对图中曲线的线型、颜色及数据点的标识加以控制,应使用后面介绍的句柄图形控制来完成。
【例4】绘制如图8所示的双纵坐标二维图形。
x=0:0.1 * pi:2 * pi'; y=sin(x); z=exp(x); plotyy(x, y, x, z, 'plot', 'semilogy')
2.二维特殊图形函数
前面所介绍的图形均为简单的线性图形,这里将介绍MATLAB语言所提供的各种特殊的二维图形的绘制方法。特殊二维图形函数如表2所示。
表2 MATLAB 语言中的特殊二维图形函数
函数名 |
说明 |
函数名 |
说明 |
area |
填充绘图 |
fplot |
函数图绘制 |
bar |
条形图 |
hist |
直方图 |
barh |
水平条形图 |
pareto |
Pareto 图 |
comet |
彗星图 |
pie |
柄状图 |
errorbar |
误差带图 |
plotmatrix |
分散矩阵绘制 |
ezplot |
简单绘制函数图 |
ribbon |
三维图的二维条状显示 |
ezpolar |
简单绘制极坐标图 |
scatter |
散射图 |
feather |
矢量图 |
stem |
离散序列柄状图 |
fill |
多边形填充 |
stairs |
阶梯图 |
【例5】绘制如图9所示的条形图和如图10所示的矢量图。
x=1:10; y=rand(10,1); bar(x, y) %如图9所示
x=0:0.1 * pi:2 * pi; y=x.*sin(x); feather(x, y) %如图10所示
【例6】函数图形绘制,如图11所示。
lim=[0,2 * pi,-1,1]; fplot('[sin(x),cos(x)]',lim) %见图11所示
【例7】绘制如图12所示的饼状图形。
x=[2,4,6,8]; pie(x,{'math','english','chinese','music'}) %见图12所示
contour函数也是一个极为重要的二维图形函数,该函数用以绘制等高线图。其常用的调用格式如下。
- contour(Z,N/V)
- contour(X,Y,Z,N/V)
其中,输入变量Z必须为一数值矩阵,是该函数必须输入的变量;变量N/V为可选输入变量,参数N为所绘图形等高线的条数,即按指定数目绘制等高线;亦可选择输入参数V(这里V为一数值向量),等高线条数将为向量V的长度,并且等高线的值为对应向量的元素值。如果没有选择,系统将自动为矩阵Z绘制等高线图,其等高线条数为预设值。
【例8】绘制如图13所示的等高线图。;
A=rosser; % rosser 矩阵 v=[-1000,-500,-100,0,100,500,1000]; % 设置等高线的分布 contour(A,v)
此外,还有函数contourf用以绘制填充的等高线图,其常用的调用格式与函数contour完全一致,这里不再赘述。
文件下载(已下载 1535 次)发布时间:2017/11/30 下午1:40:00 阅读次数:5205