第四讲 、Matlab绘图
- 格式:doc
- 大小:161.00 KB
- 文档页数:9
使用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命令。
一、二维数据曲线图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绘图教程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绘图4.1 二维图形4.2 数据分析图4.3 三维图形4.1 二维图形1、基本图形的绘制plot(x,y) 对向量x绘制向量y。
以x为横坐标,y为纵坐标,按照坐标(xi ,yi)的有序排列绘制曲线。
plot(...,str) 使用字符串str指定的颜色和线型进行绘图。
例1:>> x=-pi:0.02*pi:pi;>> y=sin(x).*x.^2;>> plot(x,y)ezplot(f,xmin,xmax) 绘制函数f在区间[xmin,xmax]上的图形。
如果省略xmin和xmax参数,区间将大概取在-2pi——2pi之间。
由于ezplot命令使用算法来判断该函数变化显著的区间,因此区间的选取是不固定的。
例2:>> ezplot('sin(x).*x.^2')2、图形控制figure(gcf) 显示当前图形窗口。
只键入figure命令则创建新的图形窗口;shg 显示当前图形窗口,等价于figure(gcf)。
hold on 保持当前图形。
允许在当前图形状态下,使用同样的缩放比例加入另一个图形。
hold off 释放图形窗口,这样下一个图形将称为当前图形。
这是缺省状态。
hold 在hold on和hold off之间进行切换。
subplot(m,n,p) 将图形窗口分割成m行n列,并设置p所指定的子窗口为当前窗口。
子窗口按行由左至右,由上至下进行编号。
这一命令在Matlab的当前版本中也被写作subplot(mnp)。
axis…)用行向量中给出的值,设置坐标轴的最大和最小值。
对于二维图形,该向量中含有元素: [xmin, xmax, ymin, ymax]。
对于三维图形,是[xmin, xmax, ymin, ymax,zmin, zmax]。
axis ~~ ~~的不同参数将给出不同的结果:1.manual 固定坐标轴刻度。
如果当前图形窗口为hold on状态,则后面的图形将采用同样的刻度2.auto 把坐标轴刻度重新设置为缺省状态值。
3.equal 设置x轴和y轴为同样的刻度增量。
4.tight 以数据的大小为坐标轴的范围。
5.ij 翻转y轴,使得正数在下,负数在上。
6.xy 复位y轴,使正数在上。
7.off 坐标轴消隐。
8.on 绘制坐标轴。
title(txt) 在图形窗口顶端的中间位置输出字符串txt作为标题。
xlabel(txt) 在x轴下的中间位置输出字符串txt作为标注。
ylabel(txt) 在y轴边上的中间位置输出字符串txt作为标注。
zlabel(txt) 在z轴边上的中间位置输出字符串txt作为标注。
text(x,y,txt) 在图形窗口的(x,y)处写字符串txt。
坐标x和y按照与所绘制图形相同的刻度给出。
对于向量x和y,字符串txt写在(xi,yi)的位置上。
如果t x t是一个字符串向量,即一个字符矩阵,且与x, y有相同的行数,则第i行的字符串将写在图形窗口的(xi,yi)的位置上。
gtext(txt) 通过使用鼠标或方向键,移动图形窗口中的十字光标,让用户将字串t xt放置在图形窗口中。
当十字光标走到所期望的位置时,用户按下任意键或鼠标上的任意按钮,字符串将会写入在窗口中。
legend(str1,str2 , . . .pos)在当前图上输出图例,并用说明性字符串str1,str2等作为标 注。
如果指定参数pos ,则图例将按下面所述放置: -1:将图例框放在坐标轴外的右侧。
0:将图例框放在坐标轴内侧。
1:将图例框放在右上角。
2:将图例框放在左上角。
3:将图例框放在左下角。
4:将图例框放在右下角。
legend off 从当前图形中清除图例。
[x,y]=ginput 从图形窗口中读取坐标值。
在图形窗口中放置一个光标,用户可以通过鼠标或方向键对光标进行定位,并且通过按下鼠标按钮或键盘上任意键,将坐标值传递到M AT L A B 中。
这些坐标值保存在向量x 和y 中。
这一过程直到按下‘回车’键才终止。
-6-4-20246-4-3-2-101234sin(x)/xx-axisy -a x i s>> t=-2*pi:0.02*pi:2*pi; >> x=t+(t==0)*eps; >> y=sin(x)./x; >> plot(x,y,'r') >> title('sin(x)/x') >> xlabel('x-axis') >> ylabel('y-axis') >> text(0,1,'summit') >> hold on >> sy=sin(t); >> cy=cos(t);>> plot(t,sy ,'b',t,cy,'k')>> legend('sin(x)/x','sin(x)','cos(x)')>> axis equal4.2数据分析图[m,y]=hist(x) 在x的最大值和最小值之间等分成10个区间,在这个区间上画出统计频数直方图。
向量y 的元素为将min(x) 和max(x)之间分成10个等间距的值,向量m为在每个区间内值的个数。
[m,y]=hist(x,n) 在n个等间距区间上画统计频数直方图。
>> y=randn(10000,1);>> [n,m]=hist(y,30)n =Columns 1 through 31 2 2Columns 4 through 610 11 23Columns 7 through 941 74 143Columns 10 through 12259 384 505Columns 13 through 15660 870 990Columns 16 through 18989 1010 969Columns 19 through 21899 701 543Columns 22 through 24349 226 144Columns 25 through 2794 52 26Columns 28 through 3010 11 2m =Columns 1 through 4-4.0833 -3.8198 -3.5563 -3.2929Columns 5 through 8-3.0294 -2.7659 -2.5024 -2.2389Columns 9 through 12-1.9754 -1.7119 -1.4484 -1.1850Columns 13 through 16-0.9215 -0.6580 -0.3945 -0.1310Columns 17 through 200.1325 0.3960 0.6594 0.9229Columns 21 through 241.1864 1.4499 1.7134 1.9769Columns 25 through 282.2404 2.5038 2.76733.0308Columns 29 through 303.2943 3.5578>> hist(y,30)-5-4-3-2-101234020040060080010001200bar(x,y) 在由向量x 指定的位置上画y 的条形图。
-15-10-5051015>> x=-10:10; >> y=x.^2;>> bar(x,y)pie(x,explode) 绘制向量x 的饼图。
如果sum(x)< 1,则将给出一个不完全的饼图。
向量explode 与向量x 的维数相同,并且explode 中不为零的元素所对应的相应部分将从饼图中独立出来。
>> subplot(221)>> pie([0.1 0.2 0.3 0.4])>> title('pie([0.1 0.2 0.3 0.4])') >> subplot(222)>> pie([0.1 0.2 0.3 0.3])>> title('pie([0.1 0.2 0.3 0.3])') >> subplot(223) >> pie([1 2 3 3])>> title('pie([1 2 3 3])') >> subplot(224)>> pie([0.1 0.2 0.3 0.3],[0 0 1 0])>> title('pie([0.1 0.2 0.3 0.3],[0 0 1 0])')pie([0.1 0.2 0.3 0.4])pie([0.1 0.2 0.3 0.3])33%pie([1 2 3 3])pie([0.1 0.2 0.3 0.3],[0 0 1 0])4.2三维图形[U,V]=meshgrid(x,y) 用来自向量x 和y 的x 坐标和y 坐标形成网格,并生成矩阵。
长度为n 的向量 x 包含升序排列的x 坐标,而长度为m 的向量y 包含升序排列的y 坐标,分别复制m 和n 次形成两个m ×n 的矩阵U 和V 。
这些矩阵表示整个矩形区域内的x 和y 坐标。
[U,V]=meshgrid(x)等价于[U,V]=meshgrid(x,x)。
>> x=[-1 0 1]; >> y=[1 2 3 4];>> [X,Y]=meshgrid(x,y) X =-1 0 1-1 0 1 -1 0 1 -1 0 1 Y =1 1 12 2 23 3 34 4 4 >> Z=zeros(size(X)); >> mesh(X,Y ,Z) >> colormap([0 0 0])-11plot3(x,y,z) 用(xi,yi,zi)所定义的点绘制图形。
向量x 、y 和z 必须为等长度的。
plot3(x,y,z,str) 使用字符串str 确定的线型和颜色按照上面所述的方法绘制图形。
plot3(x1,y1,z1,str1,x2,y2,z2,str2,...)用字符串str1确定的线型和颜色对x1,y1,z1绘图,用字符串str2确定的线型和颜色对x2,y2,z2绘图...。