Matlab绘图基本控制命令
- 格式:pdf
- 大小:238.75 KB
- 文档页数:11
转matlab绘图注释命令编程,绘图,设置坐标轴,做出自己的坐标轴1. axis([xmin xmax ymin ymax])设置当前图形的坐标范围,分别为x轴的最小、最大值,y轴的最小最大值2. V=axis返回包含当前坐标范围的一个行向量3. axis auto将坐标轴刻度恢复为自动的默认设置4. axis manual冻结坐标轴刻度,此时如果hold被设定为on,那么后边的图形将使用与前面相同的坐标轴刻度范围5. axis tight将坐标范围设定为被绘制的数据范围6. axis fill这是坐标范围和屏幕的高宽比,使得坐标轴可以包含整个绘制的区域。
该选项只有在PlotBoxaApectRatio或DataAspectRatioMode被设置为‘manual’模式才有效7. axis ij将坐标轴设置为矩阵模式。
此时水平坐标轴从左到有取值,垂直坐标从上到下8. axis xy将坐标设置为笛卡尔模式。
此时水平坐标从左到右取值,垂直坐标从下到上取值9. axis equal设置屏幕高宽比,使得每个坐标轴的具有均匀的刻度间隔10. axis square将坐标轴设置为正方形11. axis normal将当前的坐标轴框恢复为全尺寸,并将单位刻度的所有限制取消12. axis vis3d冻结屏幕高宽比,使得一个三维对象的旋转不会改变坐标轴的刻度显示13. axis off关闭所有的坐标轴标签、刻度、背景14. axis on打开所有的坐标轴标签、刻度、背景本章主要内容:4.1 二维图形4.2 三维图形4.3 图形处理的基本技术4.4 图形处理的高级技术4.5 图形窗口4.1 二维图形二维图形的绘制是MATLAB图形处理的基础,在数值计算的过程中,用户可通过MATLAB函数将计算结果图形化,以实现对结果数据的深层次理解。
4.1.1 基本绘图指令绘制函数——plot函数函数能够将向量或者矩阵中的数据绘制在图形窗体中,并且可以指定不同的线型和色彩基本格式绘制一条曲线plot(xdata,ydata,’color_linestyle_marker’)绘制多条曲线plot(xdata1,ydata1,’clm1’,xdata2,ydata2,’clm2’,……)设置曲线线型、颜色以及标识的控制符Plot绘图相关命令4.1.2 二维特殊函数图4.2 三维图形4.2.1 基本绘图命令plot3、网图函数、着色图1.plot32.网图函数特殊的三维图形函数4.3 图形处理的基本技术图形控制、图形标注、图形保持、子图的绘制4.3.1图形控制1.坐标轴控制axis2.坐标轴缩放zoomZoom的控制符:当zoom处于on时,可通过鼠标进行图形缩放3. 图形的标注(1) 坐标轴标注:title为图形添加标题、xlablel,ylabel为坐标轴添加标注标注时指数或分母应放在大括号内{}(2)文本标注Text(x,y,’标注文本及控制字符串’)(3)交互文本标注gtext:用户可通过鼠标来选择文本输入点(4)图例标注legend4.图形保持与子图(1)图形保持Hold on 启动图形保持Hold off 关闭图形保持Hold 切换(2)子图Subplot(m,n,p)分割图形窗口成m*n个子绘图区,并从左至右编号注:对一个子图进行图形设置不影响其它子图4.4 图形处理的高级技术1. 颜色映像:默认状态为64*3的颜色矩阵,每个颜色映像均描述了64种颜色的RGB 属性。
MATLAB 常用函数3 绘图函数及命令By D. J. Liu1绘图函数(1) plot (二维线图)plot (x, y, ‘r*-’, ‘linewidth’, 5, ‘markersize’, 5)linewidth 设置线条的宽度markersize 设置点的大小(2) plot3 (三维线图)plot3 (X, Y, Z, ‘r*-, ‘linewidth’, 5, ‘markersize’, 5)linewidth 设置线条的宽度markersize 设置点的大小(3) scatter (二维散点图)scatter (X, Y, ‘S’)S设置点的形式、大小及颜色等属性(4) scatter3 (三维散点图)scatter3 (X, Y, Z, ‘S’)S设置点的形式、大小及颜色等属性(5) subplot (子图绘制)subplot(m,n,p)m行, n列, p当前位置(将一个窗口分成m×n个小窗口)(6) mesh (三维网格图)mesh (X, Y, Z)注意:X和Y必须为向量,如果X和Y的长度分别为m和n,则Z必须为m×n的矩阵,即[m,n]=size(Z),在这种情况下网格线的顶点为(X(j),Y(i),Z(i,j))。
(7) surf (三维曲面图)surf (X, Y, Z)surf的调用方法与mesh命令类似,不同的是mesh函数绘制的图像是一个网格图,而surf命令绘制得到的是着色的三维曲面。
着色的方法是在得到相应的网格后,对每个网格依据该网格所代表的节点的色值来定义这一网格的颜色。
注意:第一,surf只支持笛卡尔坐标系(直角坐标系)。
第二,如果要让曲面圆滑,去掉网格,只需要在绘图命令后加入shading interp,这样matlab就会进行相应插值。
注意:X和Y必须为向量,如果X和Y的长度分别为m和n,则Z必须为m×n的矩阵,即[m,n]=size(Z),在这种情况下网格线的顶点为(X(j),Y(i),Z(i,j))(8) pie3(X)(三维饼图)pie3(X) 用X中的数据画一个三维饼形图(百分比例),X中的每一个元素代表三维饼形图中的一部分。
MATLAB操作命令大全1.基本操作:- clear: 清除工作区中的所有变量。
- clc: 清除命令窗口的内容。
- close all: 关闭所有图形窗口。
- help function-name: 显示与函数相关的帮助文档。
- who: 显示当前工作区中的所有变量。
- save file-name: 保存当前工作区中的所有变量到指定的文件。
- load file-name: 从文件中加载变量到当前工作区。
2.变量操作:-=:赋值操作符,将右边的值赋给左边的变量。
-+:加法操作符。
--:减法操作符。
-*:乘法操作符。
-/:除法操作符。
-^:幂运算操作符。
- sqrt(x): 计算 x 的平方根。
- abs(x): 计算 x 的绝对值。
- max(x): 返回 x 中的最大值。
- min(x): 返回 x 中的最小值。
- sum(x): 计算 x 中所有元素的和。
3.数组操作:- zeros(m, n): 创建一个 m 行 n 列的全零数组。
- ones(m, n): 创建一个 m 行 n 列的全一数组。
- eye(n): 创建一个 n 行 n 列的单位矩阵。
- size(x): 返回 x 的维度。
- length(x): 返回 x 的长度。
- reshape(x, m, n): 将 x 重新排列为一个 m 行 n 列矩阵。
- transpose(x): 将 x 的行和列互换。
4.控制流程:- if-else: 条件语句,根据条件执行不同的代码块。
- for loop: 循环语句,执行指定次数的代码块。
- while loop: 循环语句,根据条件反复执行代码块。
- break: 在循环中使用,用来跳出当前循环。
- continue: 在循环中使用,用来跳过当前循环的剩余部分。
5.统计分析:- mean(x): 计算 x 的平均值。
- median(x): 计算 x 的中位数。
- std(x): 计算 x 的标准差。
M a t l a b 绘图命令1. fill/patch功能 用颜色填充二维多边形。
用法 fill(X,Y ,C) 用x 和y 中的数据生成多边形,用c 指定的颜色填充它。
其中c 为色图向量或矩阵。
若c 是行向量,则要求c 的维数等于x 和y 的列数,若c 为列向量,则要求c 的维数等于x 和y 的行数。
fill(X,Y ,ColorSpec) 用ColorSpec 指定的颜色填充由x 和y 定义的多边形 fill(X1,Y1,C1,X2,Y2,C2,…) 指定多个要填充的二维区域fill(…,'Prop ertyName',PropertyValue) 允许用户对一个patch 图形对象的某个属性设定属性值。
h = fill(…) 返回patch 图形对象句柄的向量,每一个patch 对象对应一个句柄。
注意:1. 若x 或y 是一矩阵,另一个是向量,向量应是维数与矩阵的行数相等的列向量或是维数等于矩阵列数的行向量时,函数fill 将向量复制成与矩阵同型的矩阵。
函数fill 将矩阵x 与y 中列向量中的数据生成多边形的顶点。
2. 颜色阴影类型决定于用户在参数中列出的颜色,若用户用ColorSpec 指定颜色,命令fill 生成平坦阴影模式(flat-shaded )多边形,同时设置补片对象(patch )的FaceColor 属性为相应的RGB 颜色矩阵。
3. 若用户用参量c 指定所用颜色,命令fill 按坐标轴属性Clim 的比例缩小c 中的元素,之后,c 成为引用当前色图的下标矩阵。
4. 若c 为行向量,命令fill 生成平面阴影的多边形,c 的每一元素决定由矩阵x ,y 的每一列定义的多边形内的颜色,每一补片对象的FaceColor 属性被设置为'flat',x ,y 的每一行元素变成第n 块补片对象的Cdata 属性值,其中n 为矩阵x 或y 中的相应的列。
matlab画图常用命令clc 清理命令窗口历史内容clear 清除所有内存存储的变量值clf 清除图形whos 显示各变量信息sqrt 开方edit 开编辑窗口linspace(a,b,N) 定义等差数列,a初值,b末值,N步数(即数据个数)logspace(a,b,N) 定义等比数列,初值10^a,末值10^b,N步数(即数据个数)A.*B 矩阵点乘,对应项相乘A./B 矩阵点除A.^B 矩阵点方(指数相同也要用点方)A=[a:n:b] 定义以a为开始,步长为n的等差数列,最后一个数不超过b(n省略代表步长为1)A' 矩阵转置A=[B,C;D] 矩阵拼凑e *10^exp e^format long 后续数据显示小数点后15位format short 后续数据显示小数点后4位format bank 后续数据显示小数点后2位(不适用于复数)format long/short e 后续数据科学技术法显示,并且小数点后15位/4位format long/short eng 后续数据类似科学技术法显示,但指数保持为3的整数倍,并且有效位数(15位+1/4位+1)format + 矩阵中各元素只显示正负,零为空格format rat 以分数形式显示有理数format long/short g Matlab自定最优显示load/save +文件名载入/储存工作区数据rem(a,b) a/b的余数size(A) A矩阵的大小[行数列数]ylim([0,1])help 打开帮助界面help+帮助界面中对应标题查看对应函数的使用nthroot(x,n) x的n次实数根sign(x) x大于零输出1;x等于零输出0;x小于零输出-1log10(x) lg(x)log(x) ln(x)【注:logb(a)=ln(a)/ln(b)】fix(x) 取整round(x) 对x四舍五入floor(x) 对x向负取整ceil(x) 对x向正取整factor(x) 对x因式分解gcd(a,b) 求a,b最大公约数lcm(a,b) 求a,b最小公倍数rats(x) 用分数表示xfactorial(x) x!nchoosek(n,k) 组合数n选kprimes(x) 找出小于x的素数isprime(x) x是素数,返回1sin(),cos(),tan()... 自变量为弧度asin(),acos(),atan()... 结果为弧度max(x),min(x) x适量中的最大、最小值[a,b]=max(A) A为一行时,a为最大值,b为最大值单行位置A为m行n列时,a为m行向量,对应各列最大值,b为m行向量,对应各列最大值在该列位置多个最大值时,位置默认第一个max(A,B) A、B同大,结果为A,B中对应位置最大值的汇总矩阵mean()/median()/mode() 求平均值/中位数/众数(众数选最小值)cumsum/cumprod(A) 求A的累加/累乘结果,生成与A同大小矩阵,(列运算)单矩阵运算sum/prod(A) A矩阵列求和/求积或求行向量和/积sort(A)/sort(A,'descend') 将A升序/降序排列(行向量自身升序/降序,矩阵列升序/降序)sortrows(A,n) 按第n列排列各行,n正升序,n负降序,n省略第一列升序size(x)/[a,b]=size(x) 返回[行数,列数]/给a、b赋值length(A) 矩阵A的最大长度(行数和列数的最大值)std(A) 求A的标准差(行向量自身求解,矩阵列求解)var(A) 求A的方差(行向量自身求解,矩阵列求解)rand/randn(m,n) 生成(0,1)m×n随机数矩阵/生成均值为0,标准差为1的高斯随机数矩阵(正态分布)【通过randn(m,n)*std+mean可得到均值为mean,标准差为std的正态分布随机数矩阵】A+B*i(complex(A,B)) 生成复数或复数矩阵real(A)/imag(A) 求实部/虚部isreal(A) 实数返回1coni(A) 求共轭【或用A'也可,但会发生行列互换】x为复数时abs(x)/angle(x) 求复数的模,与水平方向的夹角realmax/realmin 返回MATLAB能够使用的最大/最小浮点数intmax/intmin 返回MATLAB能够使用的最大/最小整数pi/i/j 圆周率/虚数/虚数clock 当前时间(一般使用fix(clock)增加可读性)date 返回日期,以字符串形式eps 返回MATLAB最小间隔矩阵A(n,:)/(:,m)【A(n,end)/(end,m)】A矩阵的第n行【最后一列】/第m列【最后一行】[A,B]=meshgrid(a,b),A.*B a,b为行向量,运行结果得a*b的m*n 维矩阵【meshgrid(x)等价于meshgrid(x,x)】zeros(m)/(m,n) m*m/m*n全零矩阵ones(m)/(m,n) m*m/m*n全一矩阵diag(A) 取对角元素为列向量diag(x) 若x为行向量或列向量,结果为对角阵其他元素为零diag(A,n/-n) 对角线右上/左下第n斜线上的元素fliplr(A)/flipud(A) A矩阵列/行进行对称翻转magic(m) 创建m*m维魔方矩阵作图xlabel/ylabel('') 添加x/y轴坐标title('') 添加表头grid 使图像出现网格figure(x) 创建或打开figure x窗口,之后作图均在该窗口进行hold on 保持图像窗口中之前的图像,进而在此作图不会清除之前图像(hold off取消)plot(x1,y1,x2,y2) 同时做两个图像plot(x) x为行向量,则以点数1至n为横轴,x为纵轴作图,按顺序依次连线plot(A) A为m*n矩阵,则图像为那条曲线,每条曲线横轴均为1至m,纵轴为相应列对应值plot(x,A) 以x为横轴,A的每一列为纵轴作图(x与A同维)plot(A,B) A与B需同维,对应列分别作为横轴和纵轴作图plot('标识符') 线型:-实线:点-.点画线--虚线点型:.点o圆圈xx形状+加号*星号s方形d菱形v下三角^上三角<左三角>右三角p五角星h六角星颜色:b蓝色g绿色r红色c青色m洋红色y黄色k黑色w白色【注】,多重输出可多重设定axis([a,b,c,d]) 限制图像x轴在[a,b],y轴在[c,d]legend('string1','string2',etc) 按照作图顺序添加图注text(x,y,'string') 在(x,y)处添加文本‘string’gtext('string') 添加文本‘string’,位置由鼠标点击确定【注】(适用于string形式)输入希腊字母需要'\'+希腊字母读法;^ 可出现上标,_ 可出现下标若想输出_或^,可用\+相应符号subplot(m,n,k) 将图形窗口划分成m行n列,所有的绘图操作都在一行一行数的第k个子图中进行【注】clf针对消除一个figure窗口内的内容,而plot等一系列操作针对一个子图中,且hold on/off被限于特定一个子图中,不影响其他子图polar(x,y) 绘制极图semilogx/semilogy(x,y) x轴对数,y轴线性/x轴线性,y轴对数作图loglog(x,y) 双对数坐标作图bar(x)/barh(x) x为矢量时,按x绘制垂直/水平条形图x为矩阵时,按各行分组绘制垂直/水平条形图bar3(x)/bar3h(x) 同上,绘制三维条形图pie(x)/pie3(x) 绘制(三维)饼状图。
绘图指令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图形绘制功能一、二维平面图形基本绘图函数hold on 命令用于在已画好的图形上添加新的图形plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。
下例可画出一条正弦曲线:x=0:0.001:10; % 0到10的1000个点的x座标y=sin(x); % 对应的y座标plot(x,y); % 绘图Y=sin(10*x);plot(x,y,'r:',x,Y,'b') % 同时画两个函数若要改变颜色,在座标对後面加上相关字串即可:x=0:0.01:10;plot(x,sin(x),'r')若要同时改变颜色及图线型态(Line style),也是在坐标对後面加上相关字串即可:plot(x,sin(x),'r*')用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围axis([0,6,-1.5,1])MATLAB也可对图形加上各种注解与处理:xlabel('x轴'); % x轴注解ylabel('y轴'); % y轴注解title('余弦函数'); % 图形标题legend('y = cos(x)'); % 图形注解gtext('y = cos(x)'); % 图形注解 ,用鼠标定位注解位置grid on; % 显示格线fplot的指令可以用来自动的画一个已定义的函数分布图,而无须产生绘图所须要的一组数据做为变数。
其语法为fplot('fun',[xmin xmax ymin ymax]),其中fun 为一已定义的函数名称,例如sin, cos等等;而xmin, xmax, ymin, ymax则是设定绘图横轴及纵轴的下限及上限。
以下的例子是将一函数 f(x)=sin(x)/x 在-20<x<20,-0.4<y<1.2之间画出:>> fplot('sin(x)./x',[-20 20 -0.4 1.2])【例】画椭圆1232222=+y xa = [0:pi/50:2*pi]';%角度 π20- X = cos(a)*3; %参数方程 Y = sin(a)*2;plot(X,Y);xlabel('x'), ylabel('y'); title('椭圆')图形窗口的分割一般用命令subplot: subplot(2,2,1);subplot(2,3,4);MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下表。
Matlab绘图命令:1.p lot(x,y):该命令用于描点法作图,给出x的范围,然后利用函数式计算出每一个x对应的y,注意,x间距取得越小,图像会画的越圆滑,这是因为plot描点法作图的原因.如:plot(x,y,’--’)2.f plot(y,[xstart xend]):该命令同样用于绘制图像,但是只需要给出x范围与y关于x的函数式即可,相比于plot 函数更加方便。
3.g rid on可以给图像加上网格4.h old on:用于连续绘图,如果想要在一个坐标系中画出多个图形的话,则需要在每次画完图形之前加入这个命令。
5.l egend(‘y’):在图上标出y曲线线型6.设置图线颜色:plot(x,y,’颜色’)7.a xis ( [xmin xmax ymin ymax] ):设置图像横纵坐标范围例:fplot('cos(x)',[-5 5],'r--'),axis ( [-5 5 -1 1] ),8.s ubplot(m, n, p):用于在一个窗口中绘制多个图像。
例:subplot(1, 2, 1);fplot('sin(x)',[-5 5],'b--');subplot(1, 2, 2);fplot('cos(x)',[-5 5],'r--');9.p lot(thea,r): 绘制极坐标图形,thea 是角变量,r是极轴长度例:a = 2;theta = [0:pi/90:2*pi];r = a*theta;polar(theta,r), title('阿基米德螺线')10.bar(x,y):画直方图11.stem(t,f):绘制针头图,这种图经常用来表示波动情况,或者各值和平均值的偏差,可以一目了然。
例:subplot(1, 2, 1);plot(t,f),xlabel('时间(秒)'),ylabel('弹簧响应');subplot(1, 2, 2);stem(t,f),xlabel('时间(秒)'),ylabel('弹簧响应');12.counter3(x,y,z,n):绘制三维等高图例:[x,y] = meshgrid(-2:0.1:2);z = y.*exp(-x.^2 - y.^2);contour3(x, y, z, 30);surface(x,y,z,'EdgeColor',[.8 .8 .8],'FaceColor','none');grid off;view(-15,20);13.mesh(x,y,z):绘制普通三维图14.surf(x,y,z):绘制颜色渐变三维图15.。