常用Matlab作图命令.docx
《常用Matlab作图命令.docx》由会员分享,可在线阅读,更多相关《常用Matlab作图命令.docx(43页珍藏版)》请在冰豆网上搜索。
常用Matlab作图命令
常用Matlab作图命令
1.概率统计作图
1.1绘出正态分布的密度函数曲线
x=-5:
0.1:
5;
y=normpdf(x,0,1);
z=normpdf(x,0,2);
plot(x,y,x,z)
gtext('N(0,1)')
gtext('N(0,2)')
title('正态分布密度曲线')
1.2绘出t-分布的密度函数曲线,并与标准正态密度曲线比较
x=-5:
0.1:
5;
y=tpdf(x,30);
z=normpdf(x,0,1);
plot(x,y,'k:
',x,z,'k-')
xlabel('\itx');
ylabel('概率密度\itp')
legend('t分布','标准正态密度')
difference=tpdf(x,30)-normpdf(x,0,1)
1.3绘制开方分布密度函数在n分别等于1、5、15的图
x=0:
1:
30;y1=chi2pdf(x,1);
plot(x,y1,':
')
holdon
y2=chi2pdf(x,5);plot(x,y2,'+')
y3=chi2pdf(x,15);plot(x,y3,'O')
Axis([0,30,0,0.2])
1.4计算自由度是50,10的F-分布的0.9的分位数,并给出概率与分位数关系的图形
x=finv(0.9,50,10)x=2.1171
p=fcdf(x,50,10)p=0.9000
t=0:
0.1:
4;
y=fpdf(x,50,10);
z=fpdf(t,50,10);
plot(t,z,[x,x],[0,y])
text(x,0,'2.1171')
gtext('p=0.9')
title('概率与分位数的关系')
1.5经验累积分布函数图形
X=normrnd(0,1,50,1);
[h,stats]=cdfplot(X)
y=evrnd(0,3,100,1);
cdfplot(y)
holdon
x=-20:
0.1:
10;
f=evcdf(x,0,3);
plot(x,f,'m')
legend('Empirical','Theoretical','Location','NW')
1.6绘制正态分布概率图形
X=normrnd(0,1,50,1);
normplot(X)
1.7绘制威布尔(Weibull)概率图形
%绘制威布尔(Weibull)概率图形的目的是用图解法估计来自威布尔分布的数据X,如果X是威布
%尔分布数据,其图形是直线的,否则图形中可能产生弯曲。
r=weibrnd(1.2,1.5,50,1);
weibplot(r)
1.8样本数据的盒图
%boxplot(X)%产生矩阵X的每一列的盒图和“须”图,“须”是从盒的尾部延伸出来,并表示盒外数据长度的线,如果“须”的外面没有数据,则在“须”的底部有一个点。
x1=normrnd(5,1,100,1);
x2=normrnd(6,1,100,1);
x=[x1x2];
boxplot(x,1,'g+',1,0)
1.9样本的概率图形
data=normrnd(0,1,30,2);
p=capaplot(data,[-2,2])
p=
0.9199
1.10附加有正态密度曲线的直方图
r=normrnd(10,1,100,1);
histfit(r)
1.11在指定的界线之间画正态密度曲线
格式p=normspec(specs,mu,sigma)%specs指定界线,mu,sigma为正态分布的参数p
为样本落在上、下界之间的概率
normspec([10Inf],11.5,1.25)
1.12二项分布的函数图
p=0.2;%Probabilityofsuccessforeachtrial
n=10;%Numberoftrials
k=0:
n;%Outcomes
m=binopdf(k,n,p);%Probabilitymassvector
bar(k,m)%Visualizetheprobabilitydistribution
set(get(gca,'Children'),'FaceColor',[.8.81])
gridon
1.13指数分布函数图
lambda=2;%Failurerate
t=0:
0.01:
3;%Outcomes
f=exppdf(t,1/lambda);%Probabilitydensityvector
plot(t,f)%Visualizetheprobabilitydistribution
gridon
1.14ksdensity概率密度估计函数
cars=load('carsmall','MPG','Origin');
MPG=cars.MPG;
[f,x,u]=ksdensity(MPG);
plot(x,f)
title('DensityestimateforMPG')
holdon
[f,x]=ksdensity(MPG,'width',u/3);
plot(x,f,'r');
[f,x]=ksdensity(MPG,'width',u*3);
plot(x,f,'g');
legend('defaultwidth','1/3default','3*default')
holdoff
hname={'normal''epanechnikov''box''triangle'};
colors={'r''b''g''m'};
forj=1:
4
[f,x]=ksdensity(MPG,'kernel',hname{j});
plot(x,f,colors{j});
holdon;
end
legend(hname{:
});
holdoff
2.常用作图函数
2.1普通双函数图
t=0:
pi/20:
2*pi;
y=exp(sin(t));
plotyy(t,y,t,y,'plot','stem')
xlabel('XAxis')
ylabel('PlotYAxis')
title('TwoYAxes')
2.2多数据集在同一图中
x=0:
pi/100:
2*pi;
y=sin(x);
y2=sin(x-.25);
y3=sin(x-.5);
plot(x,y,x,y2,x,y3)
legend('sin(x)','sin(x-.25)','sin(x-.5)')
2.3在原图上继续作图holdon
[x,y,z]=peaks;
pcolor(x,y,z)
shadinginterp
holdon
contour(x,y,z,20,'k')
holdoff
2.4同一图中作多个图
clear
x=0.1:
0.1:
4*pi;%生成向量x。
y1=sin(x);%生成y1值
y2=sin(x)./x;%生成y2值。
figure;%创建一个新窗口。
subplot(1,2,1);%定义第一个子图区域。
plot(x,y1);%用实线画曲线。
subplot(1,2,2);%定义第二个子图区域。
plot(x,y2,'*');%用‘*’号画曲线
clear;
x=[137];
y=[692];
s1=subplot(2,2,1);
plot(x,y);
grid;
title('Default');
s2=subplot(2,2,2);
plot(x,y);
set(s2,'XTick',x);%改变X轴标记
set(s2,'XGrid','on');%画X轴的格栅线
title('Xscalemanipulated');
s3=subplot(2,2,3);
plot(x,y);
set(s3,'YTick',[2,6,9]);%改变y轴标记
set(s3,'YGrid','on');%画y轴的格栅线
set(s3,'GridLineStyle','-.');%使用虚线格栅
title('Yscalemanipulated');
s4=subplot(2,2,4);
plot(x,y);
set(s4,'XTick',x);%改变xy轴标记
set(s4,'YTick',[269]);
grid;%画xy轴的格栅线
title('Bothscalesmanipulated');
clfreset%ClearingtheFigureforaNewPlot
t=0:
pi/10:
2*pi;
[X,Y,Z]=cylinder(4*cos(t));
subplot(2,2,1);mesh(X)
subplot(2,2,2);mesh(Y)
subplot(2,2,3);mesh(Z)
subplot(2,2,4);mesh(X,Y,Z)
2.5标签的显示(字符参照Latex标准)
t=-pi:
pi/100:
pi;
y=sin(t);
plot(t,y)
axis([-pipi-11])
xlabel('-\pi\leq{\itt}\leq\pi')
ylabel('sin(t)')
title('Graphofthesinefunction')
text(1,-1/3,'{\itNotetheoddsymmetry.}')
2.6多元变量作图
[X,Y]=meshgrid(-8:
.5:
8);
R=sqrt(X.^2+Y.^2)+eps;
Z=sin(R)./R;
mesh(X,Y,Z,'EdgeColor','black')%使用mesh(X,Y,Z)采用默认颜色;
2.7定义函数作图
functionmyfunc(x)
%x=-10:
.005:
40;Here'savalueyoucanuseforx
y=[1.5*cos(x)+6*exp(-.1*x)+exp(.07*x).*sin(3*x)];
ym=mean(y);
hfig=figure('Name','FunctionandMean',...
'Pointer','fullcrosshair');
hax=axes('Parent',hfig);
plot(hax,x,y)
holdon
plot(hax,[min(x)max(x)],[ymym],'Color','red')
holdoff
ylab=get(hax,'YTick');
set(hax,'YTick',sort([ylabym]))
title('y=1.5cos(x)+6e^{-0.1x}+e^{0.07x}sin(3x)')
xlabel('XAxis');ylabel('YAxis')
2.8使用fplot作图函数
subplot(2,2,1);fplot('humps',[01])
subplot(2,2,2);fplot('abs(exp(-j*x*(0:
9))*ones(10,1))',[02*pi])
subplot(2,1,2);fplot('[tan(x),sin(x),cos(x)]',2*pi*[-11-11])%后面参数表示x,y上下界;
2.9给当前图形加一条参考线
y=[3.22.63.13.42.42.93.03.33.22.12.6]';
plot(y,'+')
refline(0,3)
2.10在当前图形中加入一条多项式曲线
格式h=refcurve(p)%在图中加入一条多项式曲线,h为曲线的环柄,p为多项式系数向量,p=[p1,p2,p3,…,pn],其中p1为最高幂项系数
h=[85162230289339381413437452458456440400356];
plot(h,'+')
refcurve([-4.91000])
3.常用作图工具
3.1plottools
在输入变量后,如:
x=-1:
.1:
1;%Definetherangeofx
y=x.^3;%Raiseeachelementinxtothethirdpower
可输入plottools调用相应的作图工具;使用非常方便
4.特殊图形作图
4.1画极坐标图
t=0:
.01:
2*pi;
polar(t,sin(3*t).*cos(2*t),'--r')
4.2bar图
x=-2.9:
0.2:
2.9;
bar(x,exp(x.*sin(x)))
colormapgray
4.3barh图
X=1:
.5:
5;
Y=exp(X).*sin(X);
barh(Y,'stack')
4.4compass图
Z=magic(20).*randn(20);
compass(Z)
Z=eig(randn(20,20));
compass(Z)
4.5comet图
t=0:
.01:
2*pi;
x=exp(sin(2*t)).*(cos(t).^2/3);
y=t.*(sin(t).^2);
comet(x,y)
holdon
4.6errorbar图
X=0:
pi/20:
pi;
Y=exp(X).*sin(X);
E=std(Y)*ones(size(X));
errorbar(X,Y,E)
4.7feather图
th=(-90:
10:
90)*pi/180;
r=4*ones(size(th));
[u,v]=pol2cart(th,r);
feather(u,v);
4.8hist图
%功能二维条形直方图,可以显示出数据的分配情形。
x=-5:
0.1:
5;
y=randn(1000,1);
hist(y,x)
4.9rose图
theta=3*pi*randn(1,30);
rose(theta)
4.10stair图
x=0:
.25:
10;
stairs(x,exp(sin(x.^2)))
4.11stem图
x=linspace(0,2,10);
stem(exp(-x.^2),'fill','-.')
4.12pie图
x=[130.52.52];
explode=[01000];
pie(x,explode)
5.三维图形作图
5.1pie3图
x=[130.52.52];
explode=[01000];
pie3(x,explode)
colormaphsv
5.2sphere图
[X,Y,Z]=sphere;
mesh(X,Y,Z)
hiddenoff
5.3基本三维图
t=0:
pi/50:
10*pi;
plot3(sin(t),cos(t),t);
axissquare;
gridon;
[X,Y]=meshgrid([-2:
0.1:
2]);
Z=X.*exp(-X.^2-Y.^2);
plot3(X,Y,Z);
gridon;
x=linspace(0,3*pi);%x-axisdata
z1=sin(x);%plotinx-zplane
z2=sin(2*x);
z3=sin(3*x);
y1=zeros(size(x));%spreadoutalongy-axis
y3=zeros(size(x));%bygivingeachdiffenty-axisvalues
y2=y3/2;
plot3(x,y1,z1,x,y2,z2,x,y3,z3);
grid,xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('sin(x),sin(2x),sin(3x)');
5.4绘制复数图
实例:
如何在极坐标表下绘制复数函数z、z2、z3和
的曲面图形?
z=cplxgrid(20);%准备网格,使用cplxgrid函数创建一个21*41的复数网格矩阵;
subplot(2,2,1);
cplxmap(z,z);
title('线性运算');
xlabel('实轴');
ylabel('虚轴');
zlabel('函数值');
subplot(2,2,2);
cplxmap(z,z.^2);
title('平方运算');
subplot(2,2,3);
cplxmap(z,z.^3);
title('立方运算');
subplot(2,2,4);
cplxmap(z,(z.^4-1).^(1/4));
title('复杂运算');
xlabel('实轴');
ylabel('虚轴');
zlabel('函数值');
6.插值拟合作图
6.1polyfit/polyval
x=(0:
0.1:
5)';
y=erf(x);
p=polyfit(x,y,6)
f=polyval(p,x);
plot(x,y,'o',x,f,'-')
axis([0502])
6.2最小二乘拟合直线
X=[23.45.681112.313.81618.819.9]';
plot(X,'+')
lsline
7.复杂函数作图
7.1二次曲面的方程作图实例
讨论参数a,b,c对其形状的影响
相应的代码:
a=input('a=');b=input('b=');c=input('c=');
d=input('d=');N=input('N=');%输入参数,N为网格线数目
xgrid=linspace(-abs(a),abs(a),N);%建立x网格坐标
ygrid=linspace(-abs(b),abs(b),N);%建立y网格坐标
[x,y]=meshgrid(xgrid,ygrid);%确定N×N个点的x,y网格坐标
z=c*sqrt(d-y.*y/b^2-x.*x/a^2);u=1;%u=1,表示z要取正值
z1=real(z);%取z的实部z1
fork=2:
N-1;%以下7行程序的作用是取消z中含虚数的点
forj=2:
N-1
ifimag(z(k,j))~=0z1(k,j)=0;end
ifall(imag(z([k-1:
k+1],[j-1:
j+1])))~=0z1(k,j)=NaN;end
end
end
surf(x,y,z1),holdon%画空间曲面
ifu==1z2=-z1;surf(x,y,z2);%u=1时加画负半面
axis([-abs(a),abs(a),-abs(b),abs(b),-abs(c),abs(c)]);
end
xlabel('x'),ylabel('y'),zlabel('z')
holdoff
运行程序,当a=5,b=4,c=3,d=1,N=50时结果为
当a=5i,b=4,c=3,d=1,N=15时结果为
当a=5i,b=4i,c=3,d=0.1,N=10时结果为
7.2空间曲面作图
画出空间曲面
在
范围内的图形,并画出相应的等高线。
clear;close;
u=-30:
0.5:
30;
v=-30:
0.5:
30;
[x,y]=meshgrid(u,v);
z=10*sin(sqrt(x.^2+y.^2))./sqrt(1+x.^2+y.^2);
subplot(1,2,1);
mesh(x,y,z)
subplot(1,2,2);
contour(x,y,z,10)
7.3根据给定的参数方程,绘制曲面图形
a)椭球面
,
,
;
clear;close;
u=-4:
0.1:
4;
v=-4:
0.1:
4;
[U,V]=meshgrid(u,v);
X=3.*cos(U).*sin(V);
Y=2.*cos(U).*cos(V);
Z=sin(U);
surf(X,Y,Z);
axisequal
b)椭圆抛物面
,
,
;
clear;close;
u=-4:
0.1:
4;
v=-4:
0.1:
4;
[U,V]=meshgrid(u,v);
X=3.*U.*sin(V);
Y=2.*U.*cos(V);
Z=4.*U.^2;
surf(X,Y,Z);
shadinginterp;
colormap(hot);
axisequal
c)单叶双曲面
,
,
;
clear;close;
u=-2:
0.1:
2;
v=-2:
0.1:
2;
[U,V]=meshgrid(u,v);
X=3*sec(U).*sin(V);
Y=2*sec(U).*cos(V);
Z=4*tan(U);
mesh(X,Y,Z);
shadinginterp;
colormap(jet);
axisequal
d)双叶抛物面
,
,
;
clear;close;
u=-4:
0.1:
4;
v=-4:
0.1:
4;
[U,V]=meshgrid(u,v);
X=U;
Y=V;
Z=(U.^2-V.^2)/3;
mesh(X,Y,Z);
shadinginterp;
colormap(jet);
axisequal
e)旋转面
,
,
;
clear;close;
u=-4:
0.1:
4;
v=-4:
0.1:
4;
[U,V]=meshgrid(u,v);
X=log(U).*sin(V);
Y=log(U).*cos(V);
Z=U;
mesh(X,Y,Z);
shadinginterp;
colormap(jet);
axisequal
f)圆锥面
,
,
;
clear;close;
u=-4:
0.1:
4;
v=-4:
0.1:
4;
[U,V]=meshgrid(u,v);
X=U.*sin(V);
Y=U.*cos(V);
Z=U;
mesh(X,Y,Z);
shadinginterp;
colormap(jet);
axisequal
g)环面
,
,
;