MATLAB画图(三种)
MATLAB作图教程
2
Matlab 绘图
如何画出 y=sin(x) 在 [0, 2*pi] 上的图像?
3
Matlab 绘图
手工作图
找点: x=0, pi/3, pi/2, 2*pi/3, pi, … 计算函数值: y=sin(0), sin(pi/3), sin(pi/2), 描点:在坐标系中画出这些离散点
…
19
以下标为横坐标,元素值为纵坐标,等价于:
x=[1:length(y)];plot(x,y);
例:>> y=[0,0.48,0.84,1,0.91,6.14];
>> plot(y); >> figure(2); plot([1:length(y)], y)
自己动手
plot(Y): 当 Y 是矩阵时的图形是什么? >> Y=[1 2; 3 5; 6 9]; plot(Y); >> plot(Y’);
25
图形的其他属性
图形标注与坐标控制 有关图形标注函数的调用格式为: title(图形名称) xlabel(x轴说明) ylabel(y轴说明) text(x,y,图形说明) legend(图例1,图例2,…)
26
图形的其他属性ຫໍສະໝຸດ 标题 title(’text’)
例
可以指定文本的属性 title('text', 'Property1', value1, ' Property2', value2, ...)
自己动手
在0≤x≤2区间内,绘制曲线
y=2e-0.5x cos(4πx)
14
【例】在0≤x≤2区间内,绘制曲线
y=2e-0.5x cos(4πx)
matlab画图技巧方法
matlab绘图的一些技巧1.在坐标轴上任意标上感兴趣的刻度。
用XTick、YTick、ZTick。
如图1.如:x=0:0.1:10;y=x.^2;h=plot(x,y,'o',x,y);set(gca,'YTick',[0,10,25,50,80,99],'XTick',[0.5,8,10]); 用XTickLabel、YTickLabel、ZTickLabel属性把标记标签从数值改为字符串。
如图2.如将y轴上的值80用字符串代替:x=0:0.1:10;y=x.^2;h=plot(x,y,'o',x,y);set(gca,'YTickLabel','0|10|25|50|cutoff|99');图1图22.使用多个x轴和y轴XAxisLocation和YAxisLocation属性指定在图形的哪一侧放置x轴和y轴。
如图3.x1=0:0.01:10;y1=sin(x1);h1=line(x1,y1,'Color','r');ax1=gca;set(ax1,'XColor','r','YColor','r');ax2=axes('Position',get(ax1,'Position'),'XAxisLocation','top','YAxisLocation','right','Color','none',' XColor','k','YColor','k');x2=x1;y2=cos(x2);h2=line(x2,y2,'Color','k','Parent',ax2);图33.连接图形与变量(更新自变量或因变量的值)用数据源属性XDataSource、YDataSource、ZDataSource及refreshdata.可以做动画。
Matlab绘图
第二章绘图要画一个函数的图像,先是选取一堆x,求出相对应的y值,然后按照数值描点,接着用光滑的曲线把点连接起来。
和数学课讲的一样,在matlab中,我们画图也分为三步1. 建立一个x的点集;2. 根据函数关系式算出每个x对应y的点集;3. 将这些点用平滑的曲线连接起来。
例如要画y=sinx在[0,10]区间内的图像,首先我们要确定出x的区间>>x = [0:0.1:10];命令的意思是,产生一个数集,它从0开始,每次加0.1,一直加到10为止注意,命令后面的分号记得加上,否则matlab会把x的元素都打印出来,下面就是不加分号的后果:有了x的数集后,我们再根据函数关系式y=sinx得出y的点集>>y = sin(x);同样的,别忘了把分号加上抑制程序输出y的具体值,以及sin(x)的括号别忘了加到这里,我们已经把x和y确定下来,接下来只需用plot(x,y)命令即可绘制出图像>>plot(x,y)当然,如果你不定义y,而直接用一下嵌套命令也是可以的>>plot(x,sin(x))我们将x的增量变大一点,改为0到10,每次增幅为1,即>>x = [0:1:10];然后我们输入>>plot(x,y)我们会得到错误信息:原因是之前我们定义的y是由之前的x决定的,当x改变后,y依然没有改变,为了解决这个问题,我们要把y重新定义一遍,即命令要完整再输入一遍>>x = [0:1:10];>>y = sin(x);>>plot(x,y)然后程序会绘制出和我们预期相同的图像没错,我们将看到不光滑的曲线,这告诉我们,当使用plot(x,y)画图的时候x的增加幅度尽可能小一些,画出的图像才精确(跟数学里点越多图像越精确原理一样的)为了美化图像(有时是为了更清楚的辨析图像),我们经常要为图像加上网格,为坐标轴命名,改变曲线的颜色、形状这些命令2.1 加上网格我们使用grid on 命令我们这样书写:>>x=[0:0.1:10];y=sin(x);>>plot(x,y),grid on这样就画出了带网格的图像当然,也可以先画出没有网格的图像,再把窗口切回matlab命令输入窗口,输入grid on,这样图像就会加上网格,即>>x=[0:0.1:10];y=sin(x);>>plot(x,y)>>grid on2.2 为坐标轴命名为x坐标轴命名的命令是xlabel(),显然,y的就应该是ylabel()比如这里,我想让x命名为x,y命名为sinx,则如下输入:>>x=[0:0.1:10];y=sin(x);>>plot(x,y),xlabel(‘x’),ylabel(‘sinx’)注意,坐标轴的名字要用引号括起来,表示字符串当然也可以画图后再标坐标轴,即:>>x=[0:0.1:10];y=sin(x);>>plot(x,y)>>xlabel(‘x’)>>ylabel(‘sinx’)然后我们就可以看到坐标轴带命名的图像:2.3 绘制多条曲线绘制多条曲线有两种情况,一种是在同一个坐标面内画多条曲线,另一种是在一个面内画多个独立的曲线我们先讲第一种,假设我们要在一个坐标面内画sinx,cosx,tanx的图像先定义x,y>>x=[0:0.1:10]>>y1=sin(x);>>y2=cos(x);>>y3=tan(x);接着画图>>plot(x,y1)这时候函数绘制出了sinx的图像接着我们继续画>>plot(x,y2)我们会发现程序会把之前的sinx图像抹掉,然后绘制cosx的图像为了让他们同时存在,我们使用hold on命令,即画完一个图后,hold on,继续画当我们再加上tanx后会得到这个图像这是因为函数显示区间设置的原因,后面讲2.4 更改图像显示区间从楼上我们已经在一个图中画出了sinx、cosx、tanx的图像,但是我们知道tanx的值域是负无穷到正无穷,而sin,cos的值域是-1到1,这导致了我们基本上看不到sin,cos的图像,为了解决这个问题,我们只需用axis命令即可,命令格式为axis([xmin xmax ymin ymax])即括号内跟一个区间,四个数字分别是x的起点,x的终点,y的起点,y的终点。
使用matlab绘制三维图形的方法
使用matlab绘制三维图形的方法要使用MATLAB绘制三维图形,首先需要了解MATLAB中的三维绘图函数和绘图选项。
下面将介绍一些常用的绘制三维图形的方法。
1.绘制基本的三维图形要绘制基本的三维图形,可以使用以下函数:- plot3(函数:用于在三维坐标系中绘制线条。
- scatter3(函数:用于在三维坐标系中绘制散点图。
- surf(函数:用于绘制三维曲面图。
- mesh(函数:用于绘制三维网格图。
- bar3(函数:用于绘制三维条形图。
- contour3(函数:用于绘制三维等高线图。
例如,下面的代码演示了如何使用plot3(函数绘制一个三维线条图:```x = linspace(0, 2*pi, 100);y = sin(x);z = cos(x);plot3(x, y, z, 'LineWidth', 2);xlabel('X');ylabel('Y');zlabel('Z');title('3D Line Plot');```2.添加颜色和纹理在绘制三维图形时,可以使用颜色和纹理来增加图形的信息。
MATLAB 提供了一系列函数来处理颜色和纹理,如:- colormap(函数:用于设置颜色映射。
- caxis(函数:用于设置坐标轴范围。
- shading(函数:用于设置颜色插值方法。
- texturemap(函数:用于设置纹理映射方法。
例如,下面的代码展示了如何使用纹理映射来绘制一个球体:```[X, Y, Z] = sphere(50);C = colormap('jet');surface(X, Y, Z, 'FaceColor', 'texturemap', 'CData', C);axis equal;```3.绘制多个数据集要在同一张图中绘制多个数据集,可以使用hold on和hold off命令。
matlab画图大全
@绘图%二维画图x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,'r',x,z,'g')%ezplot符号函数(显函数、隐函数和参数方程)画图subplot(1,3,1)ezplot('cos(x)',[0,pi])subplot(1,3,2)ezplot('cos(t)^3','sin(t)^3',[0,2*pi])subplot(1,3,3)ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2])%在[-2,0.5],[0,2](坐标轴的范围)上画隐函数的图.1%fplot(‘fun’,lims) 表示绘制字符串fun指定的函数在lims=[xmin,xmax]的图形.%[1] fun必须是M文件的函数名或是独立变量为x的字符串.%[2] fplot函数不能画参数方程和隐函数图形,但在一个图上可以画多个图形.fplot('tanh',[-2,2],':')hold onfplot('[tanh(x),sin(x),cos(x)]',2*pi*[-1 1 -1 1])%对数坐标图 loglog(Y):表示 x、y坐标都是对数坐标系 semilogx(Y):表示 x坐标轴是对数坐标系%semilogy(…):表示y坐标轴是对数坐标系 plotyy:有两个y坐标轴,一个在左边,一个在右边x=0:.1:10;semilogy(x,10.^x)2x=logspace(-1,2);loglog(x,exp(x),'-s')%-s是方形标注符grid onx=[1:1:100];subplot(2,3,1);plot(x,x.^3);grid on;title 'plot-y=x^3';subplot(2,3,2);3loglog(x,x.^3);grid on;title 'loglog-logy=3logx';subplot(2,3,3);plotyy(x,x.^3,x,x);grid on;title 'plotyy-y=x^3,logy=3logx';subplot(2,3,4);semilogx(x,x.^3);grid on;title 'semilogx-y=3logx';subplot(2,3,5);semilogy(x,x.^3);grid on;title 'semilogy-logy=x^3';%三维绘图%空间曲线 plot3(x,y,z,s) x,y,z为n维向量,分别表示曲线上点集的横坐标、纵坐标、函数值 s为指定颜色、线形等t=0:pi/50:10*pi;plot3(sin(t),cos(t),t)%在区间[0,10π]画出参数曲线 x=sint,y=cost,z=t.rotate3d %旋转图形 在图形窗口上面的选项栏里有4x=-3:0.1:3;y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=(X+Y).^2;plot3(X,Y,Z)%其中x,y,z是都是m×n矩阵,其对应的每一列表示一条曲线.%%空间曲面 surf(x,y,z) x,y,z为数据矩阵.分别表示数据点的横坐标、纵坐标、函数值,画出数据点(x,y,z)表示的曲面x=-3:0.1:3;y=1:0.1:5;[X,Y]=meshgrid(x,y);%生成x,y的数据网格使曲面更光滑Z=(X+Y).^2;surf(X,Y,Z)shading flat%使图形变得光滑rotate3dshading interp%除去网格 只在surf函数下起作用 mesh不能5doc shading%shading flat; shading faceted(缺省); shading interp; shading (axes_handle,...)@%%mesh(x,y,z)x,y,z为数据矩阵.分别表示数据点的横坐标、纵坐标、函数值,画网格曲面(中间没有曲面)x=-3:0.1:3; y=1:0.1:5;[X,Y]=meshgrid(x,y);%在特定区域内生成网格Z=(X+Y).^2;mesh(X,Y,Z)6[X,Y]=meshgrid(-3:.125:3);Z=peaks(X,Y);subplot(1,2,1)meshz(X,Y,Z)subplot(1,2,2)surf(X,Y,Z)shading flat7%%图形处理%加栅格、图例和标注%grid off/onx=linspace(0,2*pi,30);y=sin(x);plot(x,y)xlabel('自变量X')ylabel('函数Y')title('示意图')grid on8% 命令gtext(‘string’)用鼠标放置标注在现有的图上. x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,x,z)gtext('sin(x)');gtext('cos(x)');9% 命令gtext(‘string’)用鼠标放置标注在现有的图上. x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,x,z)gtext('sin(x)');gtext('cos(x)');10%图形保持 hold on/offx=linspace(0,2*pi,30);z=cos(x);y=sin(x);plot(x,z,:)%“:”表示虚线hold onplot(x,y)zoom on%放大命令11%figure(h)新建h窗口,激活图形使其可见,并把它置于其它图形之上%割窗口 subplotx=linspace(0,2*pi,100);y=sin(x); z=cos(x);a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps)subplot(2,2,1);plot(x,y),title('sin(x)')subplot(2,2,2);plot(x,z),title('cos(x)')subplot(2,2,3);plot(x,a),title('sin(x)cos(x)')subplot(2,2,4);plot(x,b),title('sin(x)/cos(x)')12%缩放模式:zoom on/off%改变视角:view(a,b)a为方位角,b为仰角;view([x,y,z])x,y,z为笛卡尔坐标x=-3:0.1:3; y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=(X+Y).^2;subplot(2,2,1); mesh(X,Y,Z)subplot(2,2,2);mesh(X,Y,Z);view(50,-34)subplot(2,2,3);mesh(X,Y,Z);view(-60,70)subplot(2,2,4);mesh(X,Y,Z);view([0,1,1])13%%制作动画 Moviein(),getframe,movie():函数Moviein()产生一个帧矩阵来存放动画中的帧;函数getframe对当前的图像进行快照;函数movie()按顺序回放各帧.[x,y,z]=peaks(30);surf(x,y,z)axis([-3 3 -3 3 -10 10])axis offshading interpcolormap(hot)m=moviein(360);for i=1:360view(-37.5+1*(i-1),30)m(:,i)=getframe;endmovie(m)14%特殊图形%1. 极坐标图:polar (theta,rho,s)theta=linspace(0,2*pi),rho=sin(2*theta).*cos(2*theta);polar(theta,rho,'g')title('Polar plot of sin(2*theta).*cos(2*theta)');%2. 散点图: scatter(X,Y,S,C)在向量X和Y的指定位置显示彩色圈.X和Y必须维数相同.load seamountscatter(x,y,5,z)15%3. 平面等值线图: contour(x,y,z,n) 绘制n个等值线的二维等值线图[X,Y]=meshgrid(-2:.2:2,-2:.2:3);Z=X.*exp(-X.^2-Y.^2);[C,h]=contour(X,Y,Z);clabel(C,h)colormap cool16%空间等值线图:contour3(x,y,z,n)[x,y,z]=peaks;subplot(1,2,1)contour3(x,y,z,16,'s')grid, xlabel('x-axis'), ylabel('y-axis') zlabel('z-axis')title('contour3 of peaks');subplot(1,2,2)contour(x,y,z,16,'s');grid, xlabel('x-axis'), ylabel('y-axis') title('contour of peaks');17%三维散点图2. 三维散点图 scatter3(X,Y,Z,S,C) s为size c为color 在向量X,Y和Z指定的位置上显示彩色圆圈.向量X,Y和Z的维数必须相同. [x,y,z]=sphere(16);X=[x(:)*.5 x(:)*.75 x(:)];Y=[y(:)*.5 y(:)*.75 y(:)];Z=[z(:)*.5 z(:)*.75 z(:)];S=repmat([1 .75 .5]*10,numel(x),1);C=repmat([1 2 3],numel(x),1);scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled'),view(-60,60)18%要在某山区方圆大约27km2范围内修建一条公路,从山脚出发经过一个居民区,再到达一个矿区.横向纵向分别每隔400m测量一次,得到一些地点的高程:(平面区域0≤x≤ 5600,0≤y≤4800),需作出该山区的地貌图和等高线图. x=0:400:5600;y=0:400:4800;z=[370 470 550 600 670 690 670 620 580 450 400 300 100 150 250;...510 620 730 800 850 870 850 780 720 650 500 200 300 350 320;...650 760 880 970 1020 1050 1020 830 900 700 300 500 550 480 350;...740 880 1080 1130 1250 1280 1230 1040 900 500 700 780 750 650 550;...830 980 1180 1320 1450 1420 1400 1300 700 900 850 840 380 780 750;...880 1060 1230 1390 1500 1500 1400 900 1100 1060 950 870 900 930 950;...910 1090 1270 1500 1200 1100 1350 1450 1200 1150 1010 880 1000 1050 1100;...950 1190 1370 1500 1200 1100 1550 1600 1550 1380 1070 900 1050 1150 1200;...1430 1430 1460 1500 1550 1600 1550 1600 1600 1600 1550 1500 1500 1550 1550;...1420 1430 1450 1480 1500 1550 1510 1430 1300 1200 980 850 750 550 500;...1380 1410 1430 1450 1470 1320 1280 1200 1080 940 780 620 460 370 350;...1370 1390 1410 1430 1440 1140 1110 1050 950 820 690 540 380 300 210;...1350 1370 1390 1400 1410 960 940 880 800 690 570 430 290 210 150];meshz(x,y,z)xlabel('X'),ylabel('Y'),zlabel('Z')%插值使曲面光滑[x1,y1]=meshgrid(0:10:5600,0:10:4800);z1=griddata(x,y,z,x1,y1,'cubic');figure(2),surf(x1,y1,z1)shading flatfigure(3)contour(x,y,z)19figure(4)contour3(x,y,z)202122。
MATLAB绘图总结
一、二维数据曲线图1、MATLAB 最常用的画二维图形的命令是plot, plor 函数的基本调用格式为:plot(x.y)其 中x 和y 为长度相同的向豈,分别用于存储x 坐标和y 坐标数据。
例 1:在[0,2 7T ]画 Sill(.v) 0生成的图形如下图1所示:图1说明:(1) plot 函数的输入参数是矩阵形式时A 、 当x 是向量,y 是有一维与x 同维的矩阵时,则绘制出多根不同颜色的曲线。
曲线 条数等于y 矩阵的另一维数,x 被作为这些曲线共同的横坐标。
B 、 当x,y 是同维矩阵时.则以x,y 对应列元素为横、纵坐标分别绘制曲线,曲线条数 等于矩阵的列数。
C 、对只包含一个输入参数的plot 函数,当输入参数是实矩阵时,则按列绘制每列元素 值相对其卜.标的曲线,曲线条数等于输入参数矩阵的列数:当输入参数是复数矩阵时,则按 列分别以元素实部和虚部为横、纵坐标绘制多条曲线。
(2) 含多个输入参数的plot 函数 调用格式为:plot(xl,yl.x2,y2,"--.xn.yn)A, 当输入参数都为向量时,xl 和yl, x2和y2, xn 和yn 分别组成一组向量对,每一 组向量对的长度可以不同。
每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制岀 多条曲线。
B.当输入参数有矩阵形式时,配对的x_y 按对应列兀素为横、纵坐标分别绘制曲线,曲线 条数等于矩阵的列数。
例2:如卜所示的程序:x 1 =liuspace(0,2 *pi,l 00);x2=luispace(0.3 *pi,l 00);x3=linspace(0.4*pi,100);yl=sin(xl); y2=l+sin(x2);y3=2+sin(x3);x=[xl;x2;x3]';0.80.60.40.2-0.2-0.4-0.6-0.8y=[yl;y2;y3「plot(x,y,xl,yl-l) 其图形如图2所示:图2(3)plot函数最简单的调用格式是只包含一个输入参数:plot(x),在这种情况卜,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一•条连续曲线,这实际上是绘制折线图。
MATLAB作图(超详细)
2020/5/31
数学建模
3. 对数坐标图
在很多工程问题中,通过对数据进行对数转换可以 更清晰地看出数据的某些特征,在对数坐标系中描绘数 据点的曲线,可以直接地表现对数转换.对数转换有双对 数坐标转换和单轴对数坐标转换两种.用loglog函数 可以实现双对数坐标转换,用semilogx和semilogy 函数可以实现单轴对数坐标转换. loglog(Y) 表示 x、y坐标都是对数坐标系
单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为 中心的图形放大2倍;单击鼠标右键,则缩小2倍.
zoom off 关闭缩放模式
grid on
%标注格栅
MATLAB liti37
例 创建一个简单的半对数坐标图. 解 输入命令:
x=0:.1:10;
semilogy(x,10.^x)
MATLAB liti38
例 绘制y=x3的函数图、对数坐标图、半对数坐标图.
2020/5/31
MATLAB liti22 数学建模
返回
三维图形 1. 空间曲线 2. 空间曲面
semilogx(Y) 表示 x坐标轴是对数坐标系
semilogy(…) 表示y坐标轴是对数坐标系
plotyy 有两个y坐标轴,一个在左边,一个在右边
2020/5/31
数学建模
例 用方形标记创建一个简单的loglog.
解 输入命令:
x=logspace(-1,2);
loglog(x,exp(x),’-s’)
数学建模
返回
2. 定制坐标 Axis([xmin xmax ymin ymax zmin zmax])定制图形坐标
x、y、z的最大、最小值
Axis
将坐标轴返回到自动缺省值
matlab画图大全[资料]
matlab绘图大全Matlab绘图系列之高级绘图一、目录1.彗星图二维彗星图三维彗星图2.帧动画3.程序动画4.色图变换5.Voronoi图和三角剖分Voronoi图三角剖分6.四面体7.彩带图彩带图三维流彩带图8.伪彩图9.切片图切片图切片轮廓线图10.轮廓图显示轮廓线显示围裙瀑布效果带光照模式的阴影图11.函数绘图轮廓线、网格图、曲面图、轮廓网格图轮廓曲面图、二维曲线、极坐标曲线图、自定义函数12.三维图形控制视点灯光效果色彩控制二、图形示例1.彗星图二维彗星图t=0:.01:2*pi;x=cos(2*t).*(cos(t).^2);y=sin(2*t).*(sin(t).^2);comet(x,y);title('二维彗星轨迹图')hold onplot(x,y)三维彗星图a=12;b=9;T0=2*pi;%T0是轨道的周期T=5*T0;dt=pi/100;t=[0:dt:T]';f=sqrt(a^2-b^2);%地球与另一焦点的距离th=12.5*pi/180;%未经轨道与x-y平面的倾角E=exp(-t/20);%轨道收缩率x=E.*(a*cos(t)-f);y=E.*(b*cos(th)*sin(t));z=E.*(b*sin(th)*sin(t));plot3(x,y,z,'g')%画全程轨线hold on,sphere(20);%画地球axis offtitle('卫星返回地球示例')x1=-18*T0;x2=6*T0;y1=-12*T0;y2=12*T0;z1=-6*T0;z2=6*T0;axis([x1 x2 y1 y2 z1 z2])% axis([-15 10 -15 10 -10 10])axis equalcomet3(x,y,z,0.02);%画运动轨线hold off2.帧动画Z=peaks;surf(Z)%绘制网格表面图axis tightset(gca,'nextplot','replacechildren');%设定axis覆盖重画模式title('帧动画播放示例')for j=1:20surf(sin(2*pi*j/20)*Z,Z)%重新绘制网格表面图,这里后面一个Z当成了颜色矩阵F(j)=getframe;%创建帧endmovie(F,20)%播放动画20次3.程序动画t=0:pi/50:10*pii=1;h=plot3(sin(t(i)),cos(t(i)),t(i),'*','erasemode','none');%设定擦除模式grid onaxis([-2 2 -2 2 -1 10*pi])title('程序动画示例')for i=2:length(t)set(h,'xdata',sin(t(i)),'ydata',cos(t(i)),'zdata',t(i));drawnowpause(0.01)end4.色图变换load spineimage(X)colormap coolspinmap(10)5.Voronoi图和三角剖分Voronoi图rand('state',5)x=rand(1,10);y=rand(1,10);subplot(131)voronoi(x,y);%绘制voronoi图形axis equalaxis([-0.2 1.6 -0.5 2.5])subplot(132)[vx,vy]=voronoi(x,y);plot(x,y,'r+',vx,vy,'b-');%应用返回值绘制axis equalaxis([-0.2 1.6 -0.5 2.5])subplot(133)rand('state',5);x=rand(10,2);[v,c]=voronoin(x);%返回值v参数维voronoi顶点矩阵,返回值c 参数为voronoi元胞数组for i=1:length(c)if all(c{i}~=1)patch(v(c{i},1),v(c{i},2),i);%应用色图iendendaxis equalaxis([-0.2 1.6 -0.5 2.5])box on三角剖分[x,y]=meshgrid(1:15,1:15);tri=delaunay(x,y);z=peaks(15);trimesh(tri,x,y,z)6.四面体d=[-1 1];[x,y,z]=meshgrid(d,d,d);%定义一个立方体x=[x(:);0];y=[y(:);0];z=[z(:);0];%[x,y,z]分别为加上中心的立方体顶点X=[x(:) y(:) z(:)];Tes=delaunayn(X);%返回m×n的数组值tetramesh(Tes,X);%绘制四面体图camorbit(20,0);%旋转摄像目标位置7.彩带图彩带图[x,y]=meshgrid(-3:.5:3,-3:.1:3);z=peaks(x,y);ribbon(y,z)三维流彩带图load wind%打开保存的数据lims=[100.64 116.67 17.25 28.75 -0.02 6.86];%定义坐标轴范围[x,y,z,u,v,w]=subvolume(x,y,z,u,v,w,lims);%lims来定义数据子集[sx sy sz]=meshgrid(110,20:5:30,1:5);%定义网格点verts=stream3(x,y,z,u,v,w,sx,sy,sz,.5);%计算彩带顶点cav=curl(x,y,z,u,v,w);%计算卷曲角速度wind_speed=sqrt(u.^2+v.^2+w.^2);%计算流速h=streamribbon(verts,x,y,z,cav,wind_speed,2);%绘制流彩带图view(3)8.伪彩图n=6%定义轮数r=(0:n)'/n;%定义轮的半径theta=pi*(-n:n)/n;%定义轮的扇区角X=r*cos(theta);Y=r*sin(theta);%定义网格顶点C=r*cos(2*theta);%定义色图pcolor(X,Y,C)%绘制伪彩图axis equal tight9.切片图切片图[x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);v = x.*exp(-x.^2-y.^2-z.^2);xslice = [-1.2,.8,2]; yslice = 2; zslice = [-2,0];slice(x,y,z,v,xslice,yslice,zslice)colormap hsv切片轮廓线图[x y z v]=flow;%打开水流数据h=contourslice(x,y,z,v,[1:9],[],[0],linspace(-8,2,10));%切片轮廓线view([-12 30])10.轮廓图显示轮廓线[x,y,z]=peaks;subplot(1,2,1)meshc(x,y,z);%同时画出网格图与轮廓线title('meshc 网格图与轮廓线')axis([-inf inf -inf inf -inf inf]);subplot(1,2,2)surfc(x,y,z);%同时画出曲面图与轮廓线title('surfc 曲面图与轮廓线')axis([-inf inf -inf inf -inf inf]);显示围裙[x y z]=peaks;meshz(x,y,z);瀑布效果[X,Y,Z]=peaks(30);waterfall(X,Y,Z)带光照模式的阴影图[x,y]=meshgrid(-3:1/8:3);z=peaks(x,y);surfl(x,y,z);shading interp%着色处理colormap(gray);%灰度处理axis([-3 3 -3 3 -8 8])11.函数绘图轮廓线、网格图、曲面图、轮廓网格图%图1绘制轮廓线、网格图、曲面图、轮廓网格图subplot(221)f=['3*(1-x)^2*exp(-(x^2)-(y+1)^2)-10*(x/5-x^3-y^5)*exp(-x^2-y^2)-1/3*exp(-(x+1)^2-y^2)'];%定义双变量x、y的函数式ezcontour(f,[-3,3],49)%x、y为[-3 3],网格为49×49subplot(222)ezmesh('sqrt(x^2+y^2)');subplot(223)ezsurf('real(atan(x+i*y))')%经过滤波,如果相同数据surf绘图没有滤波subplot(224)ezmeshc('y/(1+x^2+y^2)',[-5,5,-2*pi,2*pi])%x、y的数值范围分别为[-5 5]、[-2*pi 2*pi]轮廓曲面图、二维曲线、极坐标曲线图、自定义函数%图2绘制轮廓曲面图、二维曲线、极坐标曲线图、自定义函数figure(2)subplot(221)ezsurfc('sin(u)*sin(v)')subplot(222)ezplot('x^2-y^4');subplot(223)ezpolar('1+cos(t)')subplot(224)fplot('myfun',[-20 20])function Y=myfun(x)Y(:,1)=200*sin(x(:))./x(:);Y(:,2)=x(:).^2;三维曲线图%绘制三维曲线图figure(3)ezplot3('sin(t)','cos(t)','t',[0,6*pi])12.三维图形控制视点View图形旋转subplot(121)surf(peaks);title('旋转前图形');subplot(122)h=surf(peaks);rotate(h,[1 0 1],180)title('旋转后图形');灯光效果%灯光效果(1)camlight(2)light(3)lightangle(4)lighting(5)materialsphere;camlight色彩控制%色彩控制(1)缺省设置colordef、whitebg(2)色图colormap(3)浓淡处理shadingload flujetimage(X)colormap(jet)subplot(131)sphere(16)axis squareshading flattitle('Flat Shading')subplot(132)sphere(16)axis squareshading facetedtitle('Faceted Shading') subplot(133)sphere(16)axis squareshading interptitle('Interpolated Shading')。
matlabplot函数用法
matlabplot函数用法
matlabplot函数是MATLAB中用于绘制图形的函数,它可以绘制各种类型的图形,包括线图、散点图、柱状图等等。
使用matlabplot 函数,可以轻松实现数据可视化,方便进行数据的分析和理解。
matlabplot函数的基本用法如下:
1.绘制线图:
plot(x,y,'LineStyle','Color','Marker')
其中,x和y是数据的横纵坐标,LineStyle指定线条的风格,Color指定线条的颜色,Marker指定数据点的标记类型。
2.绘制散点图:
scatter(x,y,'Marker')
其中,x和y是数据的横纵坐标,Marker指定数据点的标记类型。
3.绘制柱状图:
bar(x,y)
其中,x和y是数据的横纵坐标。
除了以上三种基本图形外,matlabplot函数还支持绘制其他类型的图形,例如饼图、曲线图、面积图等等。
在绘制图形时,可以通过设置各种参数调整图形的样式,例如设置图形的标题、坐标轴标签、坐标轴范围等等。
同时,matlabplot函数也支持同时绘制多个图形,并且可以将多个图形合并在一张图中进行展示。
总之,matlabplot函数是MATLAB中非常重要的一个函数,它能够帮助用户完成各种类型的数据可视化工作。
通过灵活使用
matlabplot函数,用户可以轻松实现数据的可视化分析,提高数据分析的效率和准确性。
MATLAB画三维图
MATLAB画三维函数图下面将这几天所做的图像及程序小记一下(望大虾指教)一、螺旋线1.静态螺旋线a=0:0.1:20*pi;h=plot3(a.*cos(a),a.*sin(a),2.*a,'b','linewidth',2);axis([-50,50,-50,50,0,150]);grid onset(h,'erasemode','none','markersize',22);xlabel('x轴');ylabel('y轴');zlabel('z轴');title('静态螺旋线');2.动态螺旋线t=0:0.1:10*pi;i=1;h=plot3(sin(t(i)),cos(t(i)),t(i),'*','erasemode','none'); grid onaxis([-2 2 -2 2 0 35])for i=2:length(t)set(h,'xdata',sin(t(i)),'ydata',cos(t(i)),'zdata',t(i));drawnowpause(0.01)endtitle('动态螺旋线');(图略)3.圆柱螺旋线t=0:0.1:10*pi;x=r.*cos(t);y=r.*sin(t);z=t;plot3(x,y,z,'h','linewidth',2);grid onaxis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴');title('圆柱螺旋线')二、旋转抛物面b=0:0.2:2*pi;[X,Y]=meshgrid(-6:0.1:6);Z=(X.^2+Y.^2)./4;meshc(X,Y,Z);axis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴'); title('旋转抛物面')或直接用:ezsurfc('(X.^2+Y.^2)./4')三、椭圆柱面load clownezsurf('(2*cos(u))','4*sin(u)','v',[0,2*pi,0,2*pi])view(-105,40) %视角处理shading interp %灯光处理colormap(map) %颜色处理grid on %添加网格线axis equal %使x,y轴比例一致xlabel('x轴');ylabel('y轴');zlabel('z轴'); %添加坐标轴说明title('椭圆柱面') %添加标题四、椭圆抛物面b=0:0.2:2*pi;[X,Y]=meshgrid(-6:0.1:6);Z=X.^2./9+Y.^2./4;meshc(X,Y,Z);axis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴'); title('椭圆抛物面')或直接用:ezsurfc('X.^2./9+Y.^2./4')五、'双叶双曲面ezsurf('8*tan(u)*cos(v)','8.*tan(u)*sin(v)','2.*sec(u)',[-pi./2,3*pi./2,0,2*pi]) axis equalgrid onaxis squarexlabel('x轴');ylabel('y轴');zlabel('z轴');title('双叶双曲面')六、双曲柱面load clownezsurf('2*sec(u)','2*tan(u)','v',[-pi/2,pi/2,-3*pi,3*pi]) hold on %在原来的图上继续作图ezsurf('2*sec(u)','2*tan(u)','v',[pi/2,3*pi/2,-3*pi,3*pi]) colormap(map)shading interpview(-15,30)axis equalgrid onaxis equalxlabel('x轴');ylabel('y轴');zlabel('z轴');title('双曲柱面')七、双曲抛物面(马鞍面)[X,Y]=meshgrid(-7:0.1:7);Z=X.^2./8-Y.^2./6;meshc(X,Y,Z);view(85,20)axis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴'); title('双曲抛物面')或直接用:ezsurfc('X.^2./8-Y.^2./6')八、抛物柱面[X,Y]=meshgrid(-7:0.1:7);Z=Y.^2./8;h=mesh(Z);rotate(h,[1 0 1],180) %旋转处理%axis([-8,8,-8,8,-2,6]);axis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴'); title('抛物柱面')或直接用:ezsurfc('Y.^2./8')九、环面ezmesh('(5+2*cos(u))*cos(v)','(5+2*cos(u))*sin(v)','2*sin(u)',[0,2*pi,0,2*pi]) axis equalgrid onxlabel('x轴');ylabel('y轴');zlabel('z轴');title('环面')十、椭球ezsurfc('(5*cos(u))*sin(v)','(3*sin(u))*sin(v)','4*cos(v)',[0,2*pi,0,2*pi]) axis equalgrid onxlabel('x轴');ylabel('y轴');zlabel('z轴');title('椭球')十一、单叶双曲面ezsurf('4*sec(u)*cos(v)','2.*sec(u)*sin(v)','3.*tan(u)',[-pi./2,pi./2,0,2*pi]) axis equalgrid onxlabel('x轴');ylabel('y轴');zlabel('z轴');title('单叶双曲面')十二、旋转单叶双曲面load clownezsurf('8*sec(u)*cos(v)','8.*sec(u)*sin(v)','2.*tan(u)',[-pi./2,pi./2,0,2*pi]) colormap(map)view(-175,30)%alpha(.2) %透明处理axis equalgrid onaxis squarexlabel('x轴');ylabel('y轴');zlabel('z轴');title('旋转单叶双曲面')十三、圆柱面subplot(1,2,1)ezsurf('(2*cos(u))','2*sin(u)','v',[0,2*pi,0,2*pi]) grid onshading interpaxis equalxlabel('x轴');ylabel('y轴');zlabel('z轴');title('圆柱面')subplot(1,2,2)cylinder(30)shading interpaxis squaretitle('调用cylinder函数所得圆柱面')下面给出用colormap()改变图像颜色的例子:(用了灯光效果"shading interp") colormap(); %hot/cool/copper/gray/hsv/spring/summer/winter...colormap(hsv)colormap(hot)colormap(gray)colormap(cool)colormap(copper)下面做了旋转("view([ ])")、灯光(“shading interp”)、透明(“alpha()”)处理:。
用matlab的plot画图的几种用法
用matlab的plot画图的几种用法1、设置图线宽度set( haxis, 'LineWidth', 1.0 ); ----这是 set函数, 'LineWidth'就是axis的线宽度属性,其值默认为0.5,这里可以改成1.0了。
2、调整坐标轴上下限set( haxis, 'XLim', [ 2 20 ] ); set( haxis, 'YLim', [ 2 20 ] );---调整坐标轴上下限的。
Z轴,那同理set( haxis, 'ZLim', [ Zmin, %% Zmax ] )3、调整坐标轴上的标注数字set( haxis, 'XTick', 2:1:20 ); set( haxis, 'YTick', 2:1:20 );----是调整坐标轴上那些标注出来的数字了,2:1:20意思是从2开始,每隔1标注一次,直到20为止。
注意这里的2, 20最好和上面相应的XLim, YLim最大最小值一致。
4、MATLAB中提供的线型及颜色属性:如:plot(x1,y1,'r-'),表示,用红色实线画出图形5、图形标题、轴标注、图形说明的设置图名标注可用:title('xx关系图')axis([0,22,0,3]);---显示范围为:X轴从0-22, Y轴从0-3显示。
xlabel('电压(V)'),ylabel('电流(A)') 分别表示在X轴下标示电压(V),Y轴旁标示“电流(A)”legend('A曲线 ','B曲线','C曲线') 用于说明图中的曲线的说明,顺序和plot(x1,y1,x2,y2,x3,y3)的曲线1、2、3相同即可。
MATLAB中绘图命令介绍
MATLAB中绘图命令介绍本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制。
plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x 及y座标。
下例可画出一条正弦曲线:close all;x=linspace(0, 2*pi, 100); % 100个点的x坐标y=sin(x); % 对应的y坐标plot(x,y);小整理:MATLAB基本绘图函数plot: x轴与y轴均为线性刻度(Linear scale)loglog: x轴与y轴均为对数刻度(Logarithmic scale)semilogx: x轴为对数刻度,y轴为线性刻度semilogy: x轴为线性刻度,y轴为对数刻度若要画出多条曲线,只需将座标对依次放入plot函数即可:hold on 保持当前图形,以便继续画图到当前坐标窗口hold off 释放当前图形窗口title(’图形名称’)(都放在单引号内)xlabel(’x轴说明’)ylabel(’y轴说明’)text(x,y,’图形说明’)legend(’图例1’,’图例2’,…)plot(x, sin(x), x, cos(x));若要改变颜色,在座标对後面加上相关字串即可:plot(x, sin(x), 'c', x, cos(x), 'g');若要同时改变颜色及图线型态,也是在座标对後面加上相关字串即可:plot(x, sin(x), 'co', x, cos(x), 'g*');小整理:plot绘图函数的叁数字元、颜色元、图线型态,y 黄色 .点k 黑色o 圆w 白色x xb 蓝色++g 绿色* *r 红色- 实线c 亮青色: 点线m锰紫色-. 点虚线-- 虚线plot3 三维曲线作图图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围: axis([0, 6, -1.2, 1.2]);axis函数的功能丰富,其常用的用法有:axis equal :纵横坐标轴采用等长刻度axis square:产生正方形坐标系(默认为矩形)axis auto:使用默认设置axis off:取消坐标轴axis on :显示坐标轴此外,MATLAB也可对图形加上各种注解与处理:xlabel('Input Value'); % x轴注解ylabel('Function Value'); % y轴注解title('Two Trigonometric Functions'); % 图形标题legend('y = sin(x)','y = cos(x)'); % 图形注解grid on; % 显示格线我们可用subplot来同时画出数个小图形於同一个视窗之中:subplot(2,2,1); plot(x, sin(x));subplot(2,2,2); plot(x, cos(x));subplot(2,2,3); plot(x, sinh(x));subplot(2,2,4); plot(x, cosh(x));MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下表。
第4章 MATLAB 绘图
4.图例标注
菜单Insert---legend 命令legend('string1','string2',...)
4.1.6 一个图形窗口多个子图的绘制
subplot(m,n,i)把图形窗口分为m*n个子图,并在第i个子图 中画图 例 4-11 在同一坐标系中画出两个函数,y=cos2x,y=sinxsin6x 的图形,自变量的范围为0≤ x ≤π,函数y=cos2x用红色星号,函数 y=sinxsin6x用蓝色实线,并加图名、坐标轴、图形、图例标注 解 MATLAB命令为: x=0:pi/50:pi; y1=cos(2*x);y2=sin(x).*sin(6*x); plot(x,y1,'r*',x,y2,'b-'),grid on title(‘曲线y1=cos(2x)曲线y2=sin(x)sin(6x)') xlabel('x轴'),ylabel('y轴') gtext('y1=cos(2x)'),gtext('y2=sin(x)sin(6x)') legend('y1=cos(2x)','y2=sin(x)sin(6x)')
group 8 6 4 2 0 10 30 20
stack
1
2
3
4 stack
5
6
0
1
2
3
4 stack
5
6
8 6 5 4 3 2 1 0 10 20 30 6 4 2 0
其它特殊绘图略(见教科书 )
1
2
3
4
5
6
4.3 三维曲线绘图
matlab画图命令
Matlab绘图强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。
此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。
这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。
本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。
一.二维绘图二维图形是将平面坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。
二维图形的绘制是其他绘图操作的基础。
一.绘制二维曲线的基本函数在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。
1.plot函数的基本用法plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。
plot函数的应用格式plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。
例51 在[0 , 2pi]区间,绘制曲线程序如下:在命令窗口中输入以下命令>> x=0:pi/100:2*pi;>> y=2*exp(-0.5*x).*sin(2*pi*x);>> plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。
例52 绘制曲线这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:>> t=-pi:pi/100:pi;>> x=t.*cos(3*t);>> y=t.*sin(t).*sin(t);>> plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。
matlab画图中线型及颜色设置
matlab画图中线型及颜色设置MATLAB受到控制界广泛接受的一个重要原因是因为它提供了方便的绘图功能.本章主要介绍2维图形对象的生成函数及图形控制函数的使用方法,还将简单地介绍一些图形的修饰与标注函数及操作和控制MATLAB各种图形对象的方法.第一节图形窗口与坐标系一.图形窗口1.MATLAB在图形窗口中绘制或输出图形,因此图形窗口就像一张绘图纸.2. 在MATLAB下,每一个图形窗口有唯一的一个序号h,称为该图形窗口的句柄.MATLAB通过管理图形窗口的句柄来管理图形窗口;3.当前窗口句柄可以由MATLAB函数gcf获得;4.在任何时刻,只有唯一的一个窗口是当前的图形窗口(活跃窗口);figure(h)----将句柄为h的窗口设置为当前窗口;5.打开图形窗口的方法有三种:1)调用绘图函数时自动打开;2)用File---New---Figure新建;3)figure命令打开,close命令关闭.在运行绘图程序前若已打开图形窗口,则绘图函数不再打开,而直接利用已打开的图形窗口;若运行程序前已存在多个图形窗口,并且没有指定哪个窗口为当前窗口时,则以最后使用过的窗口为当前窗口输出图形.6.窗口中的图形打印:用图形窗口的File菜单中的Print项.7.可以在图形窗口中设置图形对象的参数.具体方法是在图形窗口的Edit菜单中选择Properties项,打开图形对象的参数设置窗口,可以设置对象的属性.二.坐标系1.一个图形必须有其定位系统,即坐标系;2.在一个图形窗口中可以有多个坐标系,但只有一个当前的坐标系;3.每个坐标系都有唯一的标识符,即句柄值;4.当前坐标系句柄可以由 MATLAB函数gca获得;5.使某个句柄标识的坐标系成为当前坐标系,可用如下函数:axes(h) h为指定坐标系句柄值.6.一些有关坐标轴的函数:1)定义坐标范围:一般MATLAB自动定义坐标范围,如用户认为设定的不合适,可用:axis([Xmin, Xmax, Ymin, Ymax]) 来重新设定;292) 坐标轴控制:MATLAB的缺省方式是在绘图时,将所在的坐标系也画出来,为隐去坐标系,可用axis off;axis on则显示坐标轴(缺省值).3)通常MATLAB的坐标系是长方形,长宽比例大约是 4:3,为了得到一个正方形的坐标系可用:axis square4)坐标系横纵轴的比例是自动设置的,比例可能不一样,要得到相同比例的坐标系,可用:axis equal第二节二维图形的绘制一. plot函数plot 函数是最基本的绘图函数,其基本的调用格式为:1.plot(y)------绘制向量y对应于其元素序数的二维曲线图, 如果y为复数向量,则绘制虚部对于实部的二维曲线图.例:绘制单矢量曲线图.y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20];plot(y)由于y矢量有10个元素,x坐标自动定义为[1 2 3 4 5 6 7 8 9 10].图形为: 1234567891024681012141618202.plot(x,y)------ 绘制由x,y所确定的曲线.1)x,y是两组向量,且它们的长度相等,则plot(x,y)可以直观地绘出以x为横坐标,y为纵坐标的图形.如:画正弦曲线:t=0:0.1:2*pi;y=sin(t);plot(t,y)2)当 plot(x,y)中,x是向量,y是矩阵时,则绘制y矩阵中各行或列对应于30向量x的曲线.如果y阵中行的长度与x向量的长度相同,则以y的行数据作为一组绘图数据;如果y阵中列的长度与x向量的长度相同,则以y的列数据作为一组绘图数据;如果y阵中行, 列均与x向量的长度相同,则以y的每列数据作为一组绘图数据.例:下面的程序可同时绘出三条曲线.MATLAB在绘制多条曲线时,会按照一定的规律自动变化每条曲线的的颜色.x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(2,:)=0.3*sin(x);plot(x,y)或者还可以这样用:x=0:pi/50:2*pi;y=[ sin(x); 0.6*sin(x); 0.3*sin(x)];plot(x,y)01234567-1-0.8-0.6-0.4-0.20.20.40.60.813) 如果x,y是同样大小的矩阵,则plot(x,y)绘出y中各列相应于x中各列的图形.例:x(1,:)=0:pi/50:2*pi;x(2,:)=pi/4:pi/50:2*pi+pi/4;x(3,:)=pi/2:pi/50:2*pi+pi/2;y(1,:)=sin(x(1,:));y(2,:)=0.6*sin(x(2,:));y(3,:)=0.3*sin(x(3,:));plot(x,y)x=x';y=y';figure31plot(x,y)在这个例子中,x------ 3x101,y------3x101,所以第一个plot按列画出101条曲线,每条3个点;而x'------101x3,y'------ 101x3,所以第二个plot 按列画出3条曲线,每条101个点.012345678-1-0.8-0.6-0.4-0.20.20.40.60.81012345678-1-0.8-0.6-0.4-0.20.20.40.60.813. 多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……)上面的plot格式中,选项是指为了区分多条画出曲线的颜色,线型及标记点而设定的曲线的属性.MATLAB在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来.这些选项如下表所示:各种颜色属性选项选项意义选项意义'r' 红色 'm' 粉红'g' 绿色 'c' 青色32'b' 兰色 'w' 白色'y' 黄色 'k' 黑色各种线型属性选项选项意义选项意义'-' 实线 '--' 虚线':' 点线 '-.' 点划线各种标记点属性选项选项意义选项意义'.' 用点号绘制各数据点 '^' 用上三角绘制各数据点'+' 用'+'号绘制各数据点 'v' 用下三角绘制各数据点'*' 用'*'号绘制各数据点 '>' 用右三角绘制各数据点' .' 用'.'号绘制各数据点 '<' 用左三角绘制各数据点's'或squar 用正方形绘制各数据点'p' 用五角星绘制各数据点'd'或diamond用菱形绘制各数据点 'h' 用六角星绘制各数据点这些选项可以连在一起用,如:'-.g'表示绘制绿色的点划线,'g+'表示用绿色的 '+'号绘制曲线.注意:1)表示属性的符号必须放在同一个字符串中;2)可同时指定2~3个属性;3) 与先后顺序无关;4)指定的属性中,同一种属性不能有两个以上.例:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r',t,y2, ':g',t,y3, '*b')该程序还可以按下面的方式写:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r')hold onplot(t,y2, ':g')plot(t,y3, '*b')hold off注:在MATLAB中,如画图前已有打开的图形窗口,则再画图系统将自动擦掉坐标系中已有的图形对象,但设置了hold on后,可以保持坐标系中已绘出的图形.3301234567-1-0.8-0.6-0.4-0.20.20.40.60.81图(a)还可以进一步设置包括线的宽度(LineWidth),标记点的边缘颜色(MarkerEdgeColor),填充颜色 (MarkerFaceColor)及标记点的大小(MarkerSize)等其它绘图属性.例:设置绘图线的线型,颜色,宽度,标记点的颜色及大小.t=0:pi/20:pi;y=sin(4*t).*sin(t)/2;plot(t,y,'-bs','LineWidth',2,... %设置线的宽度为2'MarkerEdgeColor','k',... %设置标记点边缘颜色为黑色'MarkerFaceColor','y',... %设置标记点填充颜色为黄色'MarkerSize',10) %设置标记点的尺寸为10绘出图形如下:00.511.522.533.5-0.5-0.4 -0.3-0.2-0.10.10.20.30.40.5344. 双Y轴绘图:plotyy()函数.其调用格式为:plotyy(x1,y1,x2,y2)------ 绘制由x1,y1和x2,y2确定的两组曲线,其中x1, y1的坐标轴在图形窗口的左侧,x2,y2的坐标轴在图形窗口的右侧.Plotyy(x1,y1,x2,y2, 'function1','function2')------功能同上,function是指那些绘图函数如:plot,semilogx,loglog 等.例如:在一个图形窗口中绘制双Y轴曲线.x=0:0.3:12;y=exp(-0.3*x).*sin(x)+0.5;plotyy(x,y,x,y,'plot','stem')图形如下:0246810120.511.50246810120.511.5stem: 绘制stem形式的曲线(上端带圈的竖线).绘图结果:两条图线自动用不同的颜色区分,两个坐标的颜色与图线的颜色相对应,左边的Y轴坐标对应的是plot形式的曲线,右边的Y坐标对应的是stem形式的曲线.二.对数坐标图绘制函数:在对数坐标图的绘制中,有三种绘图函数:semilogx,semilogy和loglog函数.1)semilogx( )------绘制以X轴为对数坐标轴的对数坐标图.其调用格式为:semilogx(x,y,'属性选项')其中属性选项同plot函数.该函数只对横坐标进行对数变换,纵坐标仍为线性坐标.2)semilogy( )------绘制以Y轴为对数坐标轴的对数坐标图.其调用格式为:semilogy(x,y,'属性选项')该函数只对纵坐标进行对数变换,横坐标仍为线性坐标.353)loglog( )------ 绘制X,Y轴均为对数坐标轴的图形.其调用格式为:loglog(x,y,'属性选项')该函数分别对横,纵坐标都进行对数变换.例:x=0:0.1:6*pi;y=cos(x/3)+1/9;subplot(221), semilogx(x,y);subplot(222), semilogy(x,y);subplot(223), loglog(x,y);4)MATLAB还提供了一个实用的函数:logspace( )函数, 可按对数等间距地分布来产生一个向量,其调用格式为:x=logspace(x1,x2,n)这里,x1 表示向量的起点;x2表示向量的终点;n表示需要产生向量点的个数(一般可以不给出,采用默认值50).在控制系统分析中一般采用这种方法来构成频率向量w.关于它的应用后面还要讲到.三.极坐标图的绘制函数:绘极坐标图可用polar( )函数.其调用格式如下:polar(theta, rho,'属性选项')------theta:角度向量,rho:幅值向量,属性内容与plot函数基本一致.例如:极坐标模型为:3145/)/)cos((+ =θρ, ],[πθ80∈则绘出极坐标图的程序为:theta=0:0.1:8*pi;p=cos((5*theta)/4)+1/3;polar(theta,p)0.511.53021060240902701203001503301800四. 绘制多个子图:subplot( )函数MATLAB允许在一个图形窗口上绘制多个子图(如对于多变量系统的输出),允许将窗口分成nxm个部分.分割图形窗口用subplot函数来实现,其调用格式为:subplot(n,m,k) 或subplot(nmk)------n,m分别表示将窗口分割的行数和列数,36k表示要画图部分的代号,表示第几个图形,nmk三个数可以连写,中间不用符号分开.例如:将窗口划分成2x2=4个部分,可以这样写:subplot(2,2,1),plot(……)subplot(2,2,2),……subplot(2,2,3),……subplot(2,2,4),……221 222223 224注:subplot函数没有画图功能,只是将窗口分割.第三节图形的修饰与标注MATLAB提供了一些特殊的函数修饰画出的图形,这些函数如下:1) 坐标轴的标题:title函数其调用格式为:title('字符串')------字符串可以写中文如:title('My own plot')2)坐标轴的说明:xlabel和ylabel函数格式:xlabel('字符串')ylabel(' 字符串')如:xlabel('This is my X axis')ylabel('My Y axis')3)图形说明文字:text和gtext函数A.text函数:按指定位置在坐标系中写出说明文字.格式为:text(x1, y1, '字符串', '选项')x1,y1为指定点的坐标;'字符串'为要标注的文字;'选项'决定x1,y1的坐标单位,如没有选项,则x1,y1的坐标单位和图中一致;如选项为'sc', 则x1,y1表示规范化窗口的相对坐标,其范围为0到1.(1,1)规范化窗口(0,0)37如:text(1,2, '正弦曲线')B.gtext函数:按照鼠标点按位置写出说明文字.格式为:gtext('字符串')当调用这个函数时,在图形窗口中出现一个随鼠标移动的大十字交叉线,移动鼠标将十字线的交叉点移动到适当的位置,点击鼠标左键,gtext参数中的字符串就标注在该位置上.4) 给图形加网格:grid函数在调用时直接写grid即可.上面的函数的应用实例:例: 在图形中加注坐标轴标识和标题及在图形中的任意位置加入文本.t=0:pi/100:2*pi;y=sin(t);plot(t,y),grid,axis([0 2*pi -1 1])xlabel('0 leq itt rm leq pi','FontSize',16)ylabel('sin(t)','FontSize',20)title('正弦函数图形','FontName',' 隶书' ,'FontSize',20)text(pi,sin(pi),'leftarrowsin(t)=0','FontSize',16)text(3*pi/4,sin(3*pi/4),'leftarrowsin(t)=0.707', 'FontSize',16)text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707rightarrow',...'FontSize',16,'HorizontalAlignment','right')画出的图形为:0246-1-0.50.510 ≤ t ≤ πsin(t)正弦函数图形←sin(t)=0←sin(t)=0.707sin(t)=-0.707→5) 在图形中添加图例框:legend函数其调用格式为:A.legend('字符串1', '字符串2', ……)------以字符串1,字符串2…… 作38为图形标注的图例.B.legend('字符串1', '字符串2', ……, pos)------pos指定图例框显示的位置.图例框被预定了6个显示位置:0------ 取最佳位置;1------右上角(缺省值);2------左上角;3------左下角;4------右下角;-1------图的右侧.例:在图形中添加图例.x=0:pi/10:2*pi;y1=sin(x);y2=0.6*sin(x);y3=0.3*sin(x);plot(x,y1,x,y2,'-o',x,y3,'-*')legend('曲线1','曲线2','曲线3')绘出图形如下:02468-1-0.50.51曲线1曲线2曲线36)用鼠标点选屏幕上的点:ginput函数格式为: [x, y, button]=ginput(n)其中:n为所选择点的个数;x,y均为向量,x为所选n个点的横坐标;y为所选n个点的纵坐标.button为n维向量,是所选n个点所对应的鼠标键的标号:1------左键;2------中键;3------ 右键.可用不同的鼠标键来选点,以区别所选的点.此语句可以放在绘图语句之后,它可在绘出的图形上操作,选择你所感兴趣的点,如峰值点,达到稳态值的点等,给出点的坐标,可求出系统的性能指标.39第四节 MATLAB下图形对象的修改MATLAB图形对象是指图形系统中最基本,最底层的单元,这些对象包括:屏幕(Root),图形窗口(Figures), 坐标轴(Axes),控件(Uicontrol),菜单(Uimenu),线(Lines),块(Patches),面(Surface),图像 (Images),文本(Text)等等.根据各对象的相互关系,可以构成如下所示的树状层次:RootFiguresAxes Uicontrol Uimenu Uicontextmenu (对象菜单)Images Line Patch Surface Text对各种图形对象进行修改和控制,要使用MATLAB的图形对象句柄(Handle).在MATLAB中, 每个图形对象创立时,就被赋予了唯一的标识,这个标识就是该对象的句柄.句柄的值可以是一个数,也可以是一个矢量.如每个计算机的根对象只有一个,它的句柄总是0,图形窗口的句柄总是正整数,它标识了图形窗口的序号等.利用句柄可以操纵一个已经存在的图形对象的属性,特别是对指定图形对象句柄的操作不会影响同时存在的其它图形对象,这一点是非常重要的.一.对图形对象的修改可以用下面函数:1)set函数:用于设置句柄所指的图形对象的属性.Set函数的格式为:set(句柄, 属性名1, 属性值1, 属性名2, 属性值2, ……)例:h=plot(x,y)set(h, 'Color', [1,0,0])------将句柄所指曲线的颜色设为红色.2)get函数:获取指定句柄的图形对象指定属性的当前值.格式为:get(句柄, '属性名')如: get(gca, 'Xcolor')------获得X轴的当前颜色属性值.执行后可返回X轴的当前颜色属性值[0,0,0](黑色).3)如果没有设置句柄,则可以使用下列函数获得:gcf:获得当前图形窗口的句柄;gca:获得当前坐标轴对象的句柄;gco:获得当前对象的句柄.如:A.要对图形窗口的底色进行修改,可用:set(gcf, 'Color', [1,1,1])------将图形窗口底色设为白色B.要把当前X轴的颜色改为绿色,可用:set(gca, 'Xcolor', [0,1,0])40C.还可对坐标轴的显示刻度进行定义:t=-pi:pi/20:pi;y=sin(t);plot(t,y)set(gca,'xtick',[-pi:pi/2:pi],'xticklabel',['-pi','-pi/2','0','pi/2','pi'])-pi-pi/20pi/2pi-1-0.50.51本例中用'xtick'属性设置x轴刻度的位置(从-pi~pi,间隔pi/2,共设置5个点),用'xticklabel'来指定刻度的值,由于通常习惯于用角度度量三角函数, 因此重新设置['-pi','-pi/2','0','pi/2','pi']5个刻度值.二.一些常用的属性如下:1)Box属性:决定图形坐标轴是否为方框形式,选项为'on'(有方框),'off'(无方框);2)'ColorOrder'属性:设置多条曲线的颜色顺序,默认值为:[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]黄色粉色天蓝红色绿色兰色颜色向量还有:[1 1 1]------白色;[0 0 0]------黑色.3)坐标轴方向属性:'Xdir','Ydir','Zdir',其选项为:'normal'------正常'reverse'------反向4)坐标轴颜色和线型属性:'Xcolor','Ycolor','Zcolor'------ 轴颜色,值为颜色向量'LineWidth'------ 轴的线宽,值为数字'Xgrid','Ygrid','Zgrid'------坐标轴上是否加网格,值为'on'和'off'.5)坐标轴的标尺属性:'Xtick','Ytick','Ztick'------ 标度的位置,值为向量'Xticklabel','Yticklabel','Zticklabel'------ 轴上标度的符号,它的值为与标度位置向量同样大小(向量个数相同)的向量.5)字体设置属性:'FontAngle'------ 设置字体角度,选项为:41'normal'------ 正常;'italic'------ 斜体;'oblique'------ 倾斜;'FontName'------ 字体名称;'FontSize'------ 字号大小'FontWeight'------ 字体的轻重,选项为:'light','normal','bold'(注:本资料素材和资料部分来自网络,仅供参考。
matlab画图技巧
matlab--三维作图--空间曲面matlab 2010-09-05 21:44:59 阅读122 评论0 字号:大中小订阅(1) surf(x,y,z)画出数据点(x,y,z)表示的曲面x,y,z 数据矩阵.分别表示数据点的横坐标、纵坐标、函数值例1:画函数Z=(X+Y)2 的图形.解:x=-3:0.1:3;y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=(X+Y).^2;surf(X,Y,Z)shading flat %将当前图形变得平滑rotate3d运行后所得图形是:(2)mesh(x,y,z) 画网格曲面x,y,z 数据矩阵.分别表示数据点的横坐标、纵坐标、函数值。
例2:画出曲面Z=(X+Y)^2在不同视角的网格图.解x=-3:0.1:3; y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=(X+Y).^2;mesh(X,Y,Z)运行后所得图形是:(3)meshz(X,Y,Z)在网格周围画一个curtain图(如,参考平面)例3:绘peaks的网格图解:输入命令:[X,Y]=meshgrid(-3:.125:3);Z=praks(X,Y);meshz(X,Y,Z)运行后所得的图形是:%特殊图形绘制x=0:0.2:5;y=2*exp(0.1*x); subplot(2,2,1), bar(x,y,'g');title('bar(x,y)');axis([0 5 0 2]); subplot(2,2,2), stairs(x,y,'b');title('stairs(x,y)');axis([0 5 0 2]);subplot(2,2,3), stem(x,y,'k');title('stem(x,y)');axis([0 5 0 2]);subplot(2,2,4), fill(x,y,'r');title('fill(x,y)');axis([0 5 0 2]);%图像的剪裁`放大`旋转clear;clc;load chess;subplot(2,2,1);subimage(X,map);title('原图像');x1=imcrop(X,map,[60 40 100 90]);subplot(2,2,2);subimage(x1,map);title('原图像的剪裁块');x2=imresize(X,2);subplot(2,2,3);subimage(X,map);title('放大二倍的原图像');x3=imrotate(X,60,'crop');subplot(2,2,4); subimage(x3,map);title('旋转的图像');%加入噪声前后的图像对比clear;clc;load woman;X1=imnoise(uint8(X));subplot(1,2,1);subimage(X1,map);title('加入噪声的图像');X2=medfilt2(X1);subplot(1,2,2);subimage(X2,map);title('处理后的图像');%函数z=x.^2 + y.^2的三维曲面图x=-4:4;y=x;[x,y]=meshgrid(x,y);z=x.^2+y.^2;figure(1);mesh(x,y,z);xlabel('x.axis');ylabel('y.axis');zlabel('z.axis');title('mesh');figure(2);surf(x,y,z);xlabel('x.axis');ylabel('y.axis');zlabel('z.axis');title('surf');figure(3);plot3(x,y,z);xlabel('x.axis');ylabel('y.axis');zlabel('z.axis');title('plot3_1');matlab绘制三维图形2010-06-22 14:13三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
MATLAB三维绘图
第7讲 绘制三维图(第5章MATLAB 绘图)目的:1.掌握绘制三维图形的方法。
2.掌握绘制图形的辅助操作。
一、绘图时点坐标矩阵的生成。
绘图函数使用描点法绘图,所以在绘图前,需要建立空间点的概念,空间中的点需要三个坐标(,,)x y z ,matlab 使用三个矩阵来存储点的三个坐标,一个矩阵(比如A )存储点的x 坐标,一个矩阵(比如B )存储点的y 坐标,一个矩阵(比如C )存储点的z 坐标。
其中A 、B 、C 三矩阵是同型矩阵。
例如设矩阵123112X ⎛⎫⎪= ⎪ ⎪⎝⎭,014221Y −⎛⎫ ⎪= ⎪ ⎪⎝⎭,510113Z ⎛⎫ ⎪= ⎪ ⎪−⎝⎭则,matlab 绘图函数将绘制点()()1,0,5,(2,1,1),(3,4,0),,2,1,3−共6个点。
如果点的坐标没有规律那么我们需要手工输入坐标矩阵。
如果点的坐标有规律,那么我们可以使用矩阵运算或者matlab 产生点的函数来生成坐标矩阵。
例如,假设空间中点的纵横坐标如下图所示:图中点的坐标有规律:横坐标是(1,2,3,4),纵坐标是(1,2,3),所以可以使用如下方法得到点的坐标矩阵。
方法一:>> a=[1,2,3,4];b=[1,2,3];i=ones(1,3);j=ones(1,4);>>x=i’ *a; y=b‘ *j;方法二:使用matlab系统函数meshgrid(推荐使用)>> a=[1,2,3,4]; b=[1,2,3];>>[x,y]=meshgrid(a,b) % 该函数生成的x,y矩阵和方法一相同。
------------------我是华丽分割线-----------------除meshgrid外,还可以用peaks、cylinder函数等生成点坐标矩阵。
peaks(n): 本身是一个创建具有多个峰值的曲面图,例如:>> peaks(30) %产生的图如下:在matlab中可以使用,例如:命令[x,y,z]=peaks(30)取出曲面点的三个坐标矩阵x,y,z;[a,b]=peaks(30)取出曲面点的前两坐标矩阵x,y;%可以用逻辑运算a==x,b==y验证注意:命令a=peaks(30)取出的a不是曲面点的x坐标,而是点的z坐标;可以用二维绘图函数scatter(x,y)绘制散点图观察取出的坐标点:>>[x,y]=peaks(8);>>scatter(x,y)另一个可以用来取坐标点的函数是sphere(n),命令sphere(n):绘制一个具有n个纵列的单位球面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB画图
1、plot(描点画图)
1)给点列、计算函数值、作图
>>x=0:0.000001:2*pi;
>>y=sin(x);
>>plot(x,y)
2)选择线性和标记属性
plot(x,y,string)
string为用单引号括起来的字符串,用来指定
图形的属性(点线的形状和颜色)。
>>plot(x,sin(x),'r+:')
(红色虚线离散点用+)
>>plot(x,sin(x),'b-d')
(蓝色点划线离散点用◇)
>>plot(x,sin(x),'k*-')
(黑色实线离散点用*)
*上述三种任意排列,点越密集线条越粗。
3)给图形添加注释
>>plot(x,y)
>>title('sin(x)图像')——标题
>>xlabel('x轴')——坐标轴
>>ylabel('y轴')——坐标轴
>>legend('y=sin(x)')——注释
>>text(pi/2,1,'最高点')
*plot是描点画图,有间断点的函数图像画不出来(如tan(x)。
>>x=1:pi/100:2;
>>y=2*exp(-0.5*x).*cos(4*pi*x);
>>plot(x,y)
>>x=1:0.5:9;
>>y=3.^x;
>>plot(x,y)
2、同时画两个图像
1)>>x=0:0.01:2*pi;
>>y=sin(x);
>>z=cos(x);
>>plot(x,y,'r+:',x,z,'-.bd')
2)>>x=0:0.0001:2*pi;
>>y=sin(x);
>>plot(x,y)
>>hold on
>>z=cos(x);
>>plot(x,z)
*一旦键入hold on之后,所有图像都会留在figure界面,只有键入hold off后才可消失。
且hold on对一切画图函数可用。
3、一个figure里面分割成好几个独立图像
>>x=-2*pi:0.0001:2*pi;
>>subplot(2,2,1);plot(x,sin(x))
>>subplot(2,2,2);plot(x,cos(x))
>>subplot(2,2,3);plot(x,exp(x))
>>subplot(2,2,4);plot(x,x.^2)
4、fplot
fplot(‘fun’,lims)
表示绘制字符串fun指定的函数在
lims=[xmin,xmax]的图像。
*fun必须是m文件的函数名或者独立
变量x的字符串;
fplot函数不能画参数方程、隐函数
及间断点函数图像,但在一个图上可
以画多个图形。
>>fplot('sin',[-pi,pi])
>>fplot('cos',[-pi,pi])
4、ezplot
1)ezplot('f(x)',[a,b])
表示绘制f(x)在[a,b]上的函数图像
2)ezplot('f(x)',[xmin,xmax,ymin,ymax])
表示绘制隐函数f(x,y)=0在xmin<x<xmax,ymin<y<ymax上的函数
图像。
3)ezplot('x(t)','y(t)',[tmin,tmax])
表示绘制参数方程x=x(t),y=y(t)在区间
[tmin,tmax]上的函数图像。
>>ezplot('cos(x)',[-pi,pi])
>>ezplot('cos(t)^3','sin(t)^3',[0,2*pi])
>>ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2])
5、用hold on画分段函数及特殊图形
1)画[-pi,0]为sin(x),[0,pi]为sin(2x)的函数图像。
>>x=-pi:0.00001:0;
>>plot(x,sin(x))
>>hold on
>>x=0:0.00001:pi;
>>plot(x,sin(2*x))
2)画一组同心圆。
>>ezplot('x.^2+y.^2-4',[-2,2,-2,2])
>>hold on
>>ezplot('x.^2+y.^2-2.25',[-1.5,1.5,-1.5,1.5]) >>ezplot('x.^2+y.^2-1',[-1,1,-1,1])
>>ezplot('x.^2+y.^2-0.25',[-0.5,0.5,-0.5,0.5])。