第三章 Matlab图形绘制

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

示例:x=randn(9999,1);rose(x,50)
Stem产生针状图,常被用来绘制数 x=linspace(0,10,100);y=sin(x).*exp(位讯号。 x/4);stem(x,y);
Fill将资料点视为多边形顶点,并将 x=linspace(0,10,100);y=sin(x).*exp(此多边形涂上颜色。 x/4);fill(x,y,’c’); Feather函数将每一个数据点视为 复数,并以箭头画出。 theta=linspace(0,2*pi,40);z=cos(theta) +i*sin(theta);feather(z);
3、显函数、隐函数和符号函数作图 (1)fplot(fun,lims)绘制由字符串fun指定函数名的函数在x轴区间为 lims=[xmin, xmax]的函数图。若lims=[xmin,xmax,ymin,ymax],则y轴也被 限制。
例题:
解 1)首先用M文件fun1.m定义函数f(x)如下 function y=Afun1(x); if x<1 y=x+1; else y=1+1./x; end 在matlab命令窗口输入fplot('Afun1',[-3,3])就可画出函数 f (x) 的图形。
Compass函数与feather函数接近, theta=linspace(0,2*pi,40);z=cos(theta) 只是每个箭头的起点都在圆内 +i*sin(theta);compass(z);
[x,y]=meshgrid(-2:0.2:2);z=x.*exp(-x.^2Quiver用来绘制向量场图。 y.^2);[Dx,Dy]=gradient(z,0.2,0.2); Contour(x,y,z);hold on;quiver(x,y,Dx,Dy);colormap hsv ;hold off
3.1 二维曲线的绘制
1、绘制二维图形最常用的函数是plot,调用格式有以下四种: (1)plot(Y) 如果Y为实向量,则以Y的索引坐标作为横坐标,以Y本身的
元素作为纵坐标。如果Y为复数向量,则以该向量实部为横坐标,虚部为 纵坐标。 (2)plot(X,Y)此时以X为横坐标,Y为纵坐标。X和Y要求维数必须相同。 当变量X和Y是同阶矩阵时,将按照矩阵的行或列进行操作。 (3)plot(X,Y,s) 第三个变量用于设置图形显示属性。设置图形的线型、颜 色、标记等。 (4)plot(X1,Y1,s1,X2,Y2,s2,…..) 每三项为一组绘制多条曲线。
屏蔽的网格图
meshgrid
生成网格点
MATLAB对于网格的处理方法是:将xy平面按指定方式分隔成平面网
格,然后根据程序中给定的方式计算第三维变量的值,即z轴的值,与对 应的xy平面的坐标构成三维点元素,根据由此得到的(x,z)和(y,z)计算各平
面的曲线,彼此相连就构成了网格图。
[X,Y]=meshgrid(x,y) x和y是给定的向量,可以定义网格的划分区域,也 可以定义网格的划分方法,X和Y是网格划分后的数值矩阵。 mesh(X,Y,Z,C)绘制四个矩阵变量的彩色网格面图形,观测点由view定义, 坐标轴由axis定义,C设置颜色,由colormap实现。 mesh(X,Y,Z) 使用C=Z,即颜色正比于图高。 mesh(x,y,Z,C)由两个向量代替矩阵,要求length(x)=n,length(y)=m,且 [m,n]=size(Z) x=-2:0.1:2;y=-2:0.1:2; 示例1: [xx,yy]=meshgrid(x,y); zz=xx.^2+yy.^2; %ii=find(xx.^2+yy.^2>4);zz(ii)=NaN; surf(xx,yy,zz);
x = logspace(-1,2); loglog(x,exp(x),'-s') grid on
②极坐标系函数polar,调用形式为:polar(theta,rho)或polar(theta,rho,s)
③双纵坐标(双y轴坐标系)函数plotyy,调用形式为: plotyy(X1,Y1,X2,Y2) plotyy(X1,Y1,X2,Y2,fun) fun可以是plot、semilogx、semilogy或loglog plotyy(X1,Y1,X2,Y2,fun1,fun2) fun1绘制(X1,Y1),fun2绘制(X2,Y2)
(3)特殊的三维绘图命令
函数名 说明 函数名 说明 函数名 说明
bar3
trisurf pie3
三维条形图
三角形表面图 三维饼状图
三维离散数据图
surfc
ezgraph3 scatter3
着色图+等高线
三维散射图
comet3
cylinder
三维彗星图
柱面图
函数控制绘制图 waterfall 瀑布图
示例2:
x=-10:0.5:10;y=-8:0.5:8; [x,y]=meshgrid(x,y); z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); mesh(x,y,z);
(2)着色函数surf surf(X,Y,Z,C)输入参数的设置和mesh相同,不同的是mesh绘制的是网格 图,而surf绘制的着色的三维表面。两者对比如下图所示
以第二种形式为例:
[x,y]=meshgrid(-2:0.1:2,-2:0.1:2); z=x.*exp(-x.^2-y.^2); plot3(x,y,z)
3.3 三维网线图和曲面图的绘制
(1)网线图mesh函数
函数名 说明 mesh 三维网格图
函数名 meshc
说明 将网格与等高线结合
meshz
3.2 三维曲线的绘制
绘制三维曲线的函数是plot3,与plot函数的调用格式相同,也有以 下四种:
plot3(x,y,z)
plot3(X,Y,Z) X,Y,Z是相同阶数的矩阵,绘出三矩阵的列向量的曲线。 plot3(X,Y,Z,s)
plot3(x1,y1,z1,s1,x2,y2,z2,s2,....)组合图形
解 因为这里的函数是隐函数,化成显函数后有两支,必须使用参数方程,旋 转面的参数方程为
画图的Matlab程序如下:
画图的Matlab程序也可以写成
x=@(alpha,beta) 4*cos(alpha); y=@(alpha,beta)
alpha=[0:0.1:2*pi]'; beta=0:0.1:2*pi;
errorbar表示。
fplot函数可以绘制较精确的图形,
适合于变化剧烈的函数。 Polar绘制极坐标
示例:
示例:fplot(‘sin(1/x)’,[0.01,0.3])
theta=linspace(0,2*pi);r=cos(2*theta);polar(theta,r) Hist用来显示资料的分段情况和统 计特性,适合于大量数据的情况 Rose与hist接近,将资料的大小视 为角度,资料的个数作为距离,采 用极坐标绘图。 示例:x=randn(9999,1);hist(x,50)
2)对于隐函数f(x,y)=0,调用格式为:ezplot(f,[xmin,xmax],[ymin,ymax])
ezplot(f,[a,b]),x与y在(a,b)区间之内。 3)对于参数方程x=x(t),y=y(t),调用格式为:
ezplot(x,y)或者ezplot(f,[tmin,tmax])
示例1:ezplot(‘x^2*sin(x+y^2)+y^2*exp(x+y)+5*cos(x^2+y)’,[-10 10]);
AX是对应两个坐标轴的句柄, H1和H2分别是对应plot的句柄。
(2)二维特殊函数图形
函数名 area bar barh comet errorbar ezplot ezpolar 说明 填充绘图 条形图 水平条形图 彗星图 误差带图 简单绘制函数图 函数名 feather stem fill stairs contour contourf 说明 矢量图 离散序列饼状图 多边形填充 阶梯图 等高线图 填充的等高线图 散射图 函数名 fplot hist pareto pie plotmatrix ribbon 说明 函数图绘制 直方图 Pareto图 饼图 分散矩阵绘制 三维图的二维条状显示
示例2:ezplot('cot(x)') 示例3:ezplot('x^2+y^2/4=1') 示例4:ezplot(‘x^2+y^2-1’,[1,1],[-1,1]) 示例5:ezplot(‘x^3+y^3-5*x*y’) 示例6: ezplot(‘2*cos(t)’,’sin(t)’,[0,2*pi]);
Matlab绘图命令中的各种选项 曲线线型 曲线颜色 标记符号
选项
-: -. none
意义
实线 虚线 点线 点划线 无线
选项
b g m w c k
意义
蓝色 绿色 红紫色 白色 蓝绿色 黑色
选项
* . x v ^ >
意义
星号 点号 叉号 ▽ △ ▷
Leabharlann Baidu
r y
红色 黄色
O
p s d h <
圆圈
五角星 方块 菱形 六角星 ◁
2)这里也可以使用匿名函数,编写程序如下
fun2=@(x) (x+1)*(x<1)+(1+1/x)*(x>=1); fplot(fun2,[-3,3])
(2) ezplot(f)可用来绘制显函数、隐函数和参数方程的图形,x轴的默认
范围为[-2pi,2pi]。 1)对于显函数y=f(x),调用格式为:ezplot(f,[xmin,xmax])
示例:
y=rand(100,1); plot(y) x=rand(100,1); z=x+y.*i; plot(z)
x=0:0.01*pi:2*pi; y=[sin(x’),cos(x’)]; plot([x’,x’],y);
x=0:0.01*pi:pi; y=sin(x); z=cos(x); plot(x,y,’--k’,x,z,’-.rd’);
注:双坐标绘制图形的调用过程中,不能够像前面的plot函数那样对曲线
属性进行设置,需要使用句柄图形控制完成。
x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); [AX,H1,H2] = plotyy(x,y1,x,y2,'plot');
简单绘制极坐标图 scatter
Bar函数适合于数据点不多时使用 示例:x=1:15;y=rand(size(x));bar(x,y); 如果已知数据的误差量,可用 示例:x=linspace(0,2*pi,20);y=sin(x); z=std(y)*ones(size(x));errorbar(x,y,z);
stem3
sphere
球面图
trimesh
三角形网格图
(4)旋转曲面图 cylinder
[X,Y,Z] = cylinder(r) 这里的r表示构成旋转曲面的曲线。
方法一: Matlab程序如下。 x=0:10:600; [X,Y,Z]=cylinder(30*exp(-x/400).*sin((x+25*pi)/100)+130); surf(X,Y,Z) 方法二:将旋转曲面用参数方程表示。
第三章 Matlab图形绘制
10
10
5
5
0
0
-5
-5
-10 30 20 10 0 5 0 15 10 25 20
-10 30 20 10 0 5 0 15 10 25 20
25
20
2
1
15
0
10
-1
5
-2 2 1 0 -1 -1 -2 -2 1 0 2
5
10
15
20
25
主要内容
3.1. 二维曲线的绘制 3.2. 三维曲线的绘制 3.3 三维网线图和曲面图的绘制 3.4 Matlab图形处理的基本技术 3.5 动画技术 3.6 图形用户界面设计
2、特殊的二维图形函数 (1)特殊坐标系的二维图形函数,区别于均匀单y轴坐标系而言,具体有 对数坐标系、极坐标系和双y轴坐标等。 ①对数坐标曲线,主要有semilogx,semilogy和loglog,前两个分别以x坐标 和y坐标为对数坐标,后一个是双对数坐标。 x=1:0.1*pi:2*pi; y=sin(x); semilogx(x,y,'-*') x = 0:.1:10; semilogy(x,10.^x)
相关文档
最新文档