绘制特殊的二维图形函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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个间隔相同的条形中,并返回每个条形中元素的个数。