MATLAB绘图功能大全
matlab绘图功能

二维图形绘制plot(x,y)当x,y是同维矩阵时,则以x,y对应的列元素为横纵坐标绘制曲线,曲线条数等于矩阵的列数。
plot(x)以x的下标为很坐标,元素值为纵坐标绘制曲线。
plot(x1,y1,x2,y2,x3,y3,…,xn,yn)plot(x1,y1,选项1,x2,y2,选项2,…xn,yn,选项n)双纵坐标函数plotyyplotyy(x1,y1,x2,y2)其中横坐标必须具有相同的标度,纵坐标可以不同。
图形标注:xlabel(x轴说明)ylabel(y轴说明)title(图形名称)text(x,y,图形说明)legend(图例1,图例2,…)对坐标范围设置:axis([xmin xmax ymin ymax zmin zmax])axis equal:横纵坐标采用等长刻度。
axis square:产生正方形坐标系(默认为矩形)。
axis auto:使用默认设置。
axis off:取消坐标轴axis on:显示坐标轴用grid on/off来控制是否画网格线。
用box on/off来控制是否加边框线。
每执行一次绘图命令就会刷新一次绘图窗口,原有图形将不在。
若要保持原有图形且继续添加新的图形则用hold on/off来控制。
图形窗口的分割:用subplot函数将图形窗口分割为若干相对独立的子图区域。
subplot(m,n,p)表示将当前图形窗口分割为m n个绘图区,即共m行,每行n个绘图区。
P表示选定第p个区作为当前活动区,所发出的绘图命令作用于活动区。
绘制二维图形的其他函数:bar 条形图stairs 阶梯图stem 杆图fill 填充图polar(the,rho,选项)semilogxsemilogyloglogfplot(filename,lims,tol,选项)filename为函数名,以字符串形式出现,lims为x,y的取值范围,tol 为相对允许误差,默认为2e-3fplot(‘[sin(x),cos(x)]’,[0,2*pi,-1.5,5],1e-3,’r’)用pie可以绘制饼图,用compass绘制复数的向量图。
Matlab 绘图大全

要设置曲线样式可以在plot函数中加绘图选项,其调用格式为:
plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)
例1-6 在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),标记两曲线交叉点。
title('bar(x,y,''g'')');axis([0,7,-2,2]);
subplot(2,2,2);stairs(x,y,'b');
title('stairs(x,y,''b'')');axis([0,7,-2,2]);
subplot(2,2,3);stem(x,y,'k');
例1-7 在0≤x≤2p区间内,绘制曲线y1=2e-0.5x和y2=cos(4πx),并给图形添加图形标注。
程序如下:
x=0:pi/100:2*pi;
y1=2*exp(-0.5*x);
y2=cos(4*pi*x);
plot(x,y1,x,y2)
title('x from 0 to 2{\pi}'); %加图形标题
1.6 对函数自适应采样的绘图函数
fplot函数的调用格式为:
fplot(fname,lims,tol,选项)
其中fname为函数名,以字符串形式出现,lims为x,y的取值范围,tol为相对允许误差,其系统 默认值为2e-3。选项定义与plot函数相同。
axis off:取消坐标轴。
axis on:显示 坐标轴。
给坐标加网格线用grid命令来控制。grid on/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。
最全面的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 plot的用法

matlab plot的用法Matlab是一种常用的科学和工程计算软件,其具备强大的绘图功能。
其中,Matlab Plot函数是用于创建二维和三维图形的主要工具。
下面将介绍Matlab Plot 函数的用法和一些常见的图形类型。
1. 二维图形绘制:Matlab Plot函数可用于绘制直线图、散点图、条形图等。
下面是一些常用函数的示例:- plot(x, y):绘制二维直线图,其中x和y是数据点的坐标数组。
- scatter(x, y):绘制二维散点图,其中x和y是数据点的坐标数组。
- bar(x, y):绘制垂直条形图,其中x是类别,y是对应的值。
- barh(x, y):绘制水平条形图,其中x是类别,y是对应的值。
2. 三维图形绘制:Matlab Plot函数还可以用于创建三维图形,例如曲面图、散点云图等。
下面是一些常用函数的示例:- plot3(x, y, z):绘制三维直线图,其中x、y和z是数据点的坐标数组。
- scatter3(x, y, z):绘制三维散点图,其中x、y和z是数据点的坐标数组。
- surf(x, y, z):绘制三维曲面图,其中x、y和z是数据点的坐标数组。
3. 图形设置:Matlab Plot函数还可用于设置图形的样式和属性。
下面是一些常用的设置函数:- title("标题"):设置图形的标题。
- xlabel("x轴标签"):设置x轴的标签。
- ylabel("y轴标签"):设置y轴的标签。
- legend("图例1", "图例2", ...):添加图例,用于标识不同的数据系列。
以上仅是Matlab Plot函数的一些基本用法和示例,Matlab还提供了丰富的绘图功能和属性设置选项,能够满足各种数据可视化的需求。
通过学习Matlab Plot的用法,您可以更好地利用Matlab进行数据分析和图形展示。
matlab绘图功能

Matlab的常用绘图功能1.绘制二维图形(1)基本二维图形①plot(y)功能:以向量y的分量值为纵坐标,以相应的分量下标为横坐标,依次描点连线。
②plot(x,y)功能:以x为横坐标向量,y为纵坐标向量,描点连线。
③plot(x,y,'选项')功能:以选项指定的线型、颜色、数据点标记等描点绘线。
④plot(x1,y1,'选项1',x2,y2,'选项2',…)功能:绘制组合图(画若干条线在同一画中)。
例:t1=0:0.4:2*pit2=1:0.1:3*piplot(t1,sin(t1),':ob',t2,cos(t2),'--g')(2)几种特殊的坐标图①对数坐标曲线semilogx(x,y):以横坐标x为对数坐标,描点连线。
semilogy(x,y):以纵坐标y为对数坐标,描点连线。
loglog(x,y):纵、横坐标均为对数坐标。
grid on命令:图形窗口中添加网格线②极坐标曲线polar(theta,rho,’选项’)以theta为极角向量,rho为极径向量,描点连线作图,‘选项’同plot 。
例:theta=0:0.1:4*pirho=(cos(theta/4)+1/3)polar(theta,rho)③双y轴图形●plotyy(x1,y1,x2,y2)曲线(x1,y1)用左侧y轴,曲线(x2,y2)用右侧y轴●plotyy(x1,y1,x2,y2,’FUN’)用‘FUN’指定绘图函数(如:plot,semilog等)plotyy(x1,y1,x2,y2,’FUN1’,’FUN2’)用‘FUN1’指定的函数去绘制曲线(x1,y1),用‘FUN2’指定的函数绘(x2,y2)。
例:x=1:0.01:5y=exp(x)plotyy(x,y,x,y,'semilogy','plot')④复数数据绘制plot(z) :以z的实部为横坐标,虚部为纵坐标。
复习二、MATLAB_基本绘图功能

曲线线型、色彩、数据点型的允许值
2、坐标、刻度、分格线、坐标框控制 axis(V) set(gca,’Xtick’,xs,’Ytick’,ys) set(gca,’Xtick’,xs,’Ytick’,ys,’Ztick’,zs) grid 是否画分格线的双向切换指令。 grid on 画出分格线。 grid off 不画出分格线。 box 坐标形式在封闭式和开启式之间切换指令。 box on 使当前坐标呈封闭形式。 box off 使当前坐标呈开启形式。 还可在 坐标轴属性编辑器 设置
复习二、MATLAB 基本绘图功能
二维图形的绘制 三维图形的绘制
一、二维图形绘制 1、基本绘图函数
plot的基本调用格式: plot(x,y):输出以向量x为横坐标,向量y纵坐标 的图形,x、y必须具有相同的长度。 plot(y):输出以向量y元素序号m为横坐标,向 量y对应元素m为纵坐标的图形。 plot(x,y,’str’):用‘str’指定的方式,输出以x为 横坐标, y为纵坐标的图形。在指定方式str中, 用户可以规定绘制曲线的线型、数据点型、颜色 等。 plot(x1,y1,’str1’,x2,y2,’str2’,…): 在一副图中,用 ‘str1’指定的方式,输出以x1为横坐标, y1为纵坐 标的图形。用‘str2’指定的方式,输出以x2为横坐 标, y2为纵坐标的图形。’str’选项中的部分参数 见表6.3所示。
2、特殊三维绘图函数
Байду номын сангаас
3、图形标识
4、多次叠绘、双纵坐标和多子图 多子图 MATLAB允许用户在一个图形窗口中布 置几幅独立的子图,其基本指令是 subplot(m,n,k) 或subplot(mnk) 表 示使(m×n)幅子图中的第k幅成为当前图。
matlab绘图指令大全

绘图指令1 二维曲线图
调整坐标范围:axis axis([0,300,0,2])
1.5 图形修饰
设置颜色 y m c r g b w k 设置线型 - : -. --
设置标记 . o x + *
e=0.2*rand(size(X));
1.7 数值函数的二维图
可绘制系统函数,也可绘制自定义函数的图形。
2 三维曲线图
2.1 三维曲线plot3
3 曲面图形
3.2 三维网格mesh、meshc、meshz
利用peaks(50)作为模拟数据矩阵;
3.4 二元函数的伪彩色图pcolor
3.5 等高线contour
3.6 矢量场图quiver
Z=X.*exp(-X.^2-Y.^2);
3.7 视角控制view
视点控制方式及效果:
方位角、仰角控制方式及效果:缺省为(-37.5,30)。
3.8 多视区控制subplot
3.9 制作、播放动画
[x,y,z]=peaks(30); surf(x,y,z)
% 制作动画
m=moviein(5); % 5帧画面的动画变量
for i=1:5
view([1 1 i]) % 不断调整视点
m(:,i)=getframe; % 将当前画面作为帧保存到序列中end
% 播放动画
movie(m,2,1); % 每隔1秒播放1帧,循环播放2次3.10 示例:地形图
3.11 示例:汶川地形图
load dem.txt
mesh(dem)
4 数据特征的图形展示
以pdf结尾的函数,计算概率密度或概率;以cdf结。
matlab绘图总结(个人总结)

1,单矢量绘图x=[1 2 3 4 5 6 7 8 9 10];y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20];plot(x,y)title('简单绘图举例');xlabel('单元下标');ylabel('给定的矢量');grid2,双矢量绘图x=0:0.05:4*pi;y=sin(x);plot(x,y)3,对数坐标绘图对数坐标分为x轴对数(semilogx),y轴对数(semilogy)及双对数(loglog)三个函数,用法和plot命令相似。
4,极坐标绘图极坐标绘图的用法和基本绘图命令plot()相似,其格式为polar(theta,rho)t=0:.01:2*pi;polar(t,sin(2*t).*cos(2*t))x=0:pi/50:2*pi;y1=sin(x);y2=0.6*sin(x);y3=0.3*sin(x);plot(x,y1,x,y2,x,y3)x1=0:pi/50:2*pi;x2=pi/4:pi/50:2*pi+pi/4;x3=pi/2:pi/50:2*pi+pi/2; % 问题出在哪里?!!!(已解决)y1=cos(x1);y2=cos(x2);y3=cos(x3);plot(x1,y1,x2,y2,x3,y3)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=sin(x(1,:));plot(x,y)x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(3,:)=0.3*sin(x);plot(x,y)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(:,1));y(:,2)=0.3*sin(x(:,1));plot(x,y)4,多组变量绘图x=0:pi/50:2*pi;y1=sin(x);y2=0.6*sin(x);y3=0.3*sin(x);plot(x,y1,x,y2,x,y3)5,双y轴绘图x=0:0.3:12;y=exp(-0.3*x).*sin(x)+0.5;plotyy(x,y,x,y,'plot','stem')t=0:900;A=1000;a=0.005;b=0.005;z1=A*exp(-a*t);z2=sin(b*t);plotyy(t,z1,t,z2,'semilogy','plot')5,图的形式和颜色matlab 提供了四种线形和十三种标记点类型MATLAB在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来.这些选项如下表所示:各种颜色属性选项'r'红色'm'粉红'g'绿色'c'青色'b'兰色'w'白色'y'黄色'k'黑色各种线型属性选项'-'实线'--'虚线':'点线'-.'点划线各种标记点属性选项'.'用点号绘制各数据点'^'用上三角绘制各数据点'+'用'+'号绘制各数据点'v'用下三角绘制各数据点'*'用'*'号绘制各数据点'>'用右三角绘制各数据点' .'用'.'号绘制各数据点'<'用左三角绘制各数据点's'或squar 用正方形绘制各数据点'p'用五角星绘制各数据点'd'或diamond用菱形绘制各数据点'h'用六角星绘制各数据点这些选项可以连在一起用,如:'-.g'表示绘制绿色的点划线,'g+'表示用绿色的'+'号绘制曲线.t=0:pi/100:2*pi;y=sin(t);y2=sin(t-0.25);y3=sin(t-0.5);plot(t,y,'m-',t,y2,'k+',t,y3,'g:')t=0:pi/20:2*pi;y=sin(t);plot(t,y,'d')6,图形的控制与表现axis 人工选择坐标轴尺寸clf 清图形窗口ginput 利用鼠标的十字准线输入hold 保持图形shg 显示图形窗口subplot 将图形窗口分成N块子窗口t=0:pi/20:4*pi;y=sin(t);plot(t,y)gridt=0:pi/20:2*pi;[x,y]=meshgrid(t);subplot(2,2,1)plot(sin(t),cos(t)),axis equalsubplot(2,2,2)z=sin(x)+cos(y);plot(t,z)axis([0 2*pi -2 2]) subplot(2,2,3)z=sin(x).*cos(y); plot(t,z)axis([0 2*pi -1 1]) subplot(2,2,4)z=sin(x).^2-cos(y).^2; plot(t,z),axis([0 2*pi -1 1])[x,y,z]=peaks; contour(x,y,z,20,'k') hold onpcolor(x,y,z) shading interphold off坐标轴控制指令axis([xmin xmax ymin ymax])x=0:.025:pi/2;plot(x,tan(x),'-ro')axis([0 pi/2 0 5])图形的标注title 标题xlabel x轴标注ylabel y轴标注text 任意定位的标注gtext 鼠标定位标注legend 标注图例加注坐标轴标题和图形标识,在图形中加注文本t=0:pi/100:2*pi;y=sin(t);plot(t,y)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(3*pi/4,sin(3*pi/4),'\leftarrowsin(t)=0.707','FontSize',16)text(pi,sin(pi),'\leftarrowsin(t)=0','FontSize',16)text(5*pi/4,sin(5*pi/4),'sin(t)=-0.707\rightarrow','FontSize',16,'Horizontal Alignment','right')指定TeX字符t=0:pi/100:2*pi;alpha=-0.8;beta=15;y=sin(beta*t).*exp(alpha*t);plot(t,y)title('{\itAe}^{-\alpha\itt}sin\beta{\itt}\alpha<<\beta')xlabel('时间us.'),ylabel('幅值')在图形中添加图例框x=0:pi/100:2*pi;y1=sin(x);y2=0.6*sin(x);y3=0.3*sin(x);plot(x,y1,'-ro',x,y2,'-g*',x,y3,'bd')legend('曲线1','曲线2','曲线3')特殊图形1,条形图(1)二维条形图函数意义bar 二维垂直条形图bath 二维水平条形图bar3 三维垂直条形图bar3h 三维水平条形图y=[27 38 55 37 98 45 67 43 54]; bar(y)bar(y,'stack')barh(y)y=[9 8 6;2 5 8;6 2 9;5 8 7;9 4 2]; bar(y)bar(y,'stack')barh(y)bar3(y)bar3h(y)bar(y,'stack')barh(y,'stack')指定x坐标的条形图x=[1 2 4 7 10];y=[9 8 6;2 5 8;6 2 9;5 8 7;9 4 2];bar(x,y)figure,barh(x,y)可以把二维曲线当做二维条形线的包络线x=0:pi/10:2*pi;y=sin(x);bar(x,y)bar(x,y,'r')y=[9 8 6;2 5 8;6 2 9;5 8 7;9 4 2];bar3(y,'group') % 分组形式的三维图figure,bar3(y) % 分列形式的三维图有两组生物医学的实验数据,一组表示物质成分(TCE),一组表示温度(temp),数据是在35天里每隔5天的取样,将物质成分和温度与时间的关系画在同一张图中TCE=[515 429 370 250 135 120 60 120];temp=[29 23 27 25 20 23 23 27];days=0:5:35;bar(days,temp,'c')xlabel('Day')ylabel('Temperature(^{o}C)')h1=gca; % 获得当前轴对象句柄h2=axes('Position',get(h1,'position') ); % 建立新的轴对象句柄plot(days,TCE,'LineWidth',3)gridset(h2,'YAxisLocation','right','Color','none','XTickLabel',[])set(h2,'XLim',get(h1,'XLim'),'Layer','top')set(h2,'XLim',get(h1,'XLim'),'Layer','top') %完成一张图形的绘制text(11,380,'Concentration','Rotation',-57,'FontSize',16)ylabel('TCE Concentration (PPM)')title('Bioremediation','FontSize',16)饼图1,不分离的饼图x=[5.5 74.7 44.5 33.2 46.6];pie(x)2,带分离的饼图x=[5.5 74.7 44.5 33.2 46.6];pie(x,[0 1 0 0 1])3,不完整的饼图当x的元素之和不为1时绘制的是不完整的饼图x=[0.2 0.3 0.4];pie(x)4,三维饼图pie3([1 2 3 4 5],[ 0 0 0 0 1])legend('矿大','地质大学','石油大学','海洋大学','其他')clear,clc,close all;x=0:0.01:2;y=-(x-1).^2;h1=plot(x,y);hold on;h2=plot(1,0,'o','MarkerSize',15, 'MarkerEdgecolor','k', 'MarkerFacecolor','g');legend([h1,h2],'-(x-1)^2','max(fx)');其他图形1,直方图yn=randn(10000,1);hist(yn)figure,hist(yn,20)y=randn(10000,3);hist(y)2,用杆状图表现离散数据x=0:0.2:10;y=exp(-0.3*x).*sin(x); stem(x,y)figure,stem(x,y,':sr')3,阶梯图的表现方法alpha=0.01;beta=0.5;t=0:10;f=exp(-alpha*t).*sin(beta*t); stairs(t,f)hold onhold offlabel='函数e^{-(\alpha*t)}sin\beta*t的阶梯图'; text(0.5,-0.2,label,'FontSize',14)xlabel('t=0:10','FontSize',14)axis([0 10 -1.2 1.2])4,彩色分点图t=0:pi/10:2*pi;y=sin(t);scatter(t,y)figure,scatter(t,y,'v')figure,scatter(t,y,(abs(y)+2).^4,'filled')figure,scatter(t,y,30,y,'v','filled')figure,scatter(t,y,(t+1).^3,t,'filled')三维图形1,三维曲线图t=0:pi/50:10*pi;x=exp(-t/15).*sin(2*t);y=exp(-t/15).*cos(2*t);z=t;axis square;grid on当x,y和z都是矩阵时的三维曲线[X,Y]=meshgrid([-2:0.1:2]);Z=X.*exp(-X.^2-Y.^2);plot3(X,Y,Z)grid ont=0:pi/20:5*pi;plot3(sin(t),cos(t),t,':*r')[x,y,z]=peaks(10);surf(x,y,z)2,三维网格图mesh(peaks(20))meshc(peaks(20))Waterfall(peaks(30))p=peaks(30);meshz(p)3,着色表面图surf 绘制着色表面图的基本命令surfc 绘制带等高线的着色表面图surfl 绘制表面图的光照效应x=-1.5:0.3:1.5;y=-1:0.2:1;[x,y]=meshgrid(x,y);z=sqrt(4-x.^2/9-y.^2/4);surf(x,y,z)surfc(x,y,z)surfl(x,y,z)colormap(hot)surfl(x,y,z)shading facetedshading flatsurfl(x,y,z)shading interpsurfl(x,y,z)shading flatt=0:pi/12:3*pi;r=abs(exp(-0.25*t)).*sin(t); [x,y,z]=cylinder(r,30); surfl(x,y,z)colormap(pink)shading interp表面图形的透明处理surfl(x,y,z)hidden offsurfl(x,y,z)hidden on[x,y]=meshgrid(-8:.5:8);R=sqrt(x.^2+y.^2)+eps;z=sin(R)./R;mesh(z)colormap([0 0 1])hidden off表面图形的颜色映射[x,y]=meshgrid(-8:.5:8);R=sqrt(x.^2+y.^2)+eps;z=sin(R)./R;mesh(z)colormap([0 0 1]) % RGB三基色[x,y]=meshgrid(-8:.5:8); R=sqrt(x.^2+y.^2)+eps; z=sin(R)./R;mesh(z)colormap(copper) colormap(bone) colormap(gray) colormap(hot) colormap(pink) colormap(cool) colormap(hsv) colormap(jet) colormap(spring) colormap(summer) colormap(autumn) colormap(winter) colormap(flag) colormap(prism) colormap(copper) colormap(colorcube) colormap(lines)切片图slice(X,Y,Z,v,xi,yi,zi) % 其中X,Y,Z为使用meshgrid生成的三维网格坐标矩阵,v为所绘制图形的函数,xi,yi,zi为切片位置x=-2:0.1:2;y=-2:0.25;z=-2:0.25:2;[X,Y,Z]=meshgrid(x,y,z);V=X.*exp(-X.^2-Y.^2-Z.^2);xi=[-0.7,0.7];yi=0.5;zi=-0.5;slice(X,Y,Z,V,xi,yi,zi)xlabel('x');ylabel('y');zlabel('z');colorbar('horiz')view([-30,45])图形的高级处理技术1,视图控制视图和旋转的函数包括view,viewmtx,rotate,和rotate3d等1,视图方向view(az,el)peaks(50)view(90,0)view(30,45)view(2)peaks(50)rotate3d2,光照(1),light 创建光源light函数为光源创建函数,其调用格式为:light('color',option1,'style',option2,'poisition',option3)在执行该命令函数之前,图形采用的是强度相等的漫射光,一旦执行该命令,则激活图形上各子对象所有与光有关的属性,其参数的缺省设置为:无穷远处的白光光源穿过[1 0 1]射向坐标原点(2),light 光照模式light options设置照明模式flat 入射光均匀照射在对象的每个小面上,该选项为缺省模式phong 先对顶点颜色插值,在计算各像素点的反光,该选项表现效果最好,但占用机时较多gouraud 对顶点处法线插值,再对由顶点勾画的面进行插值,选项用于曲面的表现(3),material 材料反射系数material options使用预定的材料反射系数shiny 有光泽明亮镜反射份额较大dull 暗淡柔和漫反射份额较大无镜面亮点metal 有金属光泽镜反射份额大背景光和漫反射份额小default 缺省方式(4)material([ka,kd,ks,n,sc])对五大反射要素进行特别设置ka 环境光kd 漫反射强度ks 镜射光强度n 镜面指数sc 镜面颜色的反射系数clft=linspace(0,2*pi,100);r=1-exp(-t/2).*cos(4*t);%旋转母线[x,y,z]=cylinder(r,60); % 产生旋转柱面数据ii=find(x<0&y<0); % 确定x-y平面上第四象限上的数据下标z(ii)=NaN; %剪切surf(x,y,z)colormap(pink)shading interplight('position',[-3 -1 3],'style','local') % 设置光源material([0.5 0.4 0.3 10 0.3]) % 设置表面反射显示效果增强后的二元函数表面图形图及光照[x,y]=meshgrid(-8:.1:8);r=sqrt(x.^2+y.^2)+eps;z=2*sin(r)./r;surf(x,y,z)shading interp;daspect([5 5 11])axis tightview(-50,30)light('position',[-10 -10 2])绘制双光照射的球sphere(36);axis equallight('Position',[1 3 2]);light('Position',[-3 -1 3]);material shinyaxis offrotate3d[x,map]=imread('C:\Users\user\Desktop\新建文件夹\单单.jpg'); %读取图形文件image(x);colormap(map) % 显示图像axis image off% 关掉坐标轴3,句柄图形(1),自定义坐标轴的显示刻度t=0:pi/20:2*pi;y=sin(t);plot(t,y)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'}) % 此句还可以写为:set(gca,'XtickLabeks','-pi|-pi/2|0|pi/2|pi'),如果是数字也可以直接写成set(gca,'XtickLabeks',[1;5;10;20])axis ([-pi pi -1 1])grid2,在图形的上层显示网格建立句柄为h的三维曲面h=surf(sphere (30))figure,h=surf(sphere (30))set(h,'EdgeColor',[0.8 0.8 0.8]) rotate3dfigure,h=surf(sphere (30))set(h,'EdgeColor','g')rotate3d将坐标轴显示在图形的上层pcolor(peaks);shading interpset(gca,'Layer','top')grid用鼠标确定在曲线上画点的位置t=0:pi/20:2*pi;plot(t,cos(t))hold onset(gcf,'WindowButtonDownFcn',['p=get(gca,''CurrentPoint'');','px=p(1,1) ;py=cos(px);','plot(t,cos(t));','plot(px,py,''*r'');'])axis(axis)绘制三个Y轴的曲线[ax,hlines]=plotyyy(x1,y1,x2,y2,x3,y3,ylabels)其中x1,y1;x2,y2和x3,y3分别为三组绘图数据,ylabels为3*1阶的单元数组,用于存储三个Y轴的标识,输出参数[ax,hlines]分别为三个轴和三条曲线的图形句柄。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB绘图功能大全-CAL-FENGHAI.-(YICAI)-Company One 1Matlab绘图强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基木参数就能得到所需图形,这类函数称为高层绘图函数。
此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。
这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。
本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。
一、二维绘图二维图形是将平而坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。
二维图形的绘制是其他绘图操作的基础。
(一)绘制二维曲线的基木函数在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。
1.plot函数的基木用法plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x 坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。
plot函数的应用格式plot(x,y)其中x,y为长度相同的向量,存储x坐标和y坐标。
例52在[0,2pi]区间,绘制曲线程序如下:在命令窗口中输入以下命令?» x=0:pi/100:2*pi;» y=2*exp*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为长度相同的向量,这是最常见、最基木的用法。
实际应用中还有一些变化。
2.含多个输入参数的plot函数plot函数可以包含若干组向量对,每一组可以绘制岀一条曲线。
含多个输入参数的plot函数调用格式为:plot(xl, yl, x2, y2,…,xn, yn) 如下列命令可以在同一坐标中画出3条曲线。
» x=linspace(0,2*pi,100);» plot(x,sin(x),x,2*sin(x),x,3*sin(x))当输入参数有矩阵形式时,配对的x,y按对应的列元素为横坐标和纵坐标绘制曲线,曲线条数等于矩阵的列数。
» x=linspace(0,2*pi,100);» yl=sin(x);» y2=2*sin(x);» y3=3*sin(x);» x=[x;x;x]';» y=[yl;y2;y3]';» plot(x,y,x,cos(x))x,y都是含有三列的矩阵,它们组成输入参数对,绘制三条曲线;X 和cos(x)又组成一对,绘制一条余弦曲线。
利用plot函数可以直接将矩阵的数据绘制在图形窗体中,此时plot函数将矩阵的每一列数据作为一条曲线绘制在窗体中。
如» A=pascal(5)A 二11111123451 3 6 10 1514 10 20 351 5 15 35 70» plot(A)3.含选项的plot函数Matlab提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号。
这些选项如表所示:例用不同的线型和颜色在同一坐标内绘制曲线及其包络线。
» x=(0:pi/100:2*pi)1;»yl=2*exp*x)*[l,-l];» y2=2*exp*x).*sin(2*pi*x);» xl=(0:12)/2;» y3=2*exp*xl).*sin(2*pi*xl);» plot(x/yl;k:,/x,y2;b-,/xl/y3/,rp,);在该plot函数中包含了3组绘图参数,第一组用黑色虚线画出两条包络线,第二组用蓝色双划线画出曲线y,第三组用红色五角星离散标出数据点。
4.双纵坐标函数plotyy在Metbb中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy函数,它能把具有不同量纲,不同数量级的两个函数绘制在同一个坐标中,有利于图形数据的对比分析。
使用格式为:plotyy(xl,yl,x2z y2)o对应一条曲线,x2,y2对应另一条曲线。
横坐标的标度相同,纵坐标有两个,左边的对应数据对,右边的对应x2,y2o (二)绘制图形的辅助操作绘制完图形以后,可能还需要对图形进行一些辅助操作,以使图形意义更加明确,可读性更强。
1 •图形标注在绘制图形时,可以对图形加上一些说明,如图形的名称、坐标轴说明以及图形某一部分的含义等,这些操作称为添加图形标注。
有关图形标注函数的调用格式为:title ('图形名称')(都放在单引号内)xlabel (' x 轴说明')ylabel (' y 轴说明')text (x, y,'图形说明')legend ('图例1','图例2',…)P190其中,title, xlabel和ybbel函数分别用于说明图形和坐标轴的名称。
text函数是在坐标点(x, y)处添加图形说明。
(P88或用gtext命令)。
legend函数用于绘制曲线所用线型、颜色或数据点标记图例,图例放置在空口处,用户还可以通过鼠标移动图例,将其放到所希望的位置。
除legend函数外,其他函数同样适用于三维图形,在三维中z坐标轴说明用zlabel函数。
上述函数中的说明文字,除了使用标准的ASCII字符外,还可以使用LaTex (一种流行的数学排版软件)格式的控制字符,这样就可以在图形上添加希腊字符,数学符号和公式等内容。
在Matlab支持的LaTex字符串中,用/bf ?/it,/rm控制字符分别定义黑体、斜体和正体字符,受LeTex字符串控制部分要加大扌舌号{}扌舌起来。
例如,text, , ' the usful {/bf MATLAB}?,将使MATLAB 一词黑体显示。
一些常用的LaTex字符见表,各个字符可以单独使用也可以和其他字符及命令配合使用。
如text,, sin({/omega}t+{/beta})')将得到标注效果。
2.坐标控制在绘制图形时,Matlab可以自动根据要绘制曲线数据的范围选择合适的坐标刻度,使得曲线能够尽可能清晰的显示出来。
所以,一般情况下用户不必选择坐标轴的刻度范围。
但是,如果用户对坐标不满意,可以利用axis函数对其重新设定。
其调用格式为axis ([xmin xmax ymin ymax zmin zmax])如果只给出前四个参数,则按照给出的X、y轴的最小值和最大值选择坐标系范围,绘制出合适的二维曲线。
如果给出了全部参数,则绘制出三维图形。
axis函数的功能丰富,其常用的用法有:axis equal :纵横坐标轴采用等长刻度axis square:产生正方形坐标系(默认为矩形)axis auto:使用默认设置axis off:取消坐标轴axis on :显示坐标轴还有:给坐标加网格线可以用grid命令来控制,grid on/off命令控制画还是不画网格线,不带参数的grid命令在两种之间进行切换。
给坐标加边框用box命令控制。
和grid 一样用法例:绘制分段函数,并添加图形标注。
(略)3.图形保持一般情况下,每执行一次绘图命令,就刷新一次当前图形窗口,图形窗口原有图形将不复存在,如果希望在已经存在的图形上再继续添加新的图形,可以使用图形保持命令holdo hold on/off命令是保持原有图形还是刷新原有图形,不带参数的hold命令在两者之间进行切换。
例:(略)4 •图形窗口分割在实际应用中,经常需要在一个图形窗口中绘制若干个独立的图形,这就需要对图形窗口进行分割。
分割后的图形窗口由若干个绘图区组成,每一个绘图区可以建立独立的坐标系并绘制图形。
同一图形窗口下的不同图形称为子图。
Matlab提供了subplot函数用来将当前窗口分割成若干个绘图区,每个区域代表一个独立的子图,也是一个独立的坐标系,可以通过subplot函数激活某一区,该区为活动区,所发出的绘图命令都是作用于该活动区域。
调用格式:subplot (m, n, p)该函数把当前窗口分成mXn个绘图区,m行,每行n个绘图区,区号按行优先编号。
其中第p个区为当前活动区。
每一个绘图区允许以不同的坐标系单独绘制图形。
例:(略)三.绘制二维图形的其他函数1.其他形式的线性直角坐标图在线性直角坐标中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别为:bar (x, y,选项)选项在单引号中stairs (x, y,选项)stem (x, y,选项)fill (xl, yl,选项2, x2, y2,选项2,…)前三个函数和plot的用法相似,只是没有多输入变量形式。
fill 函数按向量元素下标渐增次序依次用直线段连接x, y对应元素定义的数据点。
例5-&分别以条形图、填充图、阶梯图和杆图形式绘制曲线x=0::7;y 二2*exp*x);subplot(2,2,l);bar(x,y;g');title('bar(XM''g")');3xis([0, 7,0,2]);subplot(2/2/2);fill(x,y;r,);title(,fill(x/y/"r,,),);axis([O z 7, 0,2]);subplot(2,2,3);stairs(x,y,'b,);title('stairs(x,y,"b"),);axis([O/ 7, 0,2]);subplot(2,2,4);stem(x/y/k,);title(,stem(x,y/"k"),);axis([O, 7, 0,2]);■2.极坐标图polar函数用来绘制极坐标图,调用格式为:polar (theta, rho,选项)其中,theta为极坐标极角,rho为极径,选项的内容和plot函数相似。