MATLAB中图形的绘制

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

该图形进行个性描述,如对坐标重置、对线条加粗、加
说明等。
使用hold on命令实现在同一窗口中多次绘制图形, 用hold off取消。
例1:画出 [0,2 ] 上正弦、余弦曲线(分子图形窗口,
用多种方式实现)。 ► x=0:0.1*pi:2*pi;
%按步长赋值生成x数组
► y=sin(x); z=cos(x);
结果如图
二维直方图及阶梯图绘图效果
MATLAB中三维图形的绘制
1、 绘制空间曲线(plot3命令) plot3命令是二维绘图命令plot的推广,其使用方法和 功能基本相同,使用该命令软件将开辟一个图形窗口,并画 出连接坐标系中一系列点的连线。格式: plot3(x,y,z, '颜色+线型+点型',…)
现要在第二个子图中正弦曲线上分点处用蓝色“O”标记出来, 余弦曲线上分点处用黑色的“+”标记出来,则输入以下命令:
► hold on
%保持第二个子窗中绘图
► plot(x,y,'bo',x,z,'k+')
► hold off 结果如图
%用'o'和'+'标记曲线上分点
%取消图形保持
二维绘图命令plot的图形效果
2 2 %在第二个子图中画 z x y 光滑曲面
%对曲面 z x 2 y 2 平滑并除去网格
结果如图
单位圆域上旋转抛物面
注意:由于区域划分很细,所以子图1中网格已经看不出了,同子图2几乎一样。
例8: 几个特殊的空间曲面:peaks, sphere, cylinder。
► [x,y,z]=peaks; ► surf(x,y,z) ► [x,y,z]=sphere; ► surf(x,y,z) ► [x,y,z]=cylinder; ► surf(x,y,z)
► hold on %图形保持,在同一图形窗口中叠加图形 ► plot([0,2*pi],[0,0], 'r-.') %叠加一条红色的点划直线:(0,0)到(2pi,0) ► hold off %图形保持取消,再画图时将另辟窗口
结果如图
二维绘图线型、图示等效果

使用fill(x,y)命令实现对闭合图形的填充 使用polar(theta,rho)命令进行极坐标绘图
2 、 绘制空间曲面(mesh、surf命令)
对于二元函数z=f(x,y),设其定义域为[a,b] ×[c,d], 则其几何图象为空间坐标系中一片曲面,该曲面的投影 域即为函数的定义域,使用mesh、surf等命令可以绘 制出相应曲面。格式:
mesh(X,Y,Z) surf(X,Y,Z)
%绘制网格曲面 %绘制光滑曲面
MATLAB中图形的绘制
MATLAB中二维图形的绘制
MATLAB提供了最常用的二维曲线的绘图命令plot。 使用该命令软件将开辟一个图形窗口,并画出坐标面上 的一条二维曲线。 格式: plot(x,y, '颜色+线型+点型') 当(x,y)为一点坐标时,则在相应位置画出一个点。用法: plot(x,y, 'r*') %在(x,y)处画一红色的'*'点 当(x,y)为一点列(x1,y1),(x2,y2),……,(xn,yn)时,则 画出顺次连接这些点的曲线。用法: plot(x,y) plot(x,y, 'r- -') %画出连接点列的蓝色实心线(默认) %画出连接点列的红色虚线
当(x,y,z)为一点坐标时,则在空间相应位置画出一个点。用法:
plot3(x,y, z,'r*')
%在(x,y,z)处画一红色的'*'点
当(x,y,z)为点列(x1,y1,z1),(x2,y2,z2),……,(xn,yn,zn)时,
则画出依次连接这些点的曲线。用法:
plot3(x,y,z) %画出连接点列的蓝色实心线(默认) plot3(x,y,z, ‘r-’) %画出连接点列的红色实线
结果如图
矩形域上旋转抛物面
例7: 在圆形域
x 2 y 2 1 上绘制旋转抛物面: z x 2 y 2

► x=linspace(-1,1,300); %分割[-1,1]区间生成x数组 ► y=x; %生成y数组 ► [X,Y]=meshgrid(x,y); %生成矩形域[-1,1]X[-1,1]网格节点坐标矩阵 ► Z=X.^2+Y.^2; ► i=find(Z>1); %生成 z x y 函数值矩阵 %找出圆域 x 2 y 2 1 之外的函数值(z>1)坐标点i
%绘制网格曲面并赋以颜色 %绘制光滑曲面 %对曲面平滑并除去网格线
2 z x2 y 例6: 画出矩形域[-1,1] ×[-1,1]上旋转抛物面: 。
► x=linspace(-1,1,100); ► y=x;
%分割[-1,1]区间生成x数组
% y与x相同 %生成矩形域[-1,1] ×[-1,1]网格节点坐标矩阵 %生成z的函数值矩阵
► axis([-1 2 -1 2]) ► h2=figure;
%填充闭合图形(用黄颜色)
%重新设置坐标轴 %开辟第二个图形窗口,返回其图标识号(句柄)h2
► theta=linspace(0,2*pi);
► polar(theta,rho,‘r’)
%对theta角的范围进行划分,生成分点向量
► rho=sin(2*theta).*cos(2*theta); %生成相应极坐标方程的极径rho向量 %绘制相应的极坐标方程图形(用红颜色)
例5: 画出螺旋线:x=sin(t),y=cos(t),z=t,
上一段曲线。
结果如图 ► t=0:pi/50:10*pi; %生成参数t数组
► X=sin(t); %生成螺旋线X数组
t [0,10 ]
► Y=cos(t);
► Z=t;
%生成螺旋线Y数组
%生成螺旋线Z数组
► plot3(X,Y,Z, 'k-', 'linewidth',3) %画螺旋线 ► grid
使用bar(x,y)命令实现绘制直方图 使用stairs(x,y)命令实现绘制阶梯图
例4:在[-2.5,2.5]上画出函数 ► x=linspace(-2.5,2.5,20); %产生横坐标x向量
y e x 的直方图和阶梯图。
2
► y=exp(-x.*x);
► h1=subplot(1,2,1); ► bar(x,y)
%生成正弦、余弦函数值数组y、z
► subplot(2,1,1) %分图形窗口为2行1列,并准备在第一个子窗中绘图
► plot(x,y,x,z) ► subplot(2,1,2) ► plot(x,y,'k:',x,z,'r-')
%在第一个子窗中画出正弦、余弦曲线 %准备在第二个子窗中绘图 %在第二个子窗中用不同颜色画两条曲线
例2: 画出
[0,2ห้องสมุดไป่ตู้] 上正弦、余弦曲线并对线型加粗、
点型加大,重新定置坐标系。 ► x=0:0.1*pi:2*pi; ► y=sin(x); z=cos(x); %按步长赋值生成x数组 %生成正弦、余弦函数值数组y、z
► plot(x,y, ' b-', x, z, ' k -.', ' linewidth ',3, ' markersize ',15)
2 2
► Z(i)=NaN;
► subplot(1,2,1) ► mesh(X,Y,Z) ;
%对圆域 x 2 y 2 1 之外的坐标点i处函数值进行“赋空”
2 2 %在第一个子图中画 z x y 网格曲面
► subplot(1,2,2)
► surf(X,Y,Z) ; ► shading flat ;
► axis([-0.2*pi 2.2*pi –1.2 1.2]) %重新设置图形窗口坐标轴范围 ► grid %加注坐标网格
► xlabel('Variable \it{x}')
► ylabel(‘Variable \it{y}’)
%标记横坐标轴, \it{x}表示x为斜体
%标记纵坐标轴 %标记图名
► title(‘Polar plot of sin(2*theta)cos(2*theta)’) %添加图形标题
如果需要第二个图形窗口中曲线加粗的话,则可用以下命令格式:
► set(h2,'linewidth',3)
其中,h2为第二图形窗口的句柄。
结果如图
%对第二个窗口中曲线加粗
二维绘图填充及极坐标绘图效果
2) 按上述划分生成投影域上全部网格节点的坐标矩阵: ► [X,Y]=meshgrid(x,y) 3) 根据函数表达式生成全部网格节点处对应的函数值 (坐标z)矩阵Z: ► Z=f(X,Y)
%注意由于是对矩阵元素操作,运算时要用点运算
4) 顺序连接已产生的空间点(X,Y,Z)绘制相应曲面:
► mesh(X,Y,Z) ; ► surf(X,Y,Z) ; ► shading flat ;
► title(‘Sine and Cosine Curves’)
► text(2.5,0.7,‘Sin(x)’)
► text(1.5,0.1,‘Cos(x)’)
%在(2.5,0.7)位置,标记曲线名称
%在(1.5,0.1)位置,标记曲线名称
现要在坐标系中画出连接[0,0] 到 [2 ,0] 的直线且用红色, 用以作为x轴,则输入以下命令:
点线的颜色代码与线型代码如表:
y m c r g b w k
黄色 紫色 青色 红色 绿色 蓝色 白色 黑色 颜色代码表 . 点 o 圆圈 x x标 记 + +标 记 * *标 记 实线 : 点线 -. 点划 线 -虚线
点型和线型代码表
使用subplot(m,n,k)命令实现一个区域中显示m×n个 子图形窗口,并指定在第k个子窗口绘图;此时,可以对
其中X,Y为投影域上网格划分节点处对应的横坐标矩阵和 纵坐标矩阵,可由meshgrid命令生成;Z为与投影域上网 格划分节点(X,Y)对应的函数值(坐标Z)矩阵。具体步骤: 1) 对投影域进行划分:
► x=a:p1:b ► y=c:p2:d %按步长p1对 [a,b]区间进行划分并生成向量 %按步长p2 对[c,d]区间进行划分并生成向量
%生成函数值向量
%开辟第一个图形窗口,返回其句柄h1 %画出直方图
► title(‘ Bar Chart of a Bell Curve ’) %添加图形标题 ► h2= subplot(1,2,2); %开辟第二个图形窗口,返回其句柄h2
► stairs(x,y)
%画出阶梯图
► title(‘ Stairs Plot of a Bell Curve ’) %添加图形标题
%开辟第一个图形窗口,返回其图标识号(句柄)h1 %闭合图形的顶点横坐标向量 %闭合图形的顶点纵坐标向量
例3: 填充一正方形以及画极坐标方程 r 2sin 2 cos2 的图形。
► h1=figure; ► x=[0 1 1 0 0]; ► y=[0 0 1 1 0];
► fill(x,y,‘y’)
使用 grid 命令对图形窗口加坐标网格
使用 linewidth 和 markersize 命令实现图形中线宽 和点型大小的设置格式 plot(x,y, 'b*-', x,y, 'linewidth',5, 'markersize',10) 其中,数值5和10分别为线型和点型的大小,默认值为1。 使用 axis 命令实现坐标轴的重新设置格式 axis([xmin xmax ymin ymax]) 使用 title xlabel ylabel zlabel text 等命令实现对 图形的文字说明
几个特殊曲面图
例9: 画出
z
sin x 2 y 2 x2 y2
在 | x | 7.5, | y | 7.5 上的图形。
► x=-7.5:0.5:7.5; ► y=x; ► [X,Y]=meshgrid(x,y); ► u=sqrt(X.^2+Y.^2)+eps; %加eps使得u不等于0,保证z有意义 ► Z=sin(u)./u; ► surf(X,Y,Z)
► [X,Y]=meshgrid(x,y);
► Z=X.^2+Y.^2; ► subplot(1,2,1) ► mesh(X,Y,Z) ;
%在第一个子图中画z的网格曲面
► subplot(1,2,2)
► surf(X,Y,Z) ; ► shading flat ;
%在第二个子图中画z的光滑曲面 %对曲面z平滑并除去网格
相关文档
最新文档