绘制特殊的二维图形函数

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

№1.2绘制特殊的二维图形函数

1. 特殊坐标系的二维图形函数

①半对数坐标图

semilogx函数:对x轴按对数比例绘数据图,其他与plot函数类似。例如:

y=0:0.1:1;

semilogx(y,'+');

%令x轴为以10为底的对数比例(即坐标轴按照相等的指数变化来增加,每个单位为101)、y轴为线性比例绘数据图,当y为实数向量时,则绘制y的元素与它们的指数之间的数据图。

再如

x=1:0.1*pi:2*pi;

y=sin(x);

semilogx(x,y,'*');

semilogy函数:它与semilogx函数正好相反,它是对y轴按对数比例绘数据图。例如:

x=0:0.1:10;

semilogy(x,10.^x);

在很多工程问题中,通过数据进行对数转换可以更清晰地看出数据的某些特征,对数坐标系中描绘数据点曲线可以直观地表现对数转换。半对数曲线主要用于成对数或指数变化的数据的分析。如y=ln(t),在算术坐标系是曲线,而在半对数坐标系统中为一直线,这样便于对试验数据的分析研究。

②双对数坐标图

loglog函数:对x轴和y轴都按对数比例绘数据图。例如:

x=logspace(-1,2);

loglog(x,exp(x),'-s');

grid on

③极坐标系下的二维图

ploar函数用于绘制极坐标系下的二维图形,调用格式如下:

polar(theta,rho,s) 其中,theta为弧度表示的角度向量,rho是相应的幅向量,s为图形属性设置选项。例如:

x=0:0.01*pi:4*pi;

y=sin(x/2)+x;

polar(x,y,'-');

④双纵坐标的二维图

在进行数值比较过程中经常会遇到双纵坐标(即双y轴坐标系)显示的要求,解决该问题,可调用plotyy函数。完整调用格式如下:

plotyy(x1,y1,x2,y2,fun1,fun2)

该命令将以fun1方式绘制(x1,y1),以fun2方式绘制(x2,y2)。其中,若缺省参数fun1和fun2时,以plot方式绘制图形,缺省参数fun2时,以fun1方式绘制图形(fun1可以为plot、semilogx、 semilogy等)。例如:

x=0:0.1*pi:2*pi;

y=sin(x);

z=exp(x);

plotyy(x,y,x,z,'plot','semilogy');

再如:

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,'plot');

2. 特殊二维图形函数

①条形图、水平条形图

bar(x,y) 在x中指定的位置上绘y中每一元素的条形。例如:

%绘制钟形线。

x=-2.9:0.2:2.9;

bar(x,exp(-x.*x));

colormap hsv

barh函数与bar函数类似。例如:

%创建4个次级图形,显示不同条形变量的效果。

y=round(rand(5,3)*10);

subplot(2,2,1);

bar(y,'group');%'group'用于显示5组条形组,每个条形组中有3个垂直条形。

subplot(2,2,2);

bar(y,'stack');%为y中的每一行显示一个条形,条形高度为行中元素的和,每一个条形都用多种颜色表示,颜色对应于不同种类的元素并显示每行元素对总和的相对贡献。

subplot(2,2,3);

barh(y,'stack');

title 'Stack'

subplot(2,2,4);

bar(y,1.5);

title 'Width=1.5'

②面积图

面积图将向量(或矩阵)y中的元素显示为一条或多条曲线,并填充每条曲线以下的面积。当y为矩阵时,曲线堆栈,显示每个x区间内每行元素对曲线总高度的贡献。绘制面积图通过调用area函数实现,调用格式如下:

area(x,y,ymin)绘x的对应点处的y数据的图。如果x为一向量,则length(x)必须等于length(y),x必须是单调的。如果x为一矩阵,则size(x)必须等于size(y),且x的每一列必须是单调的。使用sort可以使向量或矩阵单调化。对于面积填充,ymin为指定方向上的下限,缺省参数ymin时,ymin默认为0。缺省x时,绘y向量图或y矩阵每列的和,x自动根据length(y)(当y为向量时)或size(y,1)(当y为矩阵时)确定比例。例如:

%利用y中的值绘制堆栈面积图。

y=[1 5 3;3 2 7;1 5 3;2 6 1]

area(y);

grid on

colormap summer

③饼图

饼图显示某向量或矩阵中各元素所占的比例。pie函数和pie3函数分别创建二维饼图和三维饼图,pie函数的调用格式如下:

pie(x,explode) explode为与x对应的零或非零矩阵,非零值对应的扇区将从饼图中分离,所以,若 explode(i,j)非零,则x(i,j)对应扇区从中心分离(注意:explode必须与x有相同的大小)。缺省参数explode时,使用x中的数据绘制饼图,x中的每一个元素用饼图中的一个扇区表示。例如:

%设矩阵X的每一列包含五年内某指定产品的年销量。

X=[19.3 22.1 51.6;34.1 70.3 82.4;61.4 82.9 90.8;50.5 54.9 59.1;29.4 36.3 47.0]

x=sum(X)

explode=zeros(size(x));%将使用explode输入变量将饼图中贡献最大的一个扇区分离出来,该变量是一个包含零和非零值的向量。

[c,offset]=max(x);%找到扇区中贡献最大的一个,并将其对应explode元素设置为1。

explode(offset)=1;

pie(x,explode);

④误差条图

误差条图显示数据的置信区间或沿曲线的偏差,误差条图通过调用errorbar函数来绘制,调用格式如下:

errorbar(Y,E)对Y绘图并在Y的每个元素处绘一误差条,误差条两端距离曲线上下均E(i)长度。

errorbar(X,Y,E)绘X和Y的误差条图,误差条长度为2*E(i),其中X、Y和E必须大小相同。当它们为向量时,每个误差条均由(X(i),Y(i))定义,曲线上点上下各E(i)误差条。当它们为矩阵时,每个误差条则由(X(i,j),Y(i,j))定义。

errorbar(X,Y,L,U)用由L(i)+U(i)指定了的误差条上下长度的绘制误差条图,其中,X、Y、L和U必须大小相同。当它们为向量时,每个误差条由(X(i),Y(i))定义,用L(i)定义下面的距离,用U(i)定义上面的距离。当它们为矩阵时,每个误差条由(X(i,j),Y(i,j))定义,用L(i,j)定义下面的距离,用U(i,j)定义上面的距离。

例如:

%绘对称的误差条图,误差条的长度为两倍标准误差。

X=0:pi/10:pi;

Y=sin(X);

E=std(Y)*ones(size(X));

errorbar(X,Y,E);

⑤直方图

在统计中,为了掌握数据的分布特征,需要绘制直方图,绘制直方图可通过调用函数hist函数来实现,调用格式如下:

n=hist(Y)将Y中的元素分到10个间隔相同的条形中,并返回每个条形中元素的个数。

相关文档
最新文档