Matlab图形绘制技巧与实例展示
- 格式:docx
- 大小:37.92 KB
- 文档页数:5
Mat1ab技术工程图形绘制引言Mat1ab是一种极为强大的技术工程软件,提供了丰富的绘图功能。
在各个领域的科学研究和工程实践中,MatIab的图形绘制功能起到了至关重要的作用。
本文将介绍Mat1ab的技术工程图形绘制相关知识,并通过实例展示其应用。
一、MatIab绘图基础MatIab提供了多种绘图函数和工具箱,可以绘制各种类型的图形,如二维直线图、散点图、曲线图、柱状图、等高线图等。
其中最常用的绘图函数是p1ot函数。
p1ot函数可以用于绘制二维直线图和曲线图。
通过指定横坐标和纵坐标的数值,可以绘制出对应的线条。
此外,还可以通过设置线条的颜色、线型和线宽等参数,使得绘图更具美感和可读性。
二、技术工程绘图实例以下是一个工程实例,展示了如何使用MatIab进行技术工程图形绘制。
假设我们要绘制一条压力-体积图曲线,用于描述气体在不同压力下体积的变化关系。
首先,我们需要定义一组压力和体积的数据。
假设我们有以下数据:压力(P):[12345678910]体积(V):[105321.51.21.11.051.011]我们可以使用p1ot函数将这组数据绘制成一条曲线图:''v mat1abP=[12345678910];V=[105321.51.21.11.051.011];p1ot(P,V,T,,'1ineW汕h',2);在这段代码中,P表示横坐标,V表示纵坐标,K表示线条颜色为红色,1ineWidh表示线宽为2个像素。
运行这段代码,我们就可以得到一条表示压力一体积关系的曲线。
三、MatIab图形美化除了基本的绘图功能外,MatIab还提供了一些图形美化技巧,帮助我们生成更具视觉效果的技术工程图形。
首先,我们可以设置图形的标题、坐标轴标签和图例,使得图形的含义更加清晰明了:'''mat1abHt1eC压力.体积关系图,);X1abeIc压力(P),);y1abe1C体积(V),);IegendC压力•体积曲线’);其次,我们可以设置坐标轴的刻度范围和标记,使得图形的比例更加合理:''v mat1abx1im([012]);y1im([012]);xticks(0:2:12);yticks(0:2:12);最后,我们还可以添加网格线和背景颜色,提升图形的可读性:''v mat1abgridon;set(gca,,Co1or1,[0.90.90.9]);、、、通过这些简单的技巧,我们可以将简单的线条图美化为一个专业的技术工程图形。
三维绘图1 三维绘图指令2 基本XYZ立体绘图命令●mesh和plot是三度空间立体绘图的基本命令,mesh可画出立体网状图,plot则可画出立体曲面图,两者产生的图形都会依高度而有不同颜色。
下列命令可画出由函数形成的立体网状图:x=linspace(-2, 2, 25); % 在x轴上取25点y=linspace(-2, 2, 25); % 在y轴上取25点[xx,yy]=meshgrid(x, y); % xx和yy都是25x25的矩阵zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是21x21的矩阵mesh(xx, yy, zz); % 画出立体网状图●surf和mesh的用法类似:x=linspace(-2, 2, 25); % 在x轴上取25点y=linspace(-2, 2, 25); % 在y轴上取25点[xx,yy]=meshgrid(x, y); % xx和yy都是25x25的矩阵zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是25x25的矩阵surf(xx, yy, zz); % 画出立体曲面图●peaks为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:要画出此函数的最快方法即是直接键入peaks:peaksz = 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) ●我们亦可对peaks函数取点,再以各种不同方法进行绘图。
meshz可将曲面加上围裙:[x,y,z]=peaks;meshz(x,y,z);●waterfall可在x方向或y方向产生水流效果:[x,y,z]=peaks;waterfall(x,y,z);●下列命令产生在y方向的水流效果:[x,y,z]=peaks;waterfall(x',y',z');●meshc同时画出网状图与等高线:[x,y,z]=peaks;meshc(x,y,z);●surfc同时画出曲面图与等高线:[x,y,z]=peaks;surfc(x,y,z);●contour3画出曲面在三度空间中的等高线:contour3(peaks, 20);●contour画出曲面等高线在XY平面的投影:contour(peaks, 20);●plot3可画出三度空间中的曲线:t=linspace(0,20*pi, 501);plot3(t.*sin(t), t.*cos(t), t);亦可同时画出两条三度空间中的曲线:t=linspace(0, 10*pi, 501);plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t);3 三维绘图的主要功能绘制三维线图绘制等高线图绘制伪彩色图绘制三维网线图绘制三维曲面图、柱面图和球面图绘制三维多面体并填充颜色(一)三维线图plot3 ——基本的三维图形指令调用格式:plot3(x,y,z) —— 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绘制三维图形,首先需要了解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命令。
实验报告课程名称: 数学实验学院名称: 数学与统计学院班级:姓名:学号:2012-2013 学年第学期数学与统计学院制(二)参数方程作图例2: 画出星形线{ 及旋轮线{ 的图形解: 输入以下命令:%星形线作图t=linspace(0,2*pi,5000);x=2*(cos(t)).^3;y=2*(sin(t)).^3;plot(x,y),grid;结果:%旋轮线作图t=linspace(0,4*pi,5000); x=2*(t-sin(t));y=2*(1-cos(t));plot(x,y),axis equal; axis(0,8*pi,0,5);grid;结果:(三)极坐标方程图形例3:画出四叶玫瑰线的图形。
知其极坐标方程: ρ=acos(2 )。
解: 取a=5做图。
在命令窗口输入下命令theta=linspace(0,2*pi);r=2*cos(2*theta);polar(theta,r)结果:(四)空间曲面(线)的绘制例4: 绘制双曲抛物面z= 。
解:将其化为参数方程:{ , 编写m文件运行以下命令r=linspace(-4,4,30);s=r;[u,v]=meshgrid(r,s);x=u;y=v;z=(u.^2-v.^2)./4;surf(x,y,z);bix on;结果:(五)空间曲线在坐标平面上的投影曲面和投影柱面例5: 画出螺旋线{ , 在xOz面上的正投影曲线的图形。
解:化为参数方程{ , 运行下列程序t=linspace(-2*pi,2*pi);x=10*cos(t);z=2*t;h=plot(x,z);grid;xlabel('x');ylabel('z');set(h,'linewidth',2);结果:(一)实验分析:(二)在本次实验中我们初步了解了matlab。
(三)学会了一些简单绘图。
(四)在编制中我们要很明确“点乘的重要性”。
MATLAB中的三维图形绘制与动画制作技巧引言MATLAB是一种强大的科学计算软件,广泛应用于工程、物理、数学等各个领域。
其中,三维图形绘制和动画制作是其功能的重要一部分。
本文将深入探讨MATLAB中三维图形绘制与动画制作的技巧,并给出一些实用的示例。
一、三维图形绘制1. 坐标系的设定在绘制三维图形之前,我们需要设定坐标系。
通过使用MATLAB的figure函数和axes函数,我们可以创建一个三维坐标系,并设置其属性,如坐标轴的范围、标签等。
2. 点的绘制在三维图形中,最基本的图元是点。
通过scatter3函数,我们可以绘制出一系列点的三维分布情况。
可以通过设置点的大小、颜色、透明度等属性,增加图像的美观性。
3. 曲线的绘制MATLAB提供了多种绘制曲线的函数,如plot3、line、quiver等。
通过这些函数,我们可以绘制各种样式的曲线,例如直线、曲线、矢量、流线等。
我们可以根据需要设置线条的样式、颜色、宽度等属性。
4. 曲面的绘制除了曲线,我们还可以绘制三维曲面。
通过函数mesh、surf和contour,我们可以绘制出具有平滑外形的曲面。
可以通过设置颜色映射和透明度等属性,使得曲面具有更加细腻的外观。
二、动画制作1. 创建动画对象要制作动画,我们需要先创建一个动画对象。
通过使用MATLAB的videoWriter函数,我们可以创建一个视频文件,并设置其参数,如帧率、分辨率等。
2. 绘制关键帧动画的核心是绘制一系列关键帧,并在每一帧之间进行插值。
通过在每一帧中修改图形对象的属性,我们可以实现对象的平移、旋转和缩放等变换。
通过MATLAB提供的getframe函数,我们可以将当前图像存储为一个帧对象。
3. 帧之间的插值在关键帧之间,我们需要进行插值,以平滑动画的过渡。
通过使用MATLAB 的linspace函数,我们可以生成两个关键帧之间的若干插值。
然后,我们可以在每个插值处更新图形对象的属性,从而实现动画效果。
如何在Matlab中进行二维和三维绘图在科学研究和工程领域,数据可视化是一项十分重要的任务,而Matlab作为一种功能强大的数值计算和数据分析软件,自然也提供了丰富的绘图功能。
本文将介绍如何在Matlab中进行二维和三维绘图,并探讨一些常见的绘图技巧和应用。
一、二维绘图Matlab中的二维绘图是最常见和基础的绘图任务之一。
在绘制二维图形时,我们通常会用到plot函数。
这个函数可以接受单个向量作为输入,将这个向量的值作为y轴上的数据点,自动生成与该向量长度相同的x轴坐标。
例如,我们可以用以下代码绘制一个简单的二维折线图:```x = 0:0.1:2*pi;y = sin(x);plot(x, y);```上述代码中,x参量取从0到2π的均匀间隔的值,而y则是根据x计算得到的sin函数值。
plot函数会自动根据输入绘制折线图,并添加相应的轴标签和图例。
在实际应用中,我们经常需要绘制多条曲线在同一个坐标系中进行对比分析。
可以通过在plot函数中传入多个x和y向量实现这一功能。
例如,我们可以通过以下代码绘制一个简单的双曲线图:```x = 0:0.1:2*pi;y1 = sin(x);y2 = cos(x);plot(x, y1, x, y2);```这样,就会在同一个坐标系中同时绘制sin曲线和cos曲线。
除了折线图,Matlab还支持其他常见的二维绘图类型,如散点图、柱状图和面积图等。
这些绘图类型可以通过不同的函数实现,例如scatter、bar和area等。
这里不再一一赘述,读者可以通过Matlab的帮助文档或官方网站了解更多的用法和示例。
二、三维绘图除了二维绘图,Matlab也提供了丰富的三维绘图功能,用于可视化更为复杂的数据和模型。
在绘制三维图形时,我们通常会用到surf函数。
这个函数可以接受两个二维矩阵作为输入,将这两个矩阵的值分别作为x、y轴上的坐标,而将第三个二维矩阵的值作为z轴上的数据点。
MATLAB图形用户界面设计与实例展示一、引言在当今科技发展日新月异的时代,图形用户界面(Graphical User Interface,简称GUI)已经成为了我们日常生活和工作中不可或缺的一部分。
作为一种直观、交互式的界面设计方式,GUI已经广泛应用于各个领域,包括但不限于商业软件、教育应用、科学研究等。
在本文中,我们将聚焦于MATLAB图形用户界面的设计与实例展示。
二、MATLAB GUI简介MATLAB是一种强大的数值计算和数据分析工具,其广泛的功能和开放的界面设计平台使得用户可以自由地根据自己的需求进行个性化的界面设计。
MATLAB提供了一系列GUI的工具箱,包括“GUIDE(Graphical User Interface Development Environment)”以及可视化编程语言“App Designer”,这些工具箱可以帮助用户快速构建自己的图形用户界面。
三、MATLAB GUI设计的基本原则1.简洁明了:在设计GUI时,我们应该尽量避免过多的冗余信息和复杂的布局,保持界面简洁明了,以便用户能够快速理解和使用。
2.一致性:保持界面的一致性是GUI设计的重要原则之一。
在整体风格、按钮布局、颜色选择等方面保持统一,可以提高用户的使用体验。
3.友好交互:GUI的主要目的是提高用户的交互体验。
在设计时,我们应该注重用户的感受,尽量使用户操作简单、直观,避免繁琐的步骤和复杂的操作。
四、MATLAB GUI实例展示1.数据可视化界面我们可以利用MATLAB的强大绘图功能来设计一个数据可视化界面,将用户所输入的数据实时可视化展示出来。
例如,我们可以设计一个简单的数据收集和绘图界面,用户可以通过GUI界面输入自己的数据,并选择绘制的类型和样式,最后点击绘图按钮,即可在界面上看到实时的绘图结果。
2.图像处理界面利用MATLAB的图像处理工具箱,我们可以设计一个图像处理界面,方便用户进行图像的编辑、增强和处理等操作。
help plothelp axisa1=plot();hlod ona2=plot();legend([a1 a2],'图1 名',‘图2 名')hold offx1=-pi:pi/12:pi;x2=-pi:pi/12:pi;y1=sin(x1);y2=cos(x2);plot(x1,y1,x2,y2);axis([-2*pi 2*pi -2 2]);xlabel('x');ylabel('y');title('sin(x) & cos(x)');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])重新设定;2)坐标轴控制: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].2.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 矩阵中各行或列对应于向量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)3) 如果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';figureplot(x,y)在这个例子中,x------3x101,y------3x101,所以第一个plot 按列画出101 条曲线,每条3 个点;而x'------101x3,y'------101x3,所以第二个plot 按列画出3 条曲线,每条101 个点.3.多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……)上面的plot 格式中,选项是指为了区分多条画出曲线的颜色,线型及标记点而设定的曲线的属性.MATLAB 在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来.这些选项如下表所示:各种颜色属性选项'r' 红色'm' 粉红'g' 绿色'c' 青色'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 后,可以保持坐标系中已绘出的图形.还可以进一步设置包括线的宽度(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) %设置标记点的尺寸为104.双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')stem:绘制stem 形式的曲线(上端带圈的竖线).绘图结果:两条图线自动用不同的颜色区分,两个坐标的颜色与图线的颜色相对应,左边的Y 轴坐标对应的是plot 形式的曲线,右边的Y 坐标对应的是stem 形式的曲线.二.对数坐标图绘制函数:在对数坐标图的绘制中,有三种绘图函数:semilogx,semilogy 和loglog 函数.1)semilogx( )------绘制以X 轴为对数坐标轴的对数坐标图. 其调用格式为:semilogx(x,y,'属性选项')其中属性选项同plot 函数.该函数只对横坐标进行对数变换,纵坐标仍为线性坐标.2)semilogy( )------绘制以Y 轴为对数坐标轴的对数坐标图. 其调用格式为:semilogy(x,y,'属性选项')该函数只对纵坐标进行对数变换,横坐标仍为线性坐标.3)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)四.绘制多个子图:subplot( )函数MATLAB 允许在一个图形窗口上绘制多个子图(如对于多变量系统的输出),允许将窗口分成nxm 个部分.分割图形窗口用subplot 函数来实现,其调用格式为:subplot(n,m,k)或subplot(nmk)------n,m 分别表示将窗口分割的行数和列数,k 表示要画图部分的代号,表示第几个图形,nmk 三个数可以连写,中间不用符号分开.例如:将窗口划分成2x2=4 个部分,可以这样写:subplot(2,2,1),plot(……)subplot(2,2,2),……subplot(2,2,3),……subplot(2,2,4),……注: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.如: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')5)在图形中添加图例框:legend 函数其调用格式为:A.legend('字符串1', '字符串2', ……)------以字符串1,字符串2……作为图形标注的图例.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')6)用鼠标点选屏幕上的点:ginput 函数格式为:[x, y, button]=ginput(n)其中:n 为所选择点的个数;x,y 均为向量,x 为所选n 个点的横坐标;y 为所选n个点的纵坐标.button 为n 维向量,是所选n 个点所对应的鼠标键的标号:1------左键;2------中键;3------右键.可用不同的鼠标键来选点,以区别所选的点.此语句可以放在绘图语句之后,它可在绘出的图形上操作,选择你所感兴趣的点,如峰值点,达到稳态值的点等,给出点的坐标,可求出系统的性能指标.第四节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])C.还可对坐标轴的显示刻度进行定义: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'])本例中用'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'------ 轴颜色, 值为颜色向量如何在画好曲线后再在图上标刻度就是想在一些特定的点边上标上一串30.60.90~7200递增的数据,共有96个点要标!!im = imread(url);imshow(im)然后输入:text(100,100,'\o ','Color','red');matlab,用imread 读入一个图片,我想在图上的一些坐标点上做标记。
案例28使用MATLAB 绘制专业图形绘制曲线和曲面图案例主要信息提示 ● 案例内容:使用MATLAB 进行专业作图。
● 关键词:MATLAB ,作图,二维作图,三维作图 ● 建议课时:2课时● 适合专业:理工科各专业●光盘中的数字资源:二维曲线绘图M 文件graph_line.m三维曲面绘图M 文件graph_surface.m一、 实验内容实验内容1.绘制曲线图在1个绘图窗口的4个不同子窗口中分别绘制以下曲线: ①在子窗口1中绘制两条二维曲线,分别为:0.510.2cos(4)x y e x π-=和0.522cos()x y e x π-=并显示网格线。
②在子窗口2中绘制两条二维曲线,分别为:0.512x y e -=和2cos(2)y x π=并添加标题、x/y 轴名称、图形说明和图例。
③在子窗口3中绘制一条极坐标曲线,如下:sin()cos()r t t =④在子窗口4中绘制一条极三维螺旋线。
全部4个子窗口绘制效果如图28-1所示。
图28-1曲线绘制效果图实验内容2.绘制曲面图在1个绘图窗口的4个不同子窗口中分别绘制以下曲面:①在子窗口1和子窗口2中以不同着色方式绘制两个球面。
②在子窗口3和子窗口4中以不同视角绘制两个直径相等的圆管相交的图形。
全部4个子窗口绘制效果如图28-2所示。
图28-1曲面绘制效果图二、预备知识2.1 MATLAB绘图功能简介MA TLAB软件提供了丰富的图形表达功能,包括常用的二维图形和三维图形。
其中,各种二维图形近30种,三维图形20多种。
应用MA TLAB除了能作一般的曲线、散点图、条形图等,还能绘制流线图、三维矢量图等工程实用图形。
下面我们介绍一些基本的二维和三维绘图函数。
2.2 二维图形的绘制二维图形是将平面坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。
二维图形的绘制是其他绘图操作的基础。
2.2.1绘制二维曲线的plot函数在MATLAB中,plot函数是最简单、最基本而且应用最为广泛的线性绘图函数,利用它可以在二维平面上生成线段、曲线和参数方程曲线等的函数图形。
三维绘图1三维绘图指令2基本XYZ 立体绘图命令●mesh 和plot 是三度空间立体绘图的基本命令,mesh 可画出立体网状图,plot 则可画出立体曲面图,两者产生的图形都会依高度而有不同颜色。
下列命令可画出由函数形成的立体网状图:x=linspace(-2,2,25);%在x 轴上取25点 y=linspace(-2,2,25);%在y 轴上取25点[xx,yy]=meshgrid(x,y);%xx 和yy 都是25x25的矩阵zz=xx.*exp(-xx.^2-yy.^2);%计算函数值,zz 也是21x21的矩阵 mesh(xx,yy,zz);%画出立体网状图● surf 和mesh 的用法类似:x=linspace(-2,2,25);%在x 轴上取25点y=linspace(-2,2,25);%在y轴上取25点[xx,yy]=meshgrid(x,y);%xx和yy都是25x25的矩阵zz=xx.*exp(-xx.^2-yy.^2);%计算函数值,zz也是25x25的矩阵surf(xx,yy,zz);%画出立体曲面图●peaks为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:要画出此函数的最快方法即是直接键入peaks:peaksz=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)●我们亦可对peaks函数取点,再以各种不同方法进行绘图。
meshz可将曲面加上围裙:[x,y,z]=peaks;meshz(x,y,z);●waterfall可在x方向或y方向产生水流效果:[x,y,z]=peaks;waterfall(x,y,z);●下列命令产生在y方向的水流效果:[x,y,z]=peaks;waterfall(x',y',z');●meshc同时画出网状图与等高线:[x,y,z]=peaks;meshc(x,y,z);●surfc同时画出曲面图与等高线:[x,y,z]=peaks;surfc(x,y,z);●contour3画出曲面在三度空间中的等高线:contour3(peaks,20);●contour画出曲面等高线在XY平面的投影:contour(peaks,20);●plot3可画出三度空间中的曲线:t=linspace(0,20*pi,501);plot3(t.*sin(t),t.*cos(t),t);亦可同时画出两条三度空间中的曲线:t=linspace(0,10*pi,501);plot3(t.*sin(t),t.*cos(t),t,t.*sin(t),t.*cos(t),-t);3三维绘图的主要功能绘制三维线图绘制等高线图绘制伪彩色图绘制三维网线图?绘制三维曲面图、柱面图和球面图?绘制三维多面体并填充颜色(一)三维线图plot3?——?基本的三维图形指令调用格式:plot3(x,y,z)?——?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五种图形绘制⽅法的后三种。
⼀、⽹格图形绘制以绘制函数z=f(x,y)三维⽹格图为例,下⾯为绘制步骤:1. 确定⾃变量x和y的取值范围和取值间隔 x = x1:dx:x2; y = y1:dy:y2; 2.构成xoy平⾯上的⾃变量采样格点矩阵 1)利⽤“格点”矩阵⽣成原理⽣成矩阵 X = ones(size(y))*x; Y = y*ones(size(x)); 2)利⽤meshgrid命令⽣成“格点”矩阵 [X,Y] = meshgrid(x,y); 3.计算在⾃变量采样“格点”上的函数值 1) mesh(X,Y,X) 2) mesh(Z) 3) mesh(X,Y,Z,C) 4) mesh(X,Y,Z,’PropertyName’,PropertyValue,...)实例:绘制的图像,并作定义域的裁剪。
clear,clf,a = -1;b = 1;c = -15;d = 15;n = 20;eps1 = 0.01;x = linspace(a,b,n);y = linspace(c,d,n);[X,Y] = meshgrid(x,y);% 计算函数值z,并做函数的定义域剪裁for i = 1:nfor j = 1:nif(1-X(i,j))<eps1 || X(i,j) - Y(i,j) < eps1Z(i,j) = NaN;elseZ(i,j) = 1000*sqrt(1 - X(i,j))^-1.*log(X(i,j)-Y(i,j));endendend% 画定义域边界线zz = -20*ones(1,n);plot3(x,x,zz),grid on,hold onview([-56.538]);xlabel('x'),ylabel('y'),zlabel('z'),box on结果:⼆、曲⾯图形绘制曲⾯图形的绘制使⽤surf函数完成,与mesh函数类似。
matlab中如何在指定一点画一个填充颜色的小圆plot(1,1,'r.','markersize',50)二维作图绘图命令plot绘制x-y坐标图;loglog命令绘制对数坐标图; semilogy命令绘制半对数坐标图;polor命令绘制极坐标图.基本形式如果y是一个向量,那么plot(y)绘制一个y中元素的线性图. 画出y=[0., 0.48, 0.84, 1., 0.91, 6.14 ]则用命令:plot(y)它相当于命令:plot(x, y),其中x=[1,2,…,n]或x=[1;2;…;n],标编号,n为向量y的长度Matlab会产生一个图形窗口,显示如下图形,请注意:坐标机自动绘出的.semilogx 和假设我们希望即向量y的下x和y是由计算上面的图形没有加上x轴和y轴的标注,也没有标题.用xlabel, ylabel , title 命令可以加上.如果x, y是同样长度的向量,plot(x,y)命令可画出相应的x元素与y元素的x-y坐标图.例:x=0:0.05:4*pi; y=s in (x); plot(x,y)grid on, title(' y=sin( x )曲线图')xlabel(' x = 0 : 0.05 : 4Pi ')结果见下图.图4.1.1.2 y=sin(x)的图形titlexlabel x坐标轴标注ylabel y坐标轴标注图形标题text标注数据点lege nd在右上角加解释文字grid 给图形加上网格hold 保持图形窗口的图形表4.1.1.1 Matlab 图形命令多重线在一个单线图上,绘制多重线有三种办法第一种方法是利用plot的多变量方式绘制: plot(x1,y1,x2,y2,...,x n,yn)x1,y1,x2,y2,...,xn,yn是成对的向量,每一对x, y在图上产生如上方式的单线•多变量方式绘图是允许不同长度的向量显示在同一图形上.第二种方法也是利用plot绘制,但加上hold on/off命令的配合:plot(x1,y1)hold onplot(x2,y2)hold off第三种方法还是利用plot绘制,但代入矩阵:如果plot用于两个变量plot(x,y),并且x, y是矩阵,则有以下情况:(1)如果y是矩阵,x是向量,plot(x,y)用不同的画线形式绘出y的行或列及相应的x向量,y的行或列的方向与x向量元素的值选择是相同的.(2)如果x是矩阵,y是向量,则除了x向量的线族及相应的y向量外,以上的规则也适用.(3)如果x,y是同样大小的矩阵,plot(x,y)绘制x的列及y相应的列.还有其它一些情况,请参见Matlab的帮助系统.线型和颜色的控制如果不指定划线方式和颜色,Matlab会自动为您选择点的表示方式及颜色.您也可以用不同的符号指定不同的曲线绘制方式.例如:plot(x,y,'*') 用'*'作为点绘制的图形.plot(x1,y1,':',x2,y2,'+') 用':'画第一条线,用’+'画第二条线.线型、点标记和颜色的取值有以下几种:线型点标记颜色实线.占y黄虚线o小圆圈m棕色点划线x叉子符c青色间断线+加号r红色*星号g绿色s方格b蓝色d菱形w白色A朝上三角k黑色v朝下三角>朝右三角<朝左三角p五角星h六角星表4.131线型和颜色控制符如果你的计算机系统不支持彩色显示,Matlab将把颜色符号解释为线型符号,用不同的线型表示不同的颜色. 颜色与线型也可以一起给出,即同时指定曲线的颜色和线型.例如:t=-3.14:0.2:3.14;x=si n( t); y=cos(t);plot(t,x, '+r',t,y, '-b')图4.1.3.1不同线型、颜色的sin,cos图形对数图、极坐标图及条形图loglog、semilogx、semilogy和polar的用法和plot相似.这些命令允许数据在不同的graph paper上绘制,例如不同的坐标系统.先介绍的fplot是扩展来的可用于符号作图的函数.fplot(fname,lims)绘制fname指定的函数的图形.polar( theta, rho)使用相角theta为极坐标形式绘图,相应半径为rho,其次可使用grid命令画出极坐标网格.loglog 用log10-log10 标度绘图.semilogx用半对数坐标绘图,x轴是log10 , y是线性的.semilogy用半对数坐标绘图,y轴是log10,x是线性的.bar(x)显示x向量元素的条形图,bar不接受多变量.hist绘制统计频率直方图.histfit(data ,n bi ns)绘制统计直方图与其正态分布拟合曲线.fplot函数的绘制区域为lims=[xmin,xmax],也可以用Iims=[xmin,xmax,ymin,ymax]指定y轴的区域.函数表达式可以是一个函数名,如sin , tan等;也可以是带上参数x的函数表达式,如sin(x), diric(x,10);也可以是一个用方括号括起的函数组,如[sin, cos].例1: fplot('sin',[0 4*pi])例2:fplot('sin(1 ./x)', [0.01 0.1])例3: fplot('abs(exp(-j*x*(0:9))*ones(10,1))',[0 2*pi],'-o')例4:fplot('[sin(x), cos(x) , tan(x)]',[-2*pi 2*pi -2*pi 2*pi]) %%(图4.141)图4.1.4.1 sin,cos,tan 函数图形图4.1.4.2半对数图下面介绍的是其它几个作图函数的应用. 例5:半对数坐标绘图t=0.001:0.002:20;y=5 + log(t) + t;semilogx(t,y, 'b')hold onsemilogx(t,t+5, 'r') %%(图4.142)例6:极坐标绘图t=0:0.01:2*pi;polar(t,si n( 6*t)) %% (图4.143)图4.1.4.3极坐标绘图图4.1.4.4正态分布的统计直方图与其正态分布拟合曲线例7:正态分布图我们可以用命令normrnd生成符合正态分布的随机数.n ormrnd(u,v,m, n)其中,u表示生成随机数的期望,v代表随机数的方差.运行:a=n ormrnd(10,2,10000,1);histfit(a) %% (图4.144)我们可以得到正态分布的统计直方图与其正态分布拟合曲线.例&比较正态分布(图4.145( 1))与平均分布(图4.145( 2))的分布图: yn=ra ndn(30000,1); %% 正态分布x=min(yn) : 0.2 : max( yn);subplot(121)hist( yn, x)yu=ra nd(30000,1); %% 平均分布subplot(122)hist(yu, 25)4.145(1) 4.145(2)图4.1.4.5正态分布与平均分布的分布图在绘图过程中,经常要把几个图形在同一个图形窗口中表现出来,而不是简单地叠加(例如上面的例8).这就用到函数subplot .其调用格式如下:subplot( m,n ,p)subplot函数把一个图形窗口分割成m x n个子区域,用户可以通过参数p调用个各子绘图区域进行操作.子绘图区域的编号为按行从左至右编号.例9:绘制子图x=0:0.1*pi:2*pi; subplot(2,2,1) plot(x,s in (x),'-*'); title('si n(x)'); subplot(2,2,2)plot(x,cos(x),'--o'); title('cos(x)'); subplot(2,2,3) plot(x,s in (2*x),'-.*'); title('sin(2x)'); subplot(2,2,4); plot(x,cos(3*x),':d')title('cos(3x)')得到图形如下:图4.1.5.1子图利用二维绘图函数patch,我们可绘制填充图•绘制填充图的另一个函数为fill.下面的例子绘出了函数humps (一个Matlab演示函数)在指定区域内的函数图形. 例10:用函数patch绘制填充图fplot('humps',[0,2],'b') hold onpatch([0.5 0.5:0.02:1 1],[0 humps(0.5:0.02:1) 0],'r');hold offtitle('A region under an interesting function.')grid图4.1.6.1填充图我们还可以用函数fill来绘制类似的填充图. 例11:用函数fill绘制填充图x=0:pi/60:2*pi;y=si n( x);x1=0:pi/60:1;y1=s in( x1);plot(x,y,'r');hold onfill([x1 1],[y1 0],'g')图4.162填充图三维作图mesh(Z)语句可以给出矩阵Z元素的三维消隐图,网络表面由Z坐标点定义,与前面叙述的x-y平面的线格相同,图形由邻近的点连接而成.它可用来显示用其它方式难以输出的包含大量数据的大型矩阵,也可用来绘制Z变量函数.显示两变量的函数Z=f(x,y),第一步需产生特定的行和列的x-y矩阵.然后计算函数在各网格点上的值.最后用mesh函数输出.下面我们绘制sin(r)/r函数的图形.建立图形用以下方法:x=-8:.5:8;y=x';x=on es(size(y))*x;y=y* on es(size(y))';R=sqrt(x.A2+y.A2)+eps;z=si n(R)./R;mesh(z) %% 试运行mesh(x,y,z),看看与mesh(z)有什么不同之处?(坐标问题)各语句的意义是:首先建立行向量x,列向量y;然后按向量的长度建立1- 矩阵;用向量乘以产生的1-矩阵,生成网格矩阵,它们的值对应于x-y坐标平面; 接下来计算各网格点的半径;最后计算函数值矩阵Z •用mesh函数即可以得到图形.图4.2.1三维消隐图第一条语句x的赋值为定义域,在其上估计函数;第三条语句建立一个重复行的x矩阵,第四条语句产生y的响应,第五条语句产生矩阵R (其元素为各网格点到原点的距离)•用mesh方法结果如上.另外,上述命令系列中的前4行可用以下一条命令替代:[x, y]=meshgrid(-8:0.5:8)(1)meshc与函数mesh的调用方式相同,只是该函数在mesh的基础上又增加了绘制相应等高线的功能•下面来看一个meshc的例子:[x,y]=meshgrid([-4:.5:4]);z=sqrt(x.A2+y.A2);meshc(z) %% 试运行meshc(x,y,z),看看与meshc(z)有什么不同之处?我们可以得到图形:图 4.2.2.1 meshc 图地面上的圆圈就是上面图形的等高线.(2)函数meshz 与mesh的调用方式也相同,不同的是该函数在mesh函数的作用之上增加了屏蔽作用,即增加了边界面屏蔽•例如:[x,y]=meshgrid([-4:.5:4]);z=sqrt(x.A2+y.A2);meshz(z) %% 试运行meshz(x,y,z),看看与meshz(z)有什么不同之处?我们得到图形:图 4.2.2.2 meshz 图(1)在Matlab中有一个专门绘制圆球体的函数sphere,其调用格式如下:[x,y,z]=sphere( n)此函数生成三个(n+1) x (n+1)阶的矩阵,再利用函数surf(x,y,z)可生成单位球面. [x,y,z]=sphere 此形式使用了默认值n=20sphere( n) 只绘制球面图,不返回值.运行下面程序:sphere(30);axis square;我们得到球体图形:图4.2.3.1 球面图若只输入sphere画图,则是默认了n=20的情况.⑵surf函数也是Matlab中常用的三维绘图函数.其调用格式如下:surf(x,y, z,c)输入参数的设置与mesh相同,不同的是mesh函数绘制的是一网格图,而surf绘制的是着色的三维表面.Matlab语言对表面进行着色的方法是,在得到相应网格后,对每一网格依据该网格所代表的节点的色值(由变量c控制),来定义这一网格的颜色.若不输入C,则默认为c=z.我们看下面的例子:%绘制地球表面的气温分布示意图.[a,b,c]=sphere(40);t=abs(c); %求绝对值surf(a,b,c,t);axis equalcolormap('hot')我们可以得到图形如下:图423.2等温线示意图(1)坐标轴的控制函数axis ,调用格式如下:axis([xmi n,xmax,ymi n,ymax,zmi n,zmax]) 用此命令可以控制坐标轴的范围. 与axis 相关的几条常用命令还有:严格控制各坐标的分度使其相等使绘图区为正方形恢复对坐标轴的一切设置 取消对坐标轴的一切设置 以当前的坐标限制图形的绘制(2) grid on 在图形中绘制坐标网格.grid off 取消坐标网格.(3) xlabel, ylabel, zlabel 分别为x 轴,y 轴,z 轴添加标注.title 为图形添加 标题. 以上函数的调用格式大同小异,我们以 xlabel 为例进行介绍:axis auto自动模式,使得图形的坐标范围满足图中一切图 axis equal axis square axis onaxis offaxis manualxlabel('标注文本','属性1','属性值1','属性2','属性值2',…)这里的属性是标注文本的属性,包括字体大小、字体名、字体粗细等.例如:[x, y]=meshgrid(-4:.2:4);R=sqrt(x.A2+y.A2);z=-cos(R);mesh(x,y,z)xlabel('x\i n[-4,4]','fo ntweight','bold');ylabel('y\i n[-4,4]','fo ntweight','bold');zlabel('z=-cos(sqrt(xA2+yA2))','fo ntweight','bold');title('旋转曲面','fontsize',15,'fontweight','bold','fontname','隶书');图424.1添加标注以上各种绘图方法的详细用法,请看联机信息.对平面上 n 个点. -■ ■L 1i在平面直线族{ 为实数}中寻求一条直线到与散点相对应的在直线上的点之间的纵坐标的误差的平方和最小, 方法可得:旅曲曲面*〔44】xtM4]◎L為戸—(艺禹)(乏>。
Matlab绘制三维图形三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。
当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
例绘制三维曲线。
程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title('Line in 3-D Space');xlabel('X');ylabel('Y');zlabel('Z');三维曲面1.产生三维数据在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格式为:x=a:d1:b; y=c:d2:d;[X,Y]=meshgrid(x,y);语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
2.绘制三维曲面的函数surf函数和mesh函数的调用格式为:mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。
surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。
一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点上的高度矩阵,c 用于指定在不同高度下的颜色范围。
例绘制三维曲面图z=sin(x+sin(y))-x/10。
程序如下:[x,y]=meshgrid(0:0.25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐标z=sin(x+sin(y))-x/10;mesh(x,y,z);axis([0 4*pi 0 4*pi -2.5 1]);此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。
Matlab图形绘制技巧与实例展示
一、介绍
Matlab是一种功能强大的计算机软件,常用于科学计算和数据可视化分析。
其中,图形绘制是Matlab的一项重要功能,能够直观地展示数据和结果。
本文将探讨一些Matlab图形绘制的技巧,并通过实例展示其应用。
二、基础图形绘制
Matlab提供了多种基础图形绘制函数,如plot、scatter、bar等。
这些函数可以用来绘制折线图、散点图、柱状图等常见图形。
例如我们可以使用plot函数绘制一个简单的折线图:
```matlab
x = 1:10;
y = [1, 2, 3, 4, 5, 4, 3, 2, 1, 0];
plot(x, y);
```
运行以上代码,就可以得到一个由点连接而成的折线图。
通过修改x和y的取值,可以得到不同形状和样式的折线图。
三、图形修饰
在绘制图形时,我们通常需要添加标题、坐标轴标签、图例等进行修饰。
Matlab提供了相应的函数,如title、xlabel、ylabel、legend等。
下面是一个例子:```matlab
x = 1:10;
y = [1, 4, 9, 16, 25, 16, 9, 4, 1, 0];
plot(x, y);
title('Parabolic Curve');
xlabel('X-axis');
ylabel('Y-axis');
legend('Curve');
```
执行以上代码,我们得到一个带有标题、坐标轴标签和图例的折线图。
四、子图绘制
有时候,我们希望在一幅图中同时显示多个子图,以便比较它们之间的关系。
Matlab提供了subplot函数来实现这个功能。
下面是一个例子:
```matlab
x = 1:10;
y1 = [1, 2, 3, 4, 5, 4, 3, 2, 1, 0];
y2 = [0, 1, 0, 1, 0, 1, 0, 1, 0, 1];
subplot(2, 1, 1);
plot(x, y1);
title('Subplot 1');
subplot(2, 1, 2);
plot(x, y2);
title('Subplot 2');
通过subplot函数,我们将一幅图分为两个子图,并在每个子图中绘制不同的
折线图。
五、三维图形绘制
除了二维图形,Matlab还支持绘制三维图形,如曲面图、散点图等。
通过surf
函数可以绘制一个简单的曲面图:
```matlab
[X, Y] = meshgrid(-2:0.2:2, -2:0.2:2);
Z = X.^2 + Y.^2;
surf(X, Y, Z);
```
上述代码中,我们定义了X和Y的取值范围,并根据一个二元函数计算出对
应的Z值。
通过surf函数,我们可以将X、Y和Z联合起来绘制出一个三维曲面图。
六、自定义图形样式
除了使用Matlab提供的默认样式,我们还可以自定义图形的样式,以便更好
地展示数据。
Matlab提供了丰富的选项和参数,用于控制图形的各个方面。
例如,我们可以修改折线图中的线型、颜色和标记:
```matlab
x = 1:10;
y = [1, 2, 3, 4, 5, 4, 3, 2, 1, 0];
plot(x, y, 'r--o');
在plot函数的参数中,'r--o'表示线型为红色虚线,且带有圆形标记。
通过使用
不同的参数,我们可以轻松地修改图形的样式和绘制效果。
七、实际应用示例
在实际应用中,我们通常需要将Matlab图形与数据分析结合起来,用于可视
化分析和结果展示。
下面是一个示例,展示如何将图形绘制应用于数据拟合和展示:```matlab
% 生成样本数据
x = linspace(0, 2*pi, 100);
y = sin(x) + 0.2*randn(size(x));
% 拟合数据
p = polyfit(x, y, 3);
y_fit = polyval(p, x);
% 绘制图形
plot(x, y, 'ko', x, y_fit, 'r--');
title('Data Fitting');
xlabel('X-axis');
ylabel('Y-axis');
legend('Data', 'Fitted Curve');
```
上述代码中,我们首先生成包含噪声的正弦函数的样本数据。
然后,使用polyfit函数对数据进行多项式拟合,得到拟合曲线的参数。
最后,通过plot函数将原始数据和拟合曲线绘制在一幅图中,以便观察数据拟合的效果。
八、结论
本文介绍了Matlab图形绘制的基础知识和常用技巧,并通过实例展示了其在科学计算和数据可视化分析中的应用。
通过熟练掌握这些技巧,我们可以更好地展示和分析数据,为科研和工程实践提供有力支持。
希望读者通过学习本文,能够在Matlab中运用图形绘制技巧,展示出优秀的可视化效果。