MATLAB绘图功能大全
- 格式:doc
- 大小:84.50 KB
- 文档页数:25
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是一种常用的科学和工程计算软件,其具备强大的绘图功能。
其中,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的常用绘图功能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的实部为横坐标,虚部为纵坐标。
绘图指令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结。
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]分别为三个轴和三条曲线的图形句柄。
第五章Matlab绘图功能5.1 二维图形的绘制5.1.1 常用的二维图形绘图函数基本的二维绘图函数有plot ——绘制2维曲线;title ——给图形加标题;grid ——显示网格线;xlabel ——给x轴加标记;ylabel ——给y轴加标记;text ——在坐标图中加入文字注释。
π的曲线图。
例:画出函数x=,其中x从0到π2步进100yπ2sin/X=0:pi/100:2*pi;Y=sin(X);plot(X,Y); % 作图grid on; % 网格线显示,若该为grid off则不显示网格ylabel('y=sin 2\pi x'); % Y轴标注,可以有汉字xlabel('x'); % X轴标注,可以有汉字title('function plot y=sin 2\pi x'); % 图标题text(0.5,sin(0.5),'\leftarrow sin 2 \pi 0.5'); % text()可以在指定坐标处写文字标注text(2.3,sin(2.3),'\leftarrow sin 2 \pi 2.3'); % 所有标注中均可使用汉字% 对于特殊符号,如希腊字母,箭头等需要采用LaTeX格式结果如图5.1 所示。
图5.1 基本的二维绘图函数用法5.1.2 图形的线型和颜色控制在命令plot的高级用法中,可以设置作图的线型,标记类型,线和标记的颜色,粗细等特征。
用命令doc LineSpec和doc plot可以查询详细的帮助文档。
线型的定义如下:- solid line (default) 实线-- dashed line 虚线: dotted line 虚点连线-. dash-dot line 点划线常用标记的定义为:+ plus sign 十字标记o circle 小圈标记* asterisk 星号标记. point 黑点标记x cross 叉号标记s square 方框标记d diamond 菱形标记^ upward pointing triangle 上三角标记v downward pointing triangle 下三角标记> right pointing triangle 右三角标记< left pointing triangle 左三角标记p five-pointed star (pentagram) 五角星标记h six-pointed star (hexagram) 六角星标记颜色的定义是:r red 红g green 绿b blue 蓝c cyan 兰绿色m magenta 洋红y yellow 黄k black 黑w white 白另外,利用线型属性和标记属性可以随心所欲地设计作图图式。
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')。
MATLAB图形绘制技巧分享概述:MATLAB是一款功能强大的科学计算软件,其图形绘制功能十分出色。
通过灵活运用MATLAB的绘图函数和技巧,可以创建各种精美的图形,用于数据可视化、科研论文制作等方面。
本文将分享一些MATLAB图形绘制的技巧,帮助读者更好地驾驭这一工具。
一、基础绘图函数1. plot函数plot函数是最基础的绘图函数之一,可以绘制折线图、曲线图等。
通过设置不同的参数,可以调整线条颜色、样式、宽度等。
例如,使用plot(x, y, 'r--','LineWidth', 2)即可绘制红色虚线折线图,线宽为2。
2. scatter函数scatter函数用于绘制散点图,可以展示数据的分布特征。
通过设置参数,可以调整散点图的大小、颜色等属性。
例如,使用scatter(x, y, 50, 'filled', 'r')将绘制红色实心散点图,散点的大小为50。
3. bar函数bar函数用于绘制柱状图,适用于比较不同类别或组之间的数据。
可以通过设置参数调整柱子的宽度、颜色等属性。
例如,使用bar(x, y, 'FaceColor', [0.5 0.5 0.5])将绘制灰色柱状图。
4. pie函数pie函数用于绘制饼图,可以直观地展示数据的占比关系。
通过设置参数,可以调整饼图的颜色、字体等属性。
例如,使用pie(data, labels, explode, colors,'FontSize', 12)将绘制饼图,其中explode参数用于突出显示某一扇区,colors参数用于设置扇区的颜色。
二、高级图形绘制技巧1. 图形叠加MATLAB中可以将多个图形叠加在一张图中,通过hold on和hold off命令可以实现。
例如,在绘制折线图的同时,将散点图叠加在其中,可以用以下代码实现:```matlabx = 1:10;y1 = x.^2;y2 = x.^3;plot(x, y1, 'r--', 'LineWidth', 2);hold on;scatter(x, y2, 50, 'filled', 'b');hold off;```2. 子图绘制使用subplot函数可以在一张图中绘制多个子图,展示不同的数据或视角。
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为长度相同的向量,这是最常见、最基本的用法。
实际应用中还有一些变化。
2.含多个输入参数的plot函数plot函数可以包含若干组向量对,每一组可以绘制出一条曲线。
含多个输入参数的plot函数调用格式为:plot(x1,y1,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);>> y1=sin(x);>> y2=2*sin(x);>> y3=3*sin(x);>> x=[x;x;x]';>> y=[y1;y2;y3]';>> plot(x,y,x,cos(x))x,y都是含有三列的矩阵,它们组成输入参数对,绘制三条曲线;x和cos(x)又组成一对,绘制一条余弦曲线。
利用plot函数可以直接将矩阵的数据绘制在图形窗体中,此时plot函数将矩阵的每一列数据作为一条曲线绘制在窗体中。
如>> A=pascal(5)A =例用不同的线型和颜色在同一坐标内绘制曲线及其包络线。
>> x=(0:pi/100:2*pi)';>> y1=2*exp(-0.5*x)*[1,-1];>> y2=2*exp(-0.5*x).*sin(2*pi*x);>> x1=(0:12)/2;>> y3=2*exp(-0.5*x1).*sin(2*pi*x1);>> plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp');在该plot函数中包含了3组绘图参数,第一组用黑色虚线画出两条包络线,第二组用蓝色双划线画出曲线y,第三组用红色五角星离散标出数据点。
4.双纵坐标函数plotyy在Matlab中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy函数,它能把具有不同量纲,不同数量级的两个函数绘制在同一个坐标中,有利于图形数据的对比分析。
使用格式为:plotyy(x1,y1,x2,y2)。
x1,y1对应一条曲线,x2,y2对应另一条曲线。
横坐标的标度相同,纵坐标有两个,左边的对应x1,y1数据对,右边的对应x2,y2。
(二)绘制图形的辅助操作绘制完图形以后,可能还需要对图形进行一些辅助操作,以使图形意义更加明确,可读性更强。
1.图形标注在绘制图形时,可以对图形加上一些说明,如图形的名称、坐标轴说明以及图形某一部分的含义等,这些操作称为添加图形标注。
有关图形标注函数的调用格式为:title(’图形名称’)(都放在单引号内)xlabel(’x轴说明’)ylabel(’y轴说明’)text(x,y,’图形说明’)legend(’图例1’,’图例2’,…)P190其中,title、xlabel和ylabel函数分别用于说明图形和坐标轴的名称。
text函数是在坐标点(x,y)处添加图形说明。
(P88 或用gtext 命令)。
legend函数用于绘制曲线所用线型、颜色或数据点标记图例,图例放置在空白处,用户还可以通过鼠标移动图例,将其放到所希望的位置。
除legend函数外,其他函数同样适用于三维图形,在三维中z坐标轴说明用zlabel函数。
上述函数中的说明文字,除了使用标准的ASCII字符外,还可以使用LaTex(一种流行的数学排版软件)格式的控制字符,这样就可以在图形上添加希腊字符,数学符号和公式等内容。
在Matlab支持的LaTex字符串中,用/bf , /it , /rm控制字符分别定义黑体、斜体和正体字符,受LaTex字符串控制部分要加大括号{}括起来。
例如,text(0.3,0.5,’the usful {/bf MATLAB}’),将使MATLAB一词黑体显示。
一些常用的LaTex字符见表,各个字符可以单独使用也可以和其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.图形保持一般情况下,每执行一次绘图命令,就刷新一次当前图形窗口,图形窗口原有图形将不复存在,如果希望在已经存在的图形上再继续添加新的图形,可以使用图形保持命令hold。
hold on/off 命令是保持原有图形还是刷新原有图形,不带参数的hold命令在两者之间进行切换。
例:(略)4.图形窗口分割在实际应用中,经常需要在一个图形窗口中绘制若干个独立的图形,这就需要对图形窗口进行分割。
分割后的图形窗口由若干个绘图区组成,每一个绘图区可以建立独立的坐标系并绘制图形。
同一图形窗口下的不同图形称为子图。
Matlab提供了subplot函数用来将当前窗口分割成若干个绘图区,每个区域代表一个独立的子图,也是一个独立的坐标系,可以通过subplot函数激活某一区,该区为活动区,所发出的绘图命令都是作用于该活动区域。
调用格式:subplot(m,n,p)该函数把当前窗口分成m×n个绘图区,m行,每行n个绘图区,区号按行优先编号。
其中第p个区为当前活动区。
每一个绘图区允许以不同的坐标系单独绘制图形。
例:(略)三.绘制二维图形的其他函数1.其他形式的线性直角坐标图在线性直角坐标中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别为:bar(x,y,选项)选项在单引号中stairs(x,y,选项)stem(x,y,选项)fill(x1,y1,选项1,x2,y2,选项2,…)前三个函数和plot的用法相似,只是没有多输入变量形式。
fill 函数按向量元素下标渐增次序依次用直线段连接x,y对应元素定义的数据点。
例5-8:分别以条形图、填充图、阶梯图和杆图形式绘制曲线x=0:0.35:7;y=2*exp(-0.5*x);subplot(2,2,1);bar(x,y,'g');title('bar(x,y,''g'')');axis([0, 7, 0 ,2]);subplot(2,2,2);fill(x,y,'r');title('fill(x,y,''r'')');axis([0, 7, 0 ,2]);subplot(2,2,3);stairs(x,y,'b');title('stairs(x,y,''b'')');axis([0, 7, 0 ,2]);subplot(2,2,4);stem(x,y,'k');title('stem(x,y,''k'')');axis([0, 7, 0 ,2]);2.极坐标图polar函数用来绘制极坐标图,调用格式为:polar(theta,rho,选项)其中,theta为极坐标极角,rho为极径,选项的内容和plot函数相似。
例5-9:绘制的极坐标图theta=0:0.01:2*pi;rho=sin(3*theta).*cos(5*theta);polar(theta,rho,'r');3.对数坐标图在实际应用中,经常用到对数坐标,Matlab提供了绘制对数和半对数坐标曲线的函数,其调用格式为:semilogx(x1,y1,选项1,x2,y2,选项2,…)semilogy(x1,y1,选项1,x2,y2,选项2,…)loglog(x1,y1,选项1,x2,y2,选项2,…)这些函数中选项的定义和plot函数完全一样,所不同的是坐标轴的选取。