二维图形

二维图形的绘制是MATLAB语言图形处理的基础,也是在绝大多数数值计算中广泛应用的图形方式之一(例如根据计算结果绘制曲线等)。

在进行数值计算的过程中,用户可以方便地通过各种MATLAB函数将计算结果图形化,以实现对结果数据的深层次理解。

基本绘图命令

绘制二维图形最常用的函数就是plot函数,对于不同形式的输入,该函数可以实现不同的功能。其常用的调用格式如下。

1.当plot函数仅有一个输入变量时

其常用的调用格式如下。

plot(Y):此时,如果Y为实向量,则以Y的索引坐标作为横坐标,以Y本身各元素作为纵坐标,来绘制图形。

【例如】

y=rand(100,1); % y为随机产生的 1×100 的向量
plot(y)

绘图的结果如图1所示。

图1 函数plot(Y)绘制图形示意图(Y为实向量)

如果Y为复向量,则将以该向量实部作为横坐标,虚部作为纵坐标,来绘制二维图形。这里应当注意的是,当输入变量不止一个时,函数将忽略输入变量的虚部,而直接绘制各变量实部的图形。

【例如】

x=rand(100,1); % 输入实部值
z=x+y.*1i; % 定义复向量z,向量y用上一例的结果
plot(z)

绘制的二维图形如图2所示。

图2 函数plot(Y)绘制图形示意图(Y为复向量)

2.当plot函数有两个输入变量时

其常用的调用格式如下。

plot(X,Y):此时以第1个变量作为横坐标,以第2个变量作为纵坐标。该方式也是实际应用过程中最为常用的。

【例如】

x=0:0.01 * pi:pi;y=sin(x).* cos(x);
plot(x, y)

绘制的二维图形如图3所示。

图3 函数plot(X,Y)绘制图形示意图(双变量输入)

在使用该方式调用函数plot时,应当注意到当两个输入量同为向量时,向量X、Y必须维数相同,而且必须同是行向量或同是列向量。

当变量X和Y是同阶的矩阵时,将按矩阵的行或列进行操作。特别地,变量Y可以包含多个符合要求的向量,这时将在同一幅图中绘出所有图形。

【例如】

x=0:0.01 * pi:pi;
y=[sin(x'),cos(x')];
plot([x',x'],y)

绘制的二维图形如图4所示。若在同一幅图中出现多条曲线,MATLAB会自动把不同曲线绘制成不同的颜色,以进行简单的区分。

图4 函数plot(X,Y)绘制图形示意图(X、Y为矩阵形式)

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所示的带有显示属性设置的二维图形。

图5 函数plot(X,Y,s)绘制图形示意图
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坐标为对数坐标的二维图形。

图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 所示的极坐标下的二维图形。

图7 极坐标下的二维图形示意图
x=0:0.01 * pi:4 * pi;
y=sin(x/2)+x;
polar(x, y,'-')

在进行数值比较的过程中经常会遇到双纵坐标(即双y轴坐标系)显示的要求,为了解决该问题,MATLAB语言提供了双纵坐标绘制二维图形的函数plotyy。

该函数的调用格式主要有以下几种。

其中,第2种调用格式是以fun方式绘制图形,fun可以为plot、semilogx、semilogy或loglog等;而第3种调用格式则是以fun1绘制(X1,Y1),以fun2绘制(X2,Y2)。

应当注意的是,在双坐标绘制图形的调用过程中,不能够像前面介绍的plot函数那样对曲线属性进行设置,如果要对图中曲线的线型、颜色及数据点的标识加以控制,应使用后面介绍的句柄图形控制来完成。

【例4】绘制如图8所示的双纵坐标二维图形。

图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所示的矢量图。

图9 条形图示意图
x=1:10;
y=rand(10,1);
bar(x, y) %如图9所示
图10 矢量图示意图
x=0:0.1 * pi:2 * pi;
y=x.*sin(x);
feather(x, y) %如图10所示

【例6】函数图形绘制,如图11所示。

图11 函数图形绘制示意图
lim=[0,2 * pi,-1,1];
fplot('[sin(x),cos(x)]',lim) %见图11所示

【例7】绘制如图12所示的饼状图形。

图12 二维饼状图示意图
x=[2,4,6,8];
pie(x,{'math','english','chinese','music'}) %见图12所示

contour函数也是一个极为重要的二维图形函数,该函数用以绘制等高线图。其常用的调用格式如下。

其中,输入变量Z必须为一数值矩阵,是该函数必须输入的变量;变量N/V为可选输入变量,参数N为所绘图形等高线的条数,即按指定数目绘制等高线;亦可选择输入参数V(这里V为一数值向量),等高线条数将为向量V的长度,并且等高线的值为对应向量的元素值。如果没有选择,系统将自动为矩阵Z绘制等高线图,其等高线条数为预设值。

【例8】绘制如图13所示的等高线图。;

图13 等高线图示意图
A=rosser; % rosser 矩阵
v=[-1000,-500,-100,0,100,500,1000]; % 设置等高线的分布
contour(A,v)

此外,还有函数contourf用以绘制填充的等高线图,其常用的调用格式与函数contour完全一致,这里不再赘述。

文件下载(已下载 1533 次)

发布时间:2017/11/30 13:40:00  阅读次数:4213

2006 - 2024,推荐分辨率1024*768以上,推荐浏览器Chrome、Edge等现代浏览器,截止2021年12月5日的访问次数:1872万9823 站长邮箱

沪ICP备18037240号-1

沪公网安备 31011002002865号